2

对于照明,我需要片段着色器中的法线向量。我阅读的教程要求我提供法线数据以及模型的顶点。但是顶点指定的面不是已经给出了法线吗?

为了计算法线,我需要三角形的所有三个顶点。但据我所知,我们只能在顶点着色器的每个通道中访问一个顶点。

如何根据顶点数据计算每个像素的法线向量?我想在那之后应用法线贴图,但那是后来的,与这个问题并没有真正的关系。

4

1 回答 1

2

但是顶点指定的面不是已经给出了法线吗?

是的,没有。从技术上讲,您可以确定每张脸的法线,但通常在建模器中设计 3D 模型的艺术家希望微调法线以调整照明计算。

基于顶点数据的每个像素的法线向量?

只需将法线作为可变变量(varyingout关键字,取决于 GLSL 版本)传递给片段着色器。法线向量将被重心插值。然后,您可以在片段着色器中将其标准化为单位长度。

于 2013-01-04T00:32:08.860 回答