У меня есть немного опыта написания приложений OpenGL 2 и вы хотите изучить OpenGL 3. Для этого я купил Addison Wesley "Red-book" и "Orange-book" (GLSL), которые обесценивают устаревание фиксированную функциональность и новый программируемый конвейер (шейдеры). Но я не могу понять, как построить сцену с несколькими объектами без использования устаревших функций перевода, rotate * и scale *.
То, что я делал в OGL2, состояло в том, чтобы "перемещаться" в 3D-пространстве, используя функции перевода и поворота, и создавать объекты в локальных координатах, где я хотел их использовать glBegin... glEnd. В OGL3 эти функции все устарели и, как я понимаю, заменены шейдерами. Но я не могу назвать shaderprogram для каждого объекта, который я создаю, могу ли я? Не повлияет ли это на все другие объекты?
Я не уверен, что я объяснил свою проблему удовлетворительно, но в основе этого - то, как запрограммировать сцену с несколькими объектами, определенными в локальных координатах в OpenGL 3.1. Все начальные учебные пособия, которые я нашел, используют только один объект и не имеют/решают эту проблему.
Изменить: представьте, что вы хотите два вращающихся куба. Было бы больно вручную модифицировать каждую координату вершин, и вы не можете просто изменить модельную матрицу, потому что это скорее запустит камеру вокруг двух статических кубов...