Почему мой цветной куб не работает с GL_BLEND? - PullRequest
1 голос
/ 06 апреля 2009

Мой куб не отображается должным образом, когда я использую GL_BLEND.

glEnable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

У меня также есть похожая проблема с рисованием некоторых полупрозрачных вершин спереди, которые вполне могут быть связаны.

Похожие: Почему мои полупрозрачные вершины делают фоновые объекты ярче в OpenGL?

Вот как это должно выглядеть:

Обычный куб http://img408.imageshack.us/img408/2853/normalcube.png

А вот как это выглядит на самом деле:

Темный куб http://img7.imageshack.us/img7/7133/darkcube.png

См. Код, используемый для создания цветного куба , и код, используемый для рисования куба .

Куб рисуется так:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glPushMatrix();
glLoadIdentity();

// ... do some translation, rotation, etc ...

drawCube();

glPopMatrix();

// ... swap the buffers ...

Ответы [ 3 ]

1 голос
/ 12 июня 2009

Вы можете попробовать отключить все источники света, прежде чем рисовать куб:

glDisable(GL_LIGHTING);
1 голос
/ 07 апреля 2009

Похоже, у вас включено освещение на втором,

попробуйте с glShadeModel (GL_FLAT) перед рисованием,

0 голосов
/ 31 июля 2009

Это меня растоптало. На что это похоже, так это то, что некоторые вершины имеют некоторые непрозрачные альфа-значения. Однако код, который вы разместили, имеет все 1. для альфы. Итак ... чтобы отладить больше, вы пытались изменить свой чистый цвет на что-то не черное? Скажи зеленый? Из кода я сомневаюсь, что освещение включено, так как не было указано нормалей.

Последний комментарий, оффтоп ... Вы действительно не должны использовать glBegin / glEnd (2 вызова функций на вершину + 2 на примитив на самом деле не очень хорошо используют последние разработки в OpenGL). Попробуйте glDrawElements с QUAD_LIST, или даже лучше, TRIANGLE_LIST. У вас уже есть данные для этого.

...