Saya ingin membuat model dan partikel konvensional berbasis segitiga dengan adegan yang dilacak dengan kecepatan bingkai yang masuk akal.
webGL tidak membiarkan Anda menulis gl_FragDepth
di shader fragmen. Anda tidak dapat memiliki beberapa target render, tetapi Anda dapat merender ke tekstur RGBA dan kemudian menggunakan tekstur itu sebagai input ke draw-op lain. Jadi saya bisa membuat adegan ray-traced saya dan menyimpan kedalaman sebagai input ke tahap berikutnya. Ini jelas jauh dari ideal, tetapi bisa diterapkan.
Saya ingin salah tentang ini, dan ini dikumpulkan dari coba-coba daripada sumber definitif; tolong perbaiki asumsi yang salah
Bagaimana Anda bisa mengemas / membongkar pelampung dan, idealnya, beberapa bit bendera dan semacamnya, menjadi tekstur RGBA secara efisien dalam shader fragmen GLSL?
Jawaban:
Berikut adalah fungsi mengemas dan membongkar yang akan bekerja pada WebGL dan OpenGL ES 2.0, ini hanya untuk nilai dalam rentang 0 ... 1 sehingga Anda harus berhati-hati karena perhitungan kedalaman Anda berada di ruang yang benar.
Encoding Mengapung ke RGBA
sumber