Java Форма поверхности WorldWind, вызывающая артефакты рендеринга - PullRequest
1 голос
/ 06 марта 2020

Я использую NASA WorldWind для 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

Теперь, если я отключу слой Surface Shapes, сам глобус будет правильно отображаться:

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

Кто-нибудь видел это раньше или есть мысли?

1 Ответ

1 голос
/ 14 марта 2020

Я понял это сам с некоторой удачей. В SurfaceObjectTileBuilder. java установка значения useMipmaps в значение false, по-видимому, решает проблему:

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

Неясно, каковы отрицательные побочные эффекты или если это имеет последствия для производительности, но для пока он избавляется от артефактов.

...