我正在寻找一个适当的简单示例。
现在我有一些基于教程的东西,但我没有看到三角形中间的变化。看起来每个三角形都会改变颜色,但只是整体改变。
out vec3 vertex_normal;
out vec3 vertex_light_position;
..在顶点着色器上。
和
vertex_normal = normalize(NormalMatrix * in_Normal);
// old gl_NormalMatrix: "transpose of the inverse of the upper
// leftmost 3x3 of gl_ModelViewMatrix"
mat3 NormalMatrix = transpose(
inverse(
mat3(
ModelViewMatrix
)
)
);
在片段着色器上:
float diffuse_value = MAX(dot(vertex_normal, vertex_light_position), 0.0);
gl_FragColor = out_Color * diffuse_value
但正如我所说,每个三角形似乎都是纯色(仅整体变化)。
我听说规范化可能会起作用,但如果我 normalize() vertex_normal 它是相同的结果。