我刚刚发现OpenGL具有可以使用glEnable(GL_LIGHTING);
启用的内置照明。为什么教程等使用着色器制作的自定义?必须有一个理由。内置照明的效果更差?
答案 0 :(得分:3)
OpenGL具有内置照明
不,它没有。所有这些事情都是removed from OpenGL in 3.1 and put into the compatibility profile。 不需要支持。
内置照明效果更差?
一切。它做的更糟糕。
固定功能照明是按顶点进行的,而基于着色器的照明可以是您想要的任何内容:每个顶点,每个片段,等等。固定功能照明不适用于延迟渲染,光照预传或其他各种渲染技术。固定功能照明无法处理HDR或伽玛校正照明。
固定功能照明无法做到用户定义的照明无法做到的事情。虽然用户定义的照明可以做很多事情,但固定功能却无法做到。
现代OpenGL教程没有教过那些过时的垃圾,这很好。