У меня есть одна текстура, которая имеет прозрачные прозрачные части. Я хочу применить объект, лица которого представляют собой непрозрачный материал (или цвет, если он проще), но конечный объект становится прозрачным. Я хочу, чтобы конечный объект был полностью непрозрачным.визуализировать прозрачные текстуры
Вот мой код:
Сначала я поставил материал:
glDisable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT);
glColor4f(0.00, 0.00, 0.00, 1.00);
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
glColor4f(0.80, 0.80, 0.80, 1.00);
glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR);
glColor4f(0.01, 0.01, 0.01, 1.00);
glEnable(GL_COLOR_MATERIAL);
Тогда я установка О
glBindTexture(GL_TEXTURE_2D, object->texture);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glBindBuffer(GL_ARRAY_BUFFER, object->object);
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), ver_offset);
glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), tex_offset);
glNormalPointer(GL_FLOAT, sizeof(Vertex), nor_offset);
И, наконец, я рисую объект
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_ONE, GL_ZERO);
glDrawArrays(GL_TRIANGLES, 0, object->num_faces);
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDrawArrays(GL_TRIANGLES, 0, object->num_faces);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
Я пробовал передавать разные аргументы для glBlendFunc() без преобладания. Я загрузил источник здесь: http://dpaste.com/83559/
UPDATE Я получитьthis, но я хочу this (или без текстуры this).
2-е и 3-е изображения производятся с glm. Я изучил источники, но поскольку мои знания OpenGL ограничены, я не очень понял.
Что вы пытаетесь достичь? прозрачный объект с твердыми пикселями? или твердый объект с некоторыми прозрачными текстурами, показывающими сплошной цвет внизу? –
более поздний: твердый объект с некоторыми прозрачными текстурами, показывающими сплошной цвет внизу? – Alexandru
спасибо за обновление ... И ОПРЕДЕЛЕННО сортируйте свою Z-буферизацию, как я предложил. – Goz