3D-Objekte mit Textur in ArcGlobe
3D-Objekte mit Textur sind Features, die sowohl über eine 3D-Geometrie als auch über Bilddaten für jede angezeigte Facette verfügen. Beispiele für 3D-Objekte mit Textur sind Gebäude, Flugzeuge, Straßenausstattung und Fahrzeuge. Sie werden häufig dazu verwendet, um eine 3D-Ansicht realistisch zu gestalten. In ArcGIS werden 3D-Objekte mit Textur als Multipatch-Features gespeichert.
Ein häufiges Problem bei der Verwendung von Multipatch-Features mit Textur in ArcGlobe besteht darin, dass die 3D-Navigation träge werden kann. Das Problem kann sich weiter verschlimmern, wenn eine Multipatch-Feature-Class zahlreiche Features mit Texturen enthält oder wenn die Texturen sehr groß sind (z. B. mehr als 1.024 Pixel pro Facette).
Um dieses Problem zu vermeiden, passen Multipatch-Features mit Textur ihre Bildtexturauflösung auf Grundlage ihrer Entfernung zur gegenwärtigen Kameraposition automatisch an. Jedes Feature berechnet die 3D-Entfernung zur Kamera individuell. Somit werden selbst innerhalb desselben Layers und innerhalb derselben Feature-Class die Texturen von nahen Objekten in einer höheren Auflösung angezeigt als die von entfernten Objekten.
Es gibt zwei zusätzliche Möglichkeiten, die Kosten für den Einsatz von 3D-Objekten mit Textur in ArcGlobe zu senken. Zum einen können Sie die Hardware der Grafikkarte nutzen, um die nativ integrierten Texturen zu komprimieren. Zum anderen können Sie die Auflösung der auf den Multipatch-Features verwendeten Texturen verringern. Beide Lösungen vermindern die maximale Qualität der für den Multipatch-Layer angezeigten Texturen, wobei die Auslastung des Speichers verringert und die Navigationsleistung verbessert wird.
Weitere Informationen zum Festlegen von Anzeigeeigenschaften für Multipatch-Layer mit Textur finden Sie unter Symbolisieren von Multipatches.
Texturen und Speicher
Der Hauptspeicher (RAM) und der Texturspeicher der Grafikkarte werden zum Rendern von Texturen verwendet. Texturen werden zuerst in den Hauptspeicher geladen und dann zum Rendern an die Grafikkarte weitergeleitet. Wenn der Texturspeicher auf der Grafikkarte ausgelastet ist, lagert das Betriebssystem die Texturen auf die Festplatte aus, was eine spürbare Verringerung der Leistung zur Folge hat. Eine reduzierte Speichernutzung von RAM und Grafikkartentexturspeicher verbessert die Anwendungsleistung, sodass größere Datasets geladen werden können.
Hardwaretexturkomprimierung
Die Hardwaretexturkomprimierung nutzt den nativen Support für komprimierte Texturen von 3D-Grafikkarten, um die Performance beim Rendern von 3D-Objekten mit Textur zu verbessern.
Ab ArcGIS 9 werden Materialtexturen auf der Festplatte im komprimierten JPEG-Format verwaltet. Beim Laden werden die JPEG-komprimierten Texturen dekomprimiert und zum Rendern an die Grafikkarte weitergeleitet, wobei der Texturspeicher der Grafikkarte verwendet wird. Grafikkarten unterstützen das JPEG-Format jedoch nicht nativ, und es ist ein höherer Leistungsaufwand erforderlich, wenn die Texturen dekomprimiert sind. Dekomprimierte Texturen können darüber hinaus ein Vielfaches von dem einnehmen, was die JPEG-komprimierten Versionen auf der Festplatte an Speicherplatz benötigen.
Grafikkarten unterstützen einen bestimmten Satz an Texturkomprimierungsformaten. Diese werden derzeit über OpenGL-Erweiterungen offen gelegt. Über einen bestimmten Zeitraum werden die Erweiterungen standardisiert, und die Texturkomprimierungserweiterungen werden in die standardmäßige OpenGL-Implementierung aufgenommen. Texturen, die in unterstützten Formaten komprimiert werden, können direkt an die Grafikkarte weitergeleitet werden.
In ArcGIS 9.2 verwendet ArcGlobe anstelle der JPEG-Komprimierung das OpenGL-unterstützte DXT-Format für die Komprimierung und Verwaltung von Texturen. Dadurch werden der Dekomprimierungsaufwand und die Übergröße im RAM und im Texturspeicher reduziert. Beachten Sie, dass sowohl JPEG als auch DXT verlustbehaftete Komprimierungsformate sind, sodass sich beim Einsatz von komprimierten Texturen die Bildqualität verschlechtert. Bei JPEG-komprimierten Texturen hängt die Größe von der Qualitätseinstellung ab. Bei DXT wird ein festes Komprimierungsverhältnis (1:6 für RGB und 1:4 für RGBA) verwendet.
Die Hardwaretexturkomprimierung kann in ArcGlobe auf Layer-Ebene aktiviert werden.
Verringern der Texturauflösung
Sie können die Menge der Texturpixel (Texel), die an die Grafikkarte weitergeleitet werden, reduzieren, indem Sie die Auflösung der Texturen verringern. Eine Textur mit der Auflösung 640 x 480 kann beispielsweise auf 320 x 240 reduziert werden, wodurch die In-Memory-Größe um ein Vierfaches verringert wird.
Der Reduktionsgrad, der auf eine Textur angewendet werden kann, ohne dabei die Anzeigequalität wesentlich zu beeinträchtigen, ist je nach Textur unterschiedlich. Eine sich wiederholende Fenstertextur erfährt beispielsweise eine größere Auflösungsreduzierung als ein Stoppschild.
Texturreduktion wird als Layer-Eigenschaft angewendet und gilt nur für Multipatch-Layer. Wenn Sie die Texturreduktion für einen Layer festlegen, verringern sich die In-Memory-Anforderungen beim Rendern, sodass Ressourcen für andere Tasks, wie die Navigation, freigegeben werden können. Sie können optional die reduzierte Texturauflösung beibehalten, wenn Sie das Geoverarbeitungswerkzeug 3D-Layer zu Feature-Class verwenden, um den Layer in eine neue Feature-Class zu exportieren. Die Standardfunktion "Daten" > "Daten exportieren" beinhaltet nicht die Einstellungen für die Texturreduktion in der Ausgabe-Feature-Class.
Die OpenGL GLU-Bibliothek, die auf allen Plattformen, die ArcGIS unterstützen, zur Verfügung steht, wird zum Reduzieren der Texturen verwendet.
- Darüber hinaus können Sie die Texturen für den Layer vollständig deaktivieren. Die Geometrie wird weiterhin angezeigt, und die Verwendung einfacher Farben kann als Symbologie erfolgen.