我有两个型号。我的一个地形,使用网格生成。另一个模型(深蓝色海洋)是使用模型构建器创建的圆柱体。
海洋模型和地形模型在地形基地相交。如何阻止这些线路发生?
更新
我已将该属性添加到我的模型中:
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);
答案 0 :(得分:1)
如果您不需要地形通过水下(即,您在模型中放置水应显示的孔),您可以在绘制这两个网格时关闭深度测试。如果您使用的是LibGDX 3D API,则可以通过为地形模型提供DepthTestAttribute,并将属性的depthFunc
设置为0来执行此操作。如果您自己处理网格渲染,则可以使用{{ 1}}
如果确实需要两个网格相交,则需要进行深度测试,并且需要将相机的近平面设置得更远(更大的数字)。通常,您应该在开始剪切游戏中的对象之前将其设置为尽可能远。它还有助于将摄像机的远平面设置得更近,但不会像将近平面设置得更远。
如果您想了解有关此问题的更多信息,请查看Z-fighting。