Java WorldWind 表面形状导致渲染瑕疵

Java WorldWind Surface Shape causing Rendering Artifacts

我正在使用 NASA WorldWind Java 来显示一些表面形状,我看到一些奇怪的伪影发生了。我 运行 举这个例子来说明正在发生的事情:https://github.com/NASAWorldWind/WorldWindJava/blob/develop/src/gov/nasa/worldwindx/examples/SurfaceShapes.java。这很奇怪,因为它似乎只影响表面形状,而且它只发生在这个硬件上(这似乎 运行 正如 Windows 上预期的那样)。这是我的硬件信息:

Red Hat Linux Workstation 6.10 (Santiago)

2.6.32-754.17.1.el6.x86_64

lscpi | grep ‘VGA’

VGA Compatible Controller:  Matrox Electronics Systems LTd. MGA G200eW WPCM450 (rev 0a) 

glxinfo | grep OpenGL

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.6, 128 bits)
OpenGL version string: 2.1 Mesa 11.0.7
OpenGL shading language version string: 1.30
OpenGL extensions:

在这张截图中,我被缩小了:

现在我放大,形状就在那里,而且它们本身看起来是正确的:

现在,如果我关闭 Surface Shapes 图层,地球本身会正确呈现:

我升级硬件或安装驱动程序的能力有限,所以我希望有一些 JOGL/OpenGL 原语可以用来解决这个问题。

我认为问题可能出在:

https://github.com/nasa/World-Wind-Java/blob/master/WorldWind/src/gov/nasa/worldwind/render/AbstractSurfaceObject.java

https://github.com/nasa/World-Wind-Java/blob/master/WorldWind/src/gov/nasa/worldwind/render/SurfaceObjectTileBuilder.java

有没有人以前看过这个或者有什么想法?

幸运的是我自己解决了这个问题。在 SurfaceObjectTileBuilder.java 中,将 useMipmaps 设置为 false 似乎可以解决问题:

/** Controls if mip-maps are generated for surface tile textures. */
protected boolean useMipmaps = true;

尚不清楚负面影响是什么,或者这是否对性能有影响,但暂时它消除了伪影。