я хотел бы сделать это:Можно ли одновременно использовать измерение смешивания и глубины?
дро объекта 1 (потому что должен использовать glDrawElement или glDrawArray, тест глубины должны быть использованы) объекта дро 2
смесь 1 и 2 (объект 1 + прозрачный obj2)
Объясняя простым псевдокода,
glEnable(GL_BNELD);
/// draw obj1 ///
glEnable(GL_DEPTH_TEST);
glUniform4f(color1,1.0f);
glDrawElements(...) // draw obj1
glDisable(GL_DEPTH_TEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
/// draw obj2 ///
glEnable(GL_DEPTH_TEST);
glUniform4f(color2,0.5f);
glDrawElements(...) // draw obj2
glDisable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
Я слышал, что те, смешивание и тест глубины не используются одновременно, то есть ли альтернатива? (на самом деле результат выше кода выглядит странно)
Да, но вы можете знать, что вы делаете (чтобы избежать артефактов) это могло бы помочь: [OpenGL - Как создать независимую прозрачность заказа?] (Http://stackoverflow.com/a/37783085/2521214) – Spektre