OpenGL使用内置照明或带着色器的自定义照明

时间:2017-09-24 15:25:28

标签: opengl shader lwjgl

我刚刚发现OpenGL具有可以使用glEnable(GL_LIGHTING);启用的内置照明。为什么教程等使用着色器制作的自定义?必须有一个理由。内置照明的效果更差?

1 个答案:

答案 0 :(得分:3)

  

OpenGL具有内置照明

不,它没有。所有这些事情都是removed from OpenGL in 3.1 and put into the compatibility profile需要支持。

  

内置照明效果更差?

一切。它做的更糟糕。

固定功能照明是按顶点进行的,而基于着色器的照明可以是您想要的任何内容:每个顶点,每个片段,等等。固定功能照明不适用于延迟渲染,光照预传或其他各种渲染技术。固定功能照明无法处理HDR或伽玛校正照明。

固定功能照明无法做到用户定义的照明无法做到的事情。虽然用户定义的照明可以做很多事情,但固定功能却无法做到。

现代OpenGL教程没有教过那些过时的垃圾,这很好。