Списки отображения OpenGL - PullRequest
       5

Списки отображения OpenGL

1 голос
/ 26 декабря 2011

Может кто-нибудь объяснить мне, как изменить список отображения в OpenGL после его компиляции?Как я могу применить, например, матричное преобразование к нему?

Заранее спасибо.

1 Ответ

5 голосов
/ 26 декабря 2011

Отображаемые списки являются неизменяемыми; Вы не можете изменить их после создания. В этом их суть.

Если вы хотите встроить геометрию в список отображения, который можно отобразить в месте, определенном матрицей, вы просто не помещаете команды матрицы в список отображения. Просто поместите материал для рисования в список отображения. Если вы хотите визуализировать эту геометрию, выполните настройку (включая матричные элементы), а затем выполните список отображения.

Ваш текущий код выглядит примерно так:

//Every frame
glRotatef(...);
glTranslatef(...);

///More setup work.

glBegin(...);
glVertex/TexCoord/Color/etc(...);
...
glEnd();

Ваш код для отображения списка должен выглядеть следующим образом:

//Initialization. Done once.
glBeginList(...);
glBegin(...);
glVertex/TexCoord/Color/etc(...);
...
glEnd();
glEndList();

//Every frame
glRotatef(...);
glTranslatef(...);
...

glCallList(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...