ОШИБКА: 0:10: Неверный вызов необъявленного идентификатора 'texture2D' - PullRequest
0 голосов
/ 05 октября 2018

Я использую Mac и в OpenGL я делаю задание по текстурированию.

Когда я пытаюсь выполнить файл, я получаю пустое (черное) окно с этим сообщением об ошибке в моем терминале:

Compile failure in the fragment shader:
ERROR: 0:10: Invalid call of undeclared identifier 'texture2D'

image of terminal

Это код в моем файле шейдера фрагмента 06_fshader.glsl:

#version 330


out vec4 frag_color;

uniform sampler2D texture;
in vec2 tex;
void main () 
{
      frag_color = texture2D(texture, tex);     
}

Я знаю тампохожий вопрос здесь: GLSL: "Неверный вызов необъявленного идентификатора 'texture2D'" , но у меня это не сработало.

1 Ответ

0 голосов
/ 05 октября 2018

Есть две проблемы с кодом.Первая, как объяснено в связанном вопросе, состоит в том, что texture2D была заменена на texture.

Вторая проблема заключается в том, что уже существует униформа с именем texture, которая приводит к конфликту именпри попытке вызвать texture (метод).Это можно решить, переименовав униформу.

Конечный шейдер должен выглядеть так:

#version 330

out vec4 frag_color;

uniform sampler2D mytexture;
in vec2 tex;
void main () 
{
      frag_color = texture(mytexture, tex);     
}
...