我有一个GLViewWidget,在这里我添加不同的对象(GLMeshItem)设置这些属性,以使透明度:启用3D透明度 - pyopengl
opt = {
GL_DEPTH_TEST: True,
'glBlendFunc': (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA),
}
obj.setGLOptions(opt)
这几乎是工作,在下面的意义: 如果我有两个对象obj1和obj2,并按照这个顺序将它们添加到小部件中,我会在obj1的后面看到obj2,但不是相反。
我试图以不同的顺序添加对象,但显然我会在obj2后面看到obj1,而不是相反。我怎样才能使这个工作对所有的对象漠不关心?
您必须将它们排序并按正确顺序绘制。 – BDL
但正如我所说,这两个对象都是透明的,所以我希望它们的行为方式相同,即obj2显示在obj1后面的obj1和obj1后面,具体取决于我正在观察的点。 – charles
除了顺序无关透明度之外,唯一的方法是根据每个框架中的对象的当前位置对它们进行排序并将它们拉回前面。 – BDL