Я ищу правильный простой пример.
Прямо сейчас у меня было что-то, основанное на уроке, но я не вижу изменений в середине треугольников. Кажется, каждый треугольник меняет цвет, но только в целом.
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
Но, как я уже сказал, каждый треугольник выглядит сплошным цветом (который изменяется только целиком).
Я слышал, что нормализация может играть роль, но если я нормализую () vertex_normal, это тот же результат.