F & E: Arm teilt integrierte VR-Optimierungstechniken, um die Bildqualität, Glätte und Stabilität zu verbessern

2020-10-13 Der Artikel wird durch Software übersetzt

Wenn Sie keine Erfahrung in der mobilen Entwicklung haben, kann das Portieren von Inhalten von PCs und Hosts auf die Plattform ein schwieriger Prozess sein. Das Gleiche gilt, wenn Sie die Arbeit zu Oculus Quest bringen. Eine weitere Herausforderung besteht darin, dass das VR-All-in-One-Gerät vor dem Benutzer steckt, sodass der kleinste Fehler klar und leicht erkennbar ist. In der Lage zu sein, das Projekt korrekt zu optimieren, bedeutet eines der folgenden zwei Ergebnisse: eine reibungslose und angenehme Benutzererfahrung, der ständige Abfall von Frames, der durch überhitzte GPU verursacht wird.


Vor einigen Tagen brachte Arm ein 20-minütiges Tutorial zur mobilen VR-Optimierung für das Oculus Start-Programm per Video. Im Folgenden hat Yingwei.com die fünf Hauptpunkte des Videos zusammengestellt:


1. Die Texturkomprimierung ist sehr wichtig


Selbst wenn Texturen als PNG, JPEG, TGA oder PSD exportiert werden, bleiben sie beim Ausführen des Projekts nicht im Format. Jede Textur wird in ein Format konvertiert, das von der GPU schneller gelesen werden kann, wodurch die Bandbreite reduziert und weniger Speicher im VRAM belegt wird. Obwohl Sie zwischen verschiedenen Lösungen wählen können, empfiehlt Arm ASTC (Adaptive Scalable Texture Compression) für mobile Plattformen. ASTC wurde von Arm und AMD entwickelt und bietet unter anderem zahlreiche Optionen zur Steuerung der Komprimierungsqualität. Zu Beginn können verschiedene Ebenen der Blockgröße (Blockgröße) beängstigend sein. Daher empfiehlt Arm, dass Sie mit 5 × 5 oder 6 × 6 beginnen und dann die Blockgröße für Ressourcen vergrößern, die weniger Speicherplatz beanspruchen. Probieren Sie jedoch verschiedene Einstellungen aus, um die beste Option für das Projekt zu finden.


Eine weitere Option, die Sie in Ihrem Projekt ausprobieren können, ist ETC (Ericsson Texture Compression). Dies führt jedoch normalerweise zu einem höheren Speicherbedarf für die Textur, einer geringeren visuellen Qualität und verringert die Laufzeitleistung. Weitere Informationen zu ASTC, zur Verwendung von ASTC und zu verschiedenen ASTC-Encoderoptionen finden Sie auf dieser Seite (Arm hat am 20. August eine aktualisierte Version des ASTC v2.0-Encoders veröffentlicht).


2. Verwenden Sie LODs (Level OF Details), um die Anzahl der Scheitelpunkte zu verringern und Mikrodreiecke zu vermeiden


Wir alle wissen, dass Geometrie einen großen Einfluss auf die Leistung hat. Je weniger Eckpunkte im Netz vorhanden sind, desto schneller ist die Berechnung. Das Beibehalten der Anzahl der gerenderten Eckpunkte steht manchmal im Widerspruch zur künstlerischen Vision des Projekts. Zu diesem Zeitpunkt können wir LODs verwenden.


Für Netze, die weit vom Benutzer entfernt sind, zeigen LODs eine niedrigere polygonale Version an. Verwandte Modelle sind vorgefertigt und der Abstand ihrer Änderungen ist steuerbar. In komplexeren Szenen können Benutzer weit weg sehen, was dazu beiträgt, die Anzahl der Scheitelpunkte zu verringern und ein weiteres Problem zu lösen: Mirco-Dreiecke. Diese Art von Dreieck belegt 1-10 Pixel, wenn es vollständig gerendert ist. Obwohl sie nicht viel zum endgültigen Image beitragen, muss die GPU es noch vollständig verarbeiten.


3. Verwenden Sie Mipmaps, um die Projektleistung und -vision zu verbessern


Mipmapping ist wie LODs, jedoch hauptsächlich für die Textur. Mipmap ist eine Kopie der Textur, die mit einer niedrigeren Auflösung gespeichert wurde. Wenn die GPU die Textur abtastet, wählt sie die entsprechende Mip-Ebene entsprechend der Größe des vom Fragment belegten Texturraums aus. Auf den ersten Blick wirkt Mipmap etwas seltsam. Kopien von Texturen erhöhen den Speicherbedarf. Im Gegenzug können Sie jedoch die Leistung der GPU steigern, da Objekte, die weit von der Kamera entfernt sind, nicht mit voller Auflösung gerendert werden müssen. Gleichzeitig kann eine gezackte Textur verhindert werden. In Kombination können Mipmap und LODs das Rendern von Szenen beschleunigen.


4. Schlankes Dreieck


Wie bereits erwähnt, ist die GPU-Berechnung umso schneller, je weniger Scheitelpunkte das Netz bilden. Selbst Low-Poly-Netze können jedoch bestimmte Probleme haben und mehr Druck auf die GPU ausüben. Am häufigsten ist das längliche Dreieck. Da der dritte Scheitelpunkt für diese Art von Dreieck weit entfernt ist, belegt er bei vollständiger Wiedergabe Dutzende von Pixeln. Der Grund für das Problem ist, dass die GPU mehrere Pixel in Form von quadratischen Blöcken verarbeiten muss. Dies ist eine Herausforderung, denn selbst wenn dieses Dreieck nur einen kleinen Teil des Ansichtssteuerelements einnimmt, muss die GPU Berechnungen für mehrere Blöcke durchführen. Die beste Option ist, alle schlanken Dreiecke zu löschen und sicherzustellen, dass die Dreiecke so nah wie möglich am Gleichgewicht sind.


5. Verwenden Sie Alpha zur Abdeckung


Die Aufrechterhaltung einer hervorragenden Leistung bei gleichzeitiger Reduzierung des Aliasing von Alpha-Objekten ist eine Herausforderung für die virtuelle Realität. Der Alpha-Test ist eine weit verbreitete Form der Alpha-Synthese und die Standardeinstellung für viele Game-Engines. Es kann jedoch zu gezackten Servereffekten an den Kanten von Objekten führen. Alpha-Blending ist eine alternative Methode, aber ohne Polygonsortierung können Objekte nicht in der richtigen Reihenfolge gerendert werden, und das Sortieren ist eine sehr rechenintensive Operation.


Alpha-to-Coverage (ATOC) kann zur Reduzierung von Aliasing beitragen, indem die Alpha-Komponentenausgabe des Fragment-Shaders in eine Overlay-Maske konvertiert und mit einer Multi-Sampling-Maske kombiniert wird. Dann wird der AND-Operator verwendet und nur die Pixel gerendert, die die Operation bestanden haben.


Die linke Seite des obigen Bildes ist ein grundlegender Alpha-Test und die rechte Seite ist ATOC. Selbst bei statischen Bildern ist das Aliasing sehr wichtig, und wenn das Bild in Bewegung ist, sind die Änderungen viel offensichtlicher. Obwohl dies ziemlich schwierig klingt, bietet Arm eine einfache Anleitung für jeden Motor.


6. Aufwärmen


Aufgrund des multidisziplinären Charakters von Virtual-Reality-Projekten können die fünf Fähigkeiten nicht alle Aspekte vollständig abdecken. Um ein großartiges Projekt zu entwickeln, müssen Sie sich viel Mühe geben. Das Obige ist nur die Spitze des Eisbergs der Optimierungstechniken. Um detailliertere Informationen zur Optimierung von Geometrie, Texturen und Materialien zu erhalten, befolgen Sie bitte die Best Practices für Waffen für Künstler und überprüfen Sie die VR-Grafiktechnologie im Unity-Projektbeispiel und im UE4-Projektbeispiel. Darüber hinaus fordere ich alle auf, Ihre Fähigkeiten und Vorschläge aktiv mit der Community zu teilen, um allen zu helfen, sich gemeinsam zu verbessern.



from: 映维网yivian.com/news/78877.html

© 2020 www.ourvrworld.com