Nanite-Prinzip — Milliarden Dreiecke, ein Bildschirm (3D)
Über diese App
Ein Felsblock mit 12,6 Millionen Dreiecken, zerlegt in Cluster zu je 128 Dreiecken: Jeder Cluster wird so fein gezeichnet, dass sein Fehler unter einem Pixel bleibt. Beim Heranfliegen zerfallen die bunt gefärbten Cluster live in feinere, gezeichnet werden etwa so viele Dreiecke wie Pixel. Vergleich mit klassischem LOD, Nähte, eingefrorene Auswahl. Prinzip nachgebaut, keine Unreal-Engine-Software.
So viele Dreiecke wie Pixel
Ein Bildschirm hat nur wenige Millionen Pixel. Ein Modell mit Milliarden Dreiecken komplett zu zeichnen, wäre Verschwendung: Die meisten Dreiecke wären kleiner als ein Pixel. Virtualisierte Geometrie, wie sie Nanite in der Unreal Engine umsetzt, zerlegt das Modell deshalb in kleine Cluster mit je etwa 128 Dreiecken und legt für jeden mehrere Detailstufen an. Pro Bild wird für jeden Cluster die gröbste Stufe gewählt, deren Fehler auf dem Schirm unter etwa einem Pixel bleibt. So bleibt die Zahl gezeichneter Dreiecke ungefähr bei der Zahl der Pixel, egal wie fein das Modell ist.
Was die App zeigt
Einen Sandsteinblock mit bis zu 12,6 Millionen Dreiecken, auf dem Handy 3,1 Millionen. In der Cluster-Ansicht trägt jeder Cluster eine eigene Farbe; beim Heranfliegen zerfallen die Cluster live in feinere, und der Zähler gezeichneter Dreiecke bleibt etwa gleich, solange der Block den Schirm füllt. Weitere Ansichten zeigen einzelne Dreiecke, Detailstufen und die Aufteilung auf Software- und Hardware-Rasterizer. Ein Vergleich zeigt klassisches LOD mit drei festen Stufen für das ganze Modell. Prinzip nachgebaut, keine Unreal-Engine-Software.
Selbst ausprobieren
Lass die Kamera heranfliegen oder wähle Abstände von 1 bis 5, verändere die Fehlerschwelle von 0,5 bis 8 Pixel und wechsle die Modellgröße: Im Modell steckt dann ein Vielfaches, gezeichnet wird fast gleich viel. Schalte das Schließen der Nähte ab, um Risse zwischen groben und feinen Clustern zu sehen, und friere die Auswahl ein, um sie von außen zu betrachten.
Häufige Fragen
- Was ist Nanite in der Unreal Engine?
- Nanite ist das System für virtualisierte Geometrie der Unreal Engine 5. Es zerlegt sehr detaillierte Modelle in Cluster mit mehreren Detailstufen und wählt pro Bild für jeden Cluster die Stufe, deren Abweichung auf dem Bildschirm unter etwa einem Pixel liegt. Dadurch lassen sich Modelle mit Millionen bis Milliarden Dreiecken in Echtzeit darstellen.
- Was ist der Unterschied zwischen Nanite und klassischem LOD?
- Klassisches Level of Detail wechselt das ganze Modell nach Abstand zwischen wenigen festen Stufen; beim Wechsel springt das Bild sichtbar (Popping), und nah wird das ganze Modell fein gezeichnet. Nanite wählt die Stufe für jeden kleinen Cluster einzeln nach seinem Pixelfehler, sodass nur sichtbare, nahe Bereiche fein gezeichnet werden.
- Macht ein Modell mit mehr Dreiecken das Spiel langsamer?
- Bei virtualisierter Geometrie kaum, solange das Modell in Cluster zerlegt ist: Gezeichnet werden etwa so viele Dreiecke, wie Pixel bedeckt sind. Mehr Dreiecke im Modell kosten vor allem Speicher, nicht Zeichenzeit. Bei klassischem Rendering steigt die Zeit dagegen mit der Dreieckszahl.
- Ist die Nanite-Prinzip-App Software der Unreal Engine?
- Nein. Sie baut das Prinzip im Browser vereinfacht nach: mit einer Quadtree-Hierarchie statt des Cluster-Graphen des Originals, einer Gitter-Vereinfachung und ohne echten Software-Rasterizer. Die Zahlen hängen von Fenstergröße und Gerät ab.
Fach: Informatik
Mehr aus Informatik
- Ackermann-Funktion
- Aufzug-Simulator
- Binär-Werkstatt
- Binäre vs. lineare Suche
- Collatz-Problem (3n+1)
- CPU-Innenleben
- Das Innere austauschen
- Ein Frame in 16 Millisekunden — wie eine Game-Engine ein Bild rechnet (3D)
Eine VisuApp von heyprof: interaktiv, kostenlos im Browser, ohne Anmeldung. Was ist eine VisuApp? · Alle Apps