О текстурированных 3D объектах в ArcGlobe

Текстурированные 3D объекты являются пространственными объектами, которые содержат 3D геометрию и графические данные для каждой отображаемой грани. Примерами текстурированных 3D объектов являются здания, самолеты, уличное оборудование и автомобили. Обычно, они используются для создания фотореалистичных 3D изображений. В ArcGIS, текстурированные 3D объекты хранятся в виде пространственных объектов мультипатч.

При использовании текстурированных объектов мультипатч в ArcGlobe навигация по 3D может выполняться рывками. Эта проблема может усугубиться, если класс пространственных объектов мультипатч содержит большое количество текстурированных объектов, или если размер текстуры слишком велик (например, более 1,024 пикселов на грань).

Чтобы помочь избежать этой проблемы, разрешение изображений текстур объектов мультипатч настраивается автоматически, на основе расстояния от камеры. 3D расстояние до камеры вычисляется для каждого объекта индивидуально, поэтому, на близкорасположенных объектах текстуры отображаются с большим разрешением, чем на дальних, даже в пределах одного слоя и класса объектов.

Существует еще два способа для облегчения работы с текстурированными 3D объектами в ArcGlobe. Первый – использовать возможности графического адаптера для сжатия текстур. Второй – уменьшить разрешение текстур, использующихся в объектах мультипатч. В обоих случаях ограничивается максимальное качество текстур слоя мультипатч, что уменьшает объем используемой памяти и увеличивает производительность навигации.

См. раздел Присвоение символов объектам мультипатч, чтобы узнать о возможностях настройки параметров отображения слоев, содержащих текстурированные объекты мультипатч.

Текстуры и память

Для отображения текстур используются как оперативная память (RAM), так и память текстур графического адаптера. Сначала текстуры загружаются в оперативную память, затем передаются для отображения на графический адаптер. Когда объем памяти, выделенный в графическом адаптере под текстуры, заканчивается, операционная система начинает записывать данные на жесткий диск, что резко снижает производительность. Это означает, что уменьшение требуемого объема оперативной памяти и памяти графического адаптера увеличивает производительность работы приложения и позволяет загружать наборы данных большего объема.

Аппаратное сжатие текстур

Аппаратное сжатие текстур использует встроенную в 3D графические адаптеры поддержку сжатых текстур для увеличения производительности отображения текстурированных 3D объектов.

Начиная с ArcGIS 9, текстуры хранятся на диске в сжатом JPEG формате. В процессе загрузки, сжатые JPEG текстуры разархивируются и передаются для отображения на графический адаптер, что требует использования памяти текстур графического адаптера. Однако, графические адаптеры не имеют встроенной поддержки формата JPEG, поэтому при разархивации текстур происходит потеря производительности. Кроме того, несжатые текстуры могут занимать в несколько раз больше места в памяти, чем их сжатые JPEG версии на диске.

Графические адаптеры поддерживают определенный набор форматов сжатия текстур. Эти форматы доступны с помощью дополнительных модулей OpenGL. Дополнительные модули в течение некоторого времени проходят процесс стандартизации и скоро станут частью стандарта OpenGL. Текстуры, сжатые с использованием одного из поддерживаемых форматов, могут пересылаться непосредственно в графический адаптер.

В ArcGIS 9.2, ArcGlobe может использовать поддерживаемый спецификацией OpenGL формат DXT, который применяется для сжатия текстур, вместо сжатия JPEG. Это позволяет избежать затрат на декомпрессию данных, кроме того, снижаются требования к объему оперативной памяти и памяти текстур. Необходимо заметить, что сжатие JPEG и DXT происходит с потерями, поэтому, возможно некоторое ухудшение качества изображения при использовании сжатых текстур. Тогда как степень сжатия JPEG зависит от настроек качества, сжатие DXT использует постоянный коэффициент сжатия (1:6 для RGB и 1:4 для RGBA).

Аппаратное сжатие текстур можно включить в ArcGlobe на уровне слоя.

Уменьшение разрешения текстур

Объем пикселей текстур (текселей), который передается в графический адаптер, можно уменьшить, снизив разрешение текстур. Например, при уменьшении разрешения текстуры размером 640 x 480 до 320 x 240, объем занимаемой ею памяти сократится в 4 раза.

Степень снижения разрешения, которое можно применить к текстуре без существенного снижения качества изображения, может варьировать в зависимости от текстуры. Например, текстура, отображающая ряды окон, позволяет использовать более высокую степень снижения разрешения, чем изображение дорожного знака.

Снижение разрешения текстур используется как параметр слоя и применяется только к слоям объектов мультипатч. Снижение разрешения текстур слоя уменьшает объем памяти, требующийся для ее отображения, что позволяет высвободить ресурсы для других задач, например, навигации. Также, можно сохранить данные с уменьшенным разрешением текстур, используя инструмент геообработки 3D слой в класс объектов (Layer 3D To Feature Class), чтобы экспортировать слой в новый класс пространственных объектов. Стандартная функция Данные (Data) > Экспорт данных (Export Data) не сохраняет параметры снижения разрешения текстур в выходном классе пространственных объектов.

Для снижения разрешения текстур используется библиотека OpenGL GLU, доступная на всех платформах, на которых может работать ArcGIS.

ПодсказкаПодсказка:
  • Также, вы можете полностью отключить текстуры слоя. При этом геометрия будет отображаться, и в качестве символов можно использовать простые цвета.

Связанные темы

9/10/2013