OpenGL:隐藏边缘在薄部件后面可见

时间:2017-09-04 11:02:28

标签: opengl unity3d graphics 3d directx

当您在带有边缘的OpenGL薄部件中显示时,缩小这些边缘变得可见。

我们怎样才能避免这种情况?

最近,一些CAD系统为此添加了一个选项。在动态运动之后的最后一次通过,清除这些泄漏的边缘。这表明实现这一点是可能的,我应该采用什么方法?

感谢。

enter image description here

参考文献:

1 个答案:

答案 0 :(得分:0)

当您的内部和外部网格没有完全相同的顶点相互接触时,就会发生这种情况。用文字描述它很难,但我会尝试。

想象一下最简单的资本版本' T'字母 - 只有两条线,水平和垂直。它们相互接触但不共享任何几何形状,它们只是两条不同的线条。

当您在3D中渲染这些线条时,所有4个端点都会经历一些变换,最终会在屏幕上的某些点上结束。

在某些摄像机角度,可能(由于舍入误差)水平线的中心不会与垂直线的顶部完全匹配。这会导致渲染时出现1个像素宽的孔。

要解决这个问题,你应该将顶线分成两半,确保所有线(现在是3而不是2)共享顶线中心的顶点。这样你的所有行总是会在屏幕上的同一个地方结束。

我希望这会有所帮助,但如果你还有问题,我可以给你画一些照片。