导致渲染伪像的Java WorldWind表面形状

问题描述 投票:1回答:1

我正在使用NASA WorldWind for Java显示一些表面形状,并且看到一些奇怪的伪像正在发生。我正在运行此示例以显示正在发生的事情:https://github.com/NASAWorldWind/WorldWindJava/blob/develop/src/gov/nasa/worldwindx/examples/SurfaceShapes.java。奇怪的是,它似乎只影响Surface Shapes,并且仅在此硬件上发生(这似乎在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:

在此屏幕截图中,我被缩小了:

enter image description here

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

enter image description here

现在,如果我关闭“表面形状”图层,则地球本身将正确渲染:

enter image description here

我升级硬件或安装驱动程序的能力有限,所以我希望可以应用一些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

有人以前看过这个或有任何想法吗?

java opengl jogl worldwind
1个回答
0
投票

我很幸运地自行解决了这个问题。在SurfaceObjectTileBuilder.java中将useMipmaps设置为false似乎可以解决此问题:

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

不明显的负面影响是什么,或者这是否会对性能产生影响,但是暂时它消除了假象。

© www.soinside.com 2019 - 2024. All rights reserved.