How does one extend this for reflections? It seems you need access to all other primitive's BRDF, which seems expensive for a shader program.
kbeache
Ya does reflection correspond to ks? If it was perfect reflection would the last line be gl_FragColor = vec4(ks * in_light, 1.0); ?
connorbrinton
Some ridiculously complex shaders can actually be extremely useful. For example, the GameCube/Wii emulator Dolphin avoids slow shader translation and compilation steps in its emulation pipeline by actually interpreting GameCube/Wii shaders within a native shader executed on the graphics card. Some interesting history of the feature and the problems it solves are available here:
How does one extend this for reflections? It seems you need access to all other primitive's BRDF, which seems expensive for a shader program.
Ya does reflection correspond to ks? If it was perfect reflection would the last line be gl_FragColor = vec4(ks * in_light, 1.0); ?
Some ridiculously complex shaders can actually be extremely useful. For example, the GameCube/Wii emulator Dolphin avoids slow shader translation and compilation steps in its emulation pipeline by actually interpreting GameCube/Wii shaders within a native shader executed on the graphics card. Some interesting history of the feature and the problems it solves are available here:
https://dolphin-emu.org/blog/2017/07/30/ubershaders/