Ein 3D-Objekt fälschen, um die Anzahl der Polygone zu verringern

20

Ich mache ein Spiel in Einheit und baue einen Zaun im Mixer, aber ich möchte, dass es so niedrig wie möglich ist. Mein ursprüngliches Design war zu hoch, also dachte ich, was wäre, wenn ich einfach einen Würfel mit einigen geschickt arrangierten Texturen verwenden könnte. Wie so:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Sie können sehen, dass die Kanten alle gut aussehen, aber die Innenteile nicht, dh es ist nichts da ... also weiß jemand, ob es möglich ist, die Gesichter zu fälschen, die es aussehen lassen, als ob es ein komplettes Netz wäre. Folgendes versuche ich zu erreichen:

Bildbeschreibung hier eingeben

Herr-matt
quelle
7
Ich zähle 52 Eckpunkte auf diesem Zaun. Das sind nicht so viele.
Pharap
1
@Pharap Denken Sie jedoch daran, was passiert, wenn Sie Tausende von Kopien dieses Netzes an Ihrem ebenen Rand platzieren.
Philipp
5
@Philipp Wenn Unity Vertex-Pufferobjekte und ähnliche Optimierungstechniken korrekt verwendet, sollte dies kein Problem darstellen. Du könntest immer nur ein Plakat-Sprite mit Alpha verwenden, wenn du dir solche Sorgen machst. Oder noch besser, rendern Sie ein Plakat-Sprite in einiger Entfernung und rendern Sie das richtige Netz, wenn der Spieler nah genug dran ist. Und ich bezweifle aufrichtig, dass Sie Tausende von Zäunen gleichzeitig zum Screenen bringen werden. Selbst wenn es mehr als 9000 Zäune auf der Welt gibt, vermute ich, dass eine große Menge davon getötet wird. Haben Sie tatsächlich ein Benchmarking durchgeführt oder machen Sie nur Annahmen über die Leistung?
Pharap
6
Entwickeln Sie für Mobilgeräte oder für PC / Konsole? Zumindest auf modernen (5 Jahre oder jünger) GPUs ist das 52 Vertices-Modell wahrscheinlich billiger als Alpha-Blending / Alpha-Masking. Dies hängt von vielen Faktoren ab (Bildschirmabdeckung, GPU, Pixel-Shader oder Engpass bei der Rasterung usw.). Die Verwendung von Alphamasken führt jedoch immer zu einer Überzeichnung. Sie sollten dies wahrscheinlich vor dem Optimieren bewerten.
Tobias B
2
Ein Fall, in dem Sie dies möglicherweise nicht tun möchten, ist, wenn Sie die Kollisionserkennung in diesen Lücken ignorieren müssen, z -Loch "( Aufkleber ) erschien auf dem‚leeren Raum‘( Modell ).
DoubleDouble

Antworten:

26

Wenn ich richtig verstehe, was Sie erreichen wollen, suchen Sie das Konzept der "Betrüger". Hierbei handelt es sich genau um 2D-Darstellungen von 3D-Objekten, mit denen die geometrische Komplexität beim Rendern der 3D-Umgebung verringert wird.

Sie können sich diese als Bilder von 3D-Objekten vorstellen, die als Texturen von 2D-Objekten verwendet werden. Die kanonische Referenz für diese ist wahrscheinlich das Kapitel 21 des Buches GPU Gems 3 mit dem Titel "True Impostors". Es ist öffentlich zugänglich hier . Eine weitere wichtige Referenz ist das Kapitel 5.7 des Buches Game Programming Gems v.2 mit dem Titel "Imposters: Adding Clutter" in Game Programming Gems 2, Tom Forsyth ".

Und sie können gleichmäßig im laufenden Betrieb generiert werden, um kleine Änderungen des Blickwinkels oder zur Laufzeit generierte Inhalte zu verarbeiten. Schauen Sie sich den großartigen Gamasutra-Artikel mit dem Titel "Dynamic 2D Imposters: Eine einfache, effiziente DirectX 9-Implementierung" an . Eine Weiterentwicklung des Konzepts ist bei "Billboard Clouds for Extreme Model Simplification" erschienen .

Eine gute Erklärung des Konzepts finden Sie in diesem Blogeintrag: http://blog.wolfire.com/2010/10/Imposters

Als letztes habe ich bei der Verwendung von Unity von einem Plugin gehört, das einen solchen Prozess automatisiert. Es heißt Real Imposters LOD System .

UPDATE: Zum Abschluss habe ich mir überlegt, zwei Dinge hinzuzufügen, an die ich mich in letzter Zeit erinnert habe. Das erste ist: Es gibt ein großartiges GDC-Video, in dem SimCitys Art Director erklärt, wie sie (heftig) Betrüger eingesetzt haben, um erstklassige grafische Leistungen dieses Spiels zu erzielen: "GDC - Aufbau von SimCity: Kunst im Dienst der Simulation". . Zweitens, für diejenigen, die sich für Unreal Engine interessieren, gibt es eine integrierte Funktion zum Implementieren von Betrügern, wie in der Dokumentation zu sehen ist

MAnd
quelle
Wenn ich also das Zaunmodell fertigstelle und das Real Imposters LOD-System verwende, würde das Ihrer Meinung nach funktionieren?
Mr-Matt
5
@MatthewInglis Ich kann dir nicht genau sagen, was das Plugin ist: Es ist schon eine Weile her, dass ich Unity nicht mehr benutze, also kann ich es nicht überprüfen. Aber im Prinzip sollte eine 2D-Sprite-Version Ihres 3D-Objekts mit allen Details erstellt werden. Sie müssten jedoch mit den Konfigurationen herumspielen. Wenn Sie vorhaben, das Plugin zu kaufen, lesen Sie zuerst die Dokumente ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) und wenden Sie sich mit spezifischen Fragen, die Sie möglicherweise zu ihrem Produkt haben, an den Autor.
15.
0

Wenn Sie keine Interaktion für den Zaun benötigen, würde ich aufgrund der Lücken ein einfaches transparentes Rechteck mit einer gedruckten Textur verwenden.

PRDeving
quelle