2015-08-08 3 views
0

В настоящее время у меня есть GL_DEPTH_TEST и используйте его для текстур. Тем не менее, я хотел бы нарисовать нетекстурированный прямоугольник с определенным значением глубины/z.OpenGL Draw Прямоугольник на заданной глубине

glDisable(GL_TEXTURE_2D); 
glColor3f(colour.x, colour.y, colour.z); 
glRects((short) rect.x, (short) rect.y, (short) rect.z, (short) rect.w); 
glEnable(GL_TEXTURE_2D); 

Приведенный выше код рисует квадрат. Как установить значение Z или глубину для квадрата, чтобы с ним работала проверка глубины?

ответ

0

glRect семейства функций всегда рисовать z неявного в 0. Таким образом, у вас есть два варианта:

  1. Настройка же преобразование, которое помещает z=0 плоскости, где вам нравится.
  2. Не используйте только glRect и просто рисуйте прямоугольник, используя 4 вершины в координате z по своему вкусу.

Вы должны знать, что каждый строки в коде вставленным полагаются на осуждается функциональности OpenGL и glRect сам по себе является довольно туманна функцией даже для устаревшего кода.

+0

Как можно рисовать прямоугольник _best_ способом? (В настоящее время я использую VBO для текстур.) – user5204762

+0

VBOs не для текстур. Они предназначены для данных вершин, поскольку VV в VBO явно заявляет. Я действительно не знаю, что вы подразумеваете под этим. Но вы должны использовать VBOs для любых данных геометрии в GL, поскольку это единственный неисчерпаемый путь для указания атрибутов вершин. – derhass

+0

Да, один VBO для места назначения и один для положения текстуры на листе спрайта. Спасибо за ответ! – user5204762

Смежные вопросы