我正在使用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:
在此屏幕截图中,我被缩小了:
现在我放大,形状在那里,它们本身看起来正确:
现在,如果我关闭“表面形状”图层,则地球本身将正确渲染:
我升级硬件或安装驱动程序的能力有限,所以我希望可以应用一些JOGL / OpenGL原语来解决此问题。
我认为问题可能在:
或
有人以前看过这个或有任何想法吗?
我很幸运地自行解决了这个问题。在SurfaceObjectTileBuilder.java中将useMipmaps设置为false似乎可以解决此问题:
/** Controls if mip-maps are generated for surface tile textures. */
protected boolean useMipmaps = true;
不明显的负面影响是什么,或者这是否会对性能产生影响,但是暂时它消除了假象。