模型的奇怪渲染(一个在另一个之前)

时间:2015-01-20 00:21:17

标签: libgdx

我有两个型号。我的一个地形,使用网格生成。另一个模型(深蓝色海洋)是使用模型构建器创建的圆柱体。

海洋模型和地形模型在地形基地相交。如何阻止这些线路发生?

Image

更新

我已将该属性添加到我的模型中:

modelBuilder.part("chunk" + Integer.toString(x) + "." + Integer.toString(y), myMesh, GL20.GL_TRIANGLES, new Material(new DepthTestAttribute(0))); 

但是现在我的模型已经消失了,我只留下了海洋。

oceanModel = mb.createCylinder(10000f, 15, 10000f , 30, new Material(ColorAttribute.createDiffuse(Color.NAVY)), Usage.Position | Usage.Normal | Usage.TextureCoordinates);

1 个答案:

答案 0 :(得分:1)

如果您不需要地形通过水下(即,您在模型中放置水应显示的孔),您可以在绘制这两个网格时关闭深度测试。如果您使用的是LibGDX 3D API,则可以通过为地形模型提供DepthTestAttribute,并将属性的depthFunc设置为0来执行此操作。如果您自己处理网格渲染,则可以使用{{ 1}}

如果确实需要两个网格相交,则需要进行深度测试,并且需要将相机的近平面设置得更远(更大的数字)。通常,您应该在开始剪切游戏中的对象之前将其设置为尽可能远。它还有助于将摄像机的远平面设置得更近,但不会像将近平面设置得更远。

如果您想了解有关此问题的更多信息,请查看Z-fighting。