我有一個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