启用Alpha混合时,几何图形不正确

时间:2011-10-14 13:50:28

标签: c# 3d alphablending slimdx alpha-transparency

我有一个测试应用程序,通过alpha混合实现了透明度。该应用程序使用SlimDX在C#中构建。但是,在我的一个应用了alpha混合的对象上,我得到一个奇怪的“缺失三角形”效果(见下文)。

enter image description here

物体几乎是圆柱体。

我想知道是否有更多有经验的3D计算机图形和/或使用alpha混合可能能够指出我正确的方向,所以我可能会理解这个结果 - 并希望将其删除。

修改

我尝试使用与订单无关的混合着色器,我得到了相同的结果。由于深度测试失败,似乎丢弃了像素/片段。这对我没有任何意义。

1 个答案:

答案 0 :(得分:1)

您需要选择与顺序无关的混合函数,或尝试沿视图轴对三角形进行排序(这是不可能的)。请在此处查看why

编辑:

问题是Z缓冲区阻止OpenGL绘制已经绘制的事物背后的像素。一般来说,这很方便,但当前面的东西是半透明的时候,你需要看到它背后的东西。

要获得正确的几何体:

  • 将深度缓冲区设置为只读模式。
  • 选择与订单无关的混合功能。