Объяснение устаревших юниформ-переменных в OpenGL GLSL (3.x-4.1)

Я делаю проект, связанный с рендерингом реалистичных пузырей с использованием OpenGL с использованием OpenGL 4.1 и GLSL версии 410.

В своем исследовании я обнаружил, что между версиями 3.0 (устарело) и 3.1 (удалено) есть потеря встроенных переменных/функций шейдера OpenGL.

Это упоминается в документации, и я пришел к выводу, что мне придется самому писать эти переменные в своем коде на C++ и передавать их в шейдеры. Я просто ищу какое-то направление или объяснение того, что именно делают эти переменные, чтобы я мог начать.

Некоторые переменные/функции, объяснение которых меня больше всего беспокоит, чтобы я мог начать их переписывать:

gl_TextureMatrix[int n];

vec4 textureCube (samplerCube sampler, vec3 coord [, float bias] );

gl_FragColor;

Кроме того, есть ли способ, который предлагает подробное объяснение этого?


person Jumbles    schedule 01.12.2012    source источник
comment
Если вы новичок, вам не следует пытаться копировать старые встроенные униформы. Если вы не знаете, что такое gl_TextureMatrix, то вы также не знаете, как его использовать. Вы должны попытаться научиться использовать функциональные возможности, предоставляемые OpenGL, чтобы делать то, что вам нужно делать.   -  person Nicol Bolas    schedule 02.12.2012
comment
Подобно тому, что сказал Никол, вам, вероятно, следует игнорировать изменения спецификации, если вы даже не знаете, почему они были изменены или где; относиться к этому как к истории и двигаться дальше. Вы работаете с учебником? Если нет, то с моими шейдерами мне помог это. Я думаю, вам будет лучше изучить, как работает шейдер, прежде чем узнавать, почему что-то изменилось по причинам, которые для вас бессмысленны (на данный момент). Начните с малого.   -  person Hydronium    schedule 02.12.2012
comment
Я знаю приличную сумму. Я понимаю конвейер и то, как работает шейдер. Я в классе, и мы делаем проект, и я решил попытаться смоделировать отражение скайбокса и освещение от моей модели, которая представляет собой сферу, имитирующую пузырь. До сих пор я писал код, используя старую реализацию, и мне удалось найти отличные руководства по отражению и преломлению с использованием этих переменных. Однако ничто из того, что я нашел, не дало подходящего объяснения того, как рассчитывается то, что они возвращают. И я хочу поддерживать более высокие версии OpenGL.   -  person Jumbles    schedule 02.12.2012
comment
См. stackoverflow.com/questions/ 9841863/   -  person Jumbles    schedule 02.12.2012