OpenGL の Compute Shader を用いて レイトレーシング(Ray-tracing) を実装する方法。金属や水面のフレネル反射や屈折を表現。環境マッピング(Environment Mapping) には HDRI を用い、簡易な トーンマッピング(Tone Mapping) も導入。
[ YouTube 4K ] [ Vimeo 4K (original) ]
GLSL では関数の再帰呼び出しが利用できないので、未計算レイを保持する スタック(Stack) を独自に実装する必要がある。 ソースコードは以下を参照。
https://github.com/LUXOPHIA/RaytracerGLSL/blob/master/_DATA/Comput.glsl