Есть две проблемы с кодом.Первая, как объяснено в связанном вопросе, состоит в том, что texture2D
была заменена на texture
.
Вторая проблема заключается в том, что уже существует униформа с именем texture
, которая приводит к конфликту именпри попытке вызвать texture
(метод).Это можно решить, переименовав униформу.
Конечный шейдер должен выглядеть так:
#version 330
out vec4 frag_color;
uniform sampler2D mytexture;
in vec2 tex;
void main ()
{
frag_color = texture(mytexture, tex);
}