Как нарисовать каркас, который отображается за альфа-текстурой в OpenGL?

У меня есть текстурированный куб с альфа-каналами, и я хочу нарисовать каркас вокруг куба. Проблема, с которой я сталкиваюсь, заключается в том, что каркас не отображается через прозрачную часть текстурированного куба. Как я могу показать каркас сзади?

Вот код, который я использую для рисования обоих кубов:

glLoadIdentity();

glTranslatef(0.0f, 0.0f, z);

glRotatef(xRotation, 1.0f, 0.0f, 0.0f);
glRotatef(yRotation, 0.0f, 1.0f, 0.0f);
glRotatef(zRotation, 0.0f, 0.0f, 1.0f);

// Draw Textured    
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);

glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

glBindTexture(GL_TEXTURE_2D, _images[_filter]);

glBegin(GL_QUADS);
    DrawTexturedCube();
glEnd();

// Draw Wireframe
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);

glColor3f(1.0f, 0.0f, 0.0f);

glBegin(GL_QUADS);
    DrawWireframeCube();
glEnd();

xRotation += xSpeed;
yRotation += ySpeed;
zRotation += zSpeed;

Функция смешивания в моем Init использует:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

Я пробовал разные значения альфа для glColor4f перед рисованием текстур, но это не имело значения.


person DoryuX    schedule 07.06.2012    source источник
comment
Вы хотите, чтобы каркас всегда был виден поверх куба, или хотите, чтобы каркас отображался сквозь отверстия в альфа-текстуре?   -  person Ani    schedule 07.06.2012
comment
Я бы хотел, чтобы каркас был виден только через отверстия, извините, если это было неясно.   -  person DoryuX    schedule 07.06.2012


Ответы (1)


У вас включено тестирование глубины? Моя первая догадка будет заключаться в том, что, поскольку вы уже нарисовали текстурированный куб (и, предположительно, записали в буфер глубины), попытка нарисовать каркасный куб сразу же после этого на том же самом Z не пройдет проверку глубины и не будет визуализирована.

Попробуйте отключить его или изменить порядок рендеринга куба, а затем каркаса.

person ravuya    schedule 07.06.2012
comment
Я не верю, что OP хочет нарисовать каркас поверх всего куба, но хочет, чтобы он показывался через отверстия в альфа-текстуре. Поправьте меня если я ошибаюсь. - person Ani; 07.06.2012