【问题标题】:OpenGL Using built-in lighting or custom one with shadersOpenGL 使用内置光照或带有着色器的自定义光照
【发布时间】:2017-09-24 15:25:28
【问题描述】:

我刚刚发现 OpenGL 有内置的光照,可以通过glEnable(GL_LIGHTING); 启用。为什么教程等使用使用着色器制作的自定义?一定是有原因的。内置照明更差的是什么?

【问题讨论】:

    标签: opengl shader lwjgl


    【解决方案1】:

    OpenGL 有内置光照

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

    内置照明更糟糕的是什么?

    一切。它使一切变得更糟。

    固定函数光照是逐顶点的,而基于着色器的光照可以是任何你想要的:逐顶点、逐片段,等等。固定功能照明不适用于延迟渲染、照明预通道或各种其他渲染技术。固定功能照明无法处理 HDR 或伽马校正照明。

    没有什么是固定功能照明可以做的,而用户定义的照明却不能。虽然用户定义的光照可以做很多固定功能做不到的事情。

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

    【讨论】:

    • glShadeModel(GL_SMOOTH) 怎么样。好用还是我应该在几何着色器中自定义一个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2012-01-09
    相关资源
    最近更新 更多