我正在编写一些 Java OpenGL 代码(尽管 C++ openGL 的原理是相同的)。我遇到一种情况,我想将某些项目渲染在其他项目之上。我可以通过禁用这些项目的深度测试或将其设置为 GL_ALWAYS)来做到这一点,效果很好。问题是上面的项目的颜色似乎被下面的项目变暗了。我不确定这是照明问题还是混合问题,但我试图显示该项目的颜色,而不受其周围颜色的影响,无论该项目的 z 位置如何(因为深度测试设置为始终)。我应该为此使用照明设置或混合设置吗?
谢谢, 杰夫
最佳答案
我认为在这种情况下,我会保留深度设置,但根据绘制顺序调整对象的 Z 值(对于那些您想要根据顺序而不是正常深度绘制的项目)。
glBegin(GL_WHATEVER);
for (int i=0; i<num_objects; i++)
glVertex(object[i].x, object[i].y, i/-100.0f);
glEnd(GL_WHATEVER);
关于java - OpenGL 混合 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3113722/