我有一个测试应用程序,通过alpha混合实现了透明度。该应用程序使用SlimDX在C#中构建。但是,在我的一个应用了alpha混合的对象上,我得到一个奇怪的“缺失三角形”效果(见下文)。
物体几乎是圆柱体。
我想知道是否有更多有经验的3D计算机图形和/或使用alpha混合可能能够指出我正确的方向,所以我可能会理解这个结果 - 并希望将其删除。
修改
我尝试使用与订单无关的混合着色器,我得到了相同的结果。由于深度测试失败,似乎丢弃了像素/片段。这对我没有任何意义。
答案 0 :(得分:1)
您需要选择与顺序无关的混合函数,或尝试沿视图轴对三角形进行排序(这是不可能的)。请在此处查看why。
编辑:
问题是Z缓冲区阻止OpenGL绘制已经绘制的事物背后的像素。一般来说,这很方便,但当前面的东西是半透明的时候,你需要看到它背后的东西。
要获得正确的几何体: