Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于照明,我需要片段着色器中的法线向量。我阅读的教程要求我提供法线数据以及模型的顶点。但是顶点指定的面不是已经给出了法线吗?
为了计算法线,我需要三角形的所有三个顶点。但据我所知,我们只能在顶点着色器的每个通道中访问一个顶点。
如何根据顶点数据计算每个像素的法线向量?我想在那之后应用法线贴图,但那是后来的,与这个问题并没有真正的关系。
但是顶点指定的面不是已经给出了法线吗?
是的,没有。从技术上讲,您可以确定每张脸的法线,但通常在建模器中设计 3D 模型的艺术家希望微调法线以调整照明计算。
基于顶点数据的每个像素的法线向量?
只需将法线作为可变变量(varying或out关键字,取决于 GLSL 版本)传递给片段着色器。法线向量将被重心插值。然后,您可以在片段着色器中将其标准化为单位长度。
varying
out