我希望能够在不进行附加混合的情况下获得不透明圆的3D图,并且还能够以最接近的圆显示在最远的圆的方式旋转场景。
使用此命令
gl.GLScatterPlotItem(pos=pos, color=color, size=size, pxMode=False)
我在圆圈重叠的区域得到了颜色融合:
“不透明”选项
gl.GLScatterPlotItem(pos=pos, color=color, size=size, pxMode=False, glOptions = 'opaque')
禁用混合,但是它绘制正方形而不是圆形:
第三个可用选项“半透明”
gl.GLScatterPlotItem(pos=pos, color=color, size=size, pxMode=False, glOptions = 'translucent')
几乎可以满足我的需要,但前提是我要从某些方向看:
好
不好
我对OpenGl模块进行了深入研究,直到'GLOptions':
GLOptions = {
'opaque': {
GL_DEPTH_TEST: True,
GL_BLEND: False,
GL_ALPHA_TEST: False,
GL_CULL_FACE: False,
},
'translucent': {
GL_DEPTH_TEST: True,
GL_BLEND: True,
GL_ALPHA_TEST: False,
GL_CULL_FACE: False,
'glBlendFunc': (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA),
},
'additive': {
GL_DEPTH_TEST: False,
GL_BLEND: True,
GL_ALPHA_TEST: False,
GL_CULL_FACE: False,
'glBlendFunc': (GL_SRC_ALPHA, GL_ONE),
},
}
为“半透明”选项设置“ GL_DEPTH_TEST = False”会从“不良”图像中删除正方形的黑角,但也会使最后绘制的圆圈始终位于顶部,这不是我想要的。
我不知道'glBlendFunc'选项的组合会产生想要的图像。甚至有可能吗?