我正在编写一个 GLSL 程序,作为在 Maya(一个闭源 3D 应用程序)内部运行的插件的一部分。我的插件将自定义几何图形呈现到应用程序呈现其默认多边形几何图形的相同图像缓冲区中。该应用程序使用 OpenGL 固定管道进行照明和着色,但我使用 GLSL 来渲染自定义几何体和材质。
我的问题是,我想在我的着色器中模仿固定管道灯的行为。应用程序定义了gl_LightSource
制服中的灯光,我希望它们在分配给我的自定义几何图形时具有与分配给应用程序的默认多边形几何图形时相同的方向、强度等。
这些gl_LightSource
字段有明确的记录,但我找不到关于固定管道如何解释这些字段的明确文档。有很多关于如何在 GLSL 中对点/定向/聚光灯进行编码的示例,但它们似乎并不完全模仿固定管道。例如,如果应用程序定义了它们的混合,您如何确定灯光是点光、定向光还是聚光灯?可以在不在我的着色器中引入过多分支的情况下处理混合光类型吗?
简而言之,是否有任何关于固定功能管道如何评估的权威文档或示例gl_LightSource
?