Je veux composer des modèles et des particules triangulaires conventionnels avec une scène tracée par rayons à une fréquence d'images raisonnable.
webGL ne vous permet pas d'écrire le gl_FragDepth
dans le fragment shader. Vous ne pouvez pas avoir plusieurs cibles de rendu, mais vous pouvez effectuer un rendu sur une texture RGBA, puis utiliser cette texture comme entrée dans un autre dessin. Je peux donc restituer ma scène tracée par rayons et stocker la profondeur comme entrée pour la prochaine étape. C'est évidemment loin d'être idéal, mais réalisable.
J'adorerais me tromper à ce sujet, et cela est tiré d'essais et d'erreurs plutôt que de toute source définitive; veuillez corriger toute hypothèse erronée
Comment pouvez-vous emballer / décompresser un flottant et, idéalement, certains bits de drapeau et autres, dans une texture RGBA efficacement dans un shader de fragment GLSL?
Réponses:
Voici les fonctions pack et unpack qui fonctionneront sur WebGL et OpenGL ES 2.0, ce n'est que pour les valeurs dans la plage 0 ... 1, vous devez donc vous assurer que votre calcul de profondeur est dans le bon espace.
Encodage des flottants en RGBA
la source