OpenGL 使用内置照明或使用着色器自定义照明
OpenGL Using built-in lighting or custom one with shaders
我刚刚发现 OpenGL 具有内置照明,可以通过 glEnable(GL_LIGHTING);
启用。为什么教程等使用由着色器制作的自定义教程?必须有一个原因。内置照明在哪些方面做得更差?
OpenGL has built-in lighting
不,不是。所有这些都是 removed from OpenGL in 3.1 and put into the compatibility profile。 不需要支持。
What does built-in lighting do worse?
一切。它让一切变得更糟。
固定功能光照是逐顶点的,而基于着色器的光照可以是任何你想要的:逐顶点、逐片段等等。固定功能照明不适用于延迟渲染、照明预通道或各种其他渲染技术。固定功能照明无法处理 HDR 或伽玛校正照明。
没有什么是固定功能照明可以做到而用户定义照明不能做到的。虽然用户定义的照明可以做很多固定功能做不到的事情。
现代 OpenGL 教程不教那些过时的垃圾,这很好。
我刚刚发现 OpenGL 具有内置照明,可以通过 glEnable(GL_LIGHTING);
启用。为什么教程等使用由着色器制作的自定义教程?必须有一个原因。内置照明在哪些方面做得更差?
OpenGL has built-in lighting
不,不是。所有这些都是 removed from OpenGL in 3.1 and put into the compatibility profile。 不需要支持。
What does built-in lighting do worse?
一切。它让一切变得更糟。
固定功能光照是逐顶点的,而基于着色器的光照可以是任何你想要的:逐顶点、逐片段等等。固定功能照明不适用于延迟渲染、照明预通道或各种其他渲染技术。固定功能照明无法处理 HDR 或伽玛校正照明。
没有什么是固定功能照明可以做到而用户定义照明不能做到的。虽然用户定义的照明可以做很多固定功能做不到的事情。
现代 OpenGL 教程不教那些过时的垃圾,这很好。