LibGDX 3D中的附近矩形渲染块状/错误

问题描述

我正在使用LibGDX,使用ModelBuilder#createRect在3D空间中构造矩形,将其放置在3D环境中,并使用ModelBatch进行渲染。一切正常。当两个矩形彼此靠近时,就会出现问题。似乎在一定深度范围内,实际上是在后面的一些矩形在前面渲染。

为帮助说明我的意思,下面是一些示例:

即使我们有2个矩形(灌木丛和图),它们在垂直方向上都相同,但是当模型实例彼此靠近时,即使矩形是平坦的,其中一个的一部分也会呈现在前面,而一个矩形应该完全在另一个的前面,而不是在图的前面的一小部分灌木。

enter image description here

在这里,我们有2个相交的矩形(墙和图)。我希望看到两个矩形之间有清晰的切口,但是我得到了一个楼梯。这会让我相信它会保留一个矩形的区域范围,即使一个矩形始终在该范围内,即使该范围内可能存在相交,也可能会忽略该矩形的某些部分,认为它不需要渲染它。

enter image description here

我相信这两个例子源于同一问题。

渲染矩形时,这是材质的代码

material.set(BlendingAttribute(GL20.GL_SRC_ALPHA,GL20.GL_ONE_MINUS_SRC_ALPHA),FloatAttribute(AlphaTest,0.5f))

添加带有任意浮点数的FloatAttribute似乎可以缓解问题,但不能完全缓解。 (上面的示例带有float属性。)

我正在使用Environment中的ModelBatchcom.badlogic.gdx.graphics.g3d等来渲染矩形。

如何使用LibGDX正确渲染3D矩形?

解决方法

在注释中支持@ Tenfour04,以考虑相机平面是问题所在。我在原点有一个视锥台,视点在0.1F附近,远在4000F附近。将接近值更改为50F可以解决此问题,并且深度步骤变得更加合理。

这是50F附近而不是0.1F附近的样子:

enter image description here