Я работаю с OpenGL уже около года и многому научился.К сожалению, как я узнал, это был старый путь до 3.x, то есть немедленный режим, шейдеры по умолчанию, матричные стеки и т. Д. У меня более или менее есть представление о том, что изменилось с тех пор до сих пор, глядя на спецификации OpenGL, однакоЯ не совсем понимаю некоторые из новых способов сделать что-то.
Насколько я понимаю, они избавились от стеков матриц, то есть вы должны отслеживать свои собственные матрицы преобразования, которые не кажутся слишком сложными.,Они также избавились от немедленного режима, что означает, что теперь вам нужно использовать VBO или VAO (никогда не знаете, какой из них, может быть оба ...) для отправки пикселя / нормали / текстуры и т. Д.информация в шейдерную программу.Я не совсем понимаю, как эти объекты работают, я думаю, что вам нужно поместить всю информацию в них и предоставить некоторый вид, чтобы показать разделители между пиксельными, нормальными и текстурными координатами.Может ли кто-нибудь кратко объяснить, как это на самом деле работает (или отправить мне ссылку, которая объясняет это)?Я пробовал википедию и гуглил ее, но обнаружил, что все еще не совсем понимаю их.
Еще один момент, который я хотел бы узнать больше о шейдерах, так как я никогда не использовал их.Я не собираюсь спрашивать, как их кодировать или что-то еще, только то, что нужно сделать, и что opengl все еще делает для вас.В частности, что вам нужно сделать в шейдерах, чтобы получить базовую программу рендеринга?Я знаю, что вам нужно выполнить все вычисления и использовать ваши матрицы для вычисления реальной позиции вершины.Но по-прежнему ли opengl заботится о отбраковке задней поверхности, обрезке строк, заполнении полигонов и других проблемах более низкого уровня, или вам приходится кодировать их самостоятельно в шейдеры (или они даже не принадлежат шейдерам)?