Я работаю с OpenGL около года и многому научился. К сожалению, так, как я узнал, это был старый способ pre 3.x, что означает немедленный режим, шейдеры по умолчанию, стеки матриц и т. Д. Я более или менее имею представление о том, что изменилось с того момента и до сих пор, глядя на спецификации OpenGL, однако Я не совсем понимаю некоторые из новых способов сделать что-то.OpenGL 3.1-4.1 новые и устаревшие функции
По моему мнению, они избавились от матричных стеков, что означает, что вы должны отслеживать свои собственные матрицы преобразования, что не кажется слишком сложным. Они также избавились от немедленного режима, то есть теперь вам нужно использовать VBOs или VAO (никогда не знаете, какой из них, может быть, и того и другого ..), чтобы отправить пиксель/нормальный/текстуру и т. Д. информацию в программу шейдеров. Я действительно не понимаю, как работают эти объекты, я думаю, вам нужно поместить всю информацию в них и предоставить некоторый набор, чтобы показать разделители между пиксельными, нормальными и текстурными координатами. Может ли кто-нибудь кратко объяснить, как это работает (или отправить мне ссылку, которая объясняет это)? Я пробовал википедию и искал ее, но обнаружил, что все еще не совсем понимаю их.
Еще один момент, о котором я хотел бы узнать больше, - это шейдеры, поскольку я их никогда не использовал. Я не собираюсь спрашивать, как закодировать их или что-то еще, только то, что нужно сделать там, и то, что все еще делает для вас. В частности, что вам нужно сделать в шейдерах, чтобы получить базовую программу рендеринга? Я знаю, что вам нужно выполнить все лигирующие вычисления и использовать свои матрицы для вычисления реальной вершинной позиции. Но opengl по-прежнему заботится об отбраковке поверхности, обрезке линий, заполнении многоугольников и других проблемах нижнего уровня, или вам нужно закодировать их в шейдеры (или они даже не входят в шейдеры)?
Спасибо за ответ. Я определенно посмотрю на эту ссылку, как только у меня появится шанс. И я знал, что должен делать эха-шейдер, как в том, что вы написали, просто не был уверен, нужно ли вам решать, что делать, или если opengl все-таки сделал это для вас, и все, что вам нужно было сделать, это цвет позиции/пикселя (что, кажется, так, слава богу). Очень полезный ответ +1 – Zepee 2010-12-03 18:14:02