Для ясности я начну с моего вопроса:
Это можно использовать (в коде шейдера)имя настраиваемого атрибута , которое я установил для использования TEXCOORD в отображении потока (OpenGL) в RenderMonkey 1.82, или мне нужно использовать gl_MultiTexCoord0? (Вопрос может быть действителен и для НОРМАЛЬНОГО использования , т.е. для пользовательского имени или gl_Normal )
Предпосылки:
Использование RenderMonkey версии 1.82. Я успешно использовал отображение потока для сопоставления общего атрибута вершины "позиция" (и, возможно, "нормальный"), но координаты текстуры, похоже, не передаются правильно. Для кода шейдера я использую #version 330 и квалификатор in в GLSL, что должно быть в порядке, поскольку RM не компилирует шейдеры сам (это делает драйвер OpenGL).
Я пробовал и .obj, и .3ds. файлы (экспортированные из блендера), и при проверке волнового фронта .obj-файла там вся информация о координатах текстуры, а также положения вершин и нормали.
Если это невозможно, отображение потока нарушается и есть нет смысла называть переменные в редакторе отображения потока (кроме потока положения вершины, который работает), так как в любом случае нужно использовать встроенные переменные.
Обновление: Если используются устаревшие встроенные переменные, необходимо использовать режим совместимости в шейдере, например
#version 330 compatibility
out vec2 vTexCoord;
и в основной функции:
vTexCoord = vec2(gl_MultiTexCoord0);
(Теперь я тоже не уверен насчет потокового отображения нормалей. Как только Я получил координаты текстуры, у меня были нормальные проблемы, и мне пришлось вернуться к gl_Normal.)
Вот изображение рабочего решения, но со встроенными переменными (и да, прокомментированная переменная texcoord на картинке не работает имеют то же имя, что и в диалоговом окне сопоставления потоков, но у него было то же имя, когда я пытался его использовать, так что все в порядке.):