Voglio comporre modelli e particelle convenzionali basati su triangoli con una scena ray tracing a un frame rate ragionevole.
webGL non ti consente di scrivere gl_FragDepth
nel framment shader. Non è possibile avere più destinazioni di rendering, ma è possibile eseguire il rendering su una trama RGBA e quindi utilizzare quella trama come input per un'altra finestra di disegno. In questo modo posso rendere la mia scena ray tracing e memorizzare la profondità come input per la fase successiva. Questo è ovviamente tutt'altro che ideale, ma praticabile.
Mi piacerebbe sbagliarmi su questo, e questo è raccolto da tentativi ed errori piuttosto che da qualsiasi fonte definitiva; correggere eventuali assunzioni errate
Come è possibile impacchettare / decomprimere un float e, idealmente, alcuni bit di flag e simili, in una trama RGBA in modo efficiente in uno shader di frammenti GLSL?