Lernen, wie man Betrüger manuell in Unity herstellt - wie man ein Objekt in eine Textur rendert, die die Kamera nicht sieht?

8

Ich versuche zu lernen, wie man in Unity manuell einen Betrüger macht - ohne vorgefertigte Lösungen.

Meine erste Vermutung ist, dass dies erreicht werden sollte, indem RenderTexture und eine zweite Kamera verwendet werden und dann verschiedene "Schnappschüsse" von verschiedenen Winkeln des Objekts gemacht werden. Wenn es bessere Alternativen in Bezug auf die Leistung gibt (auch wenn dies schwieriger zu implementieren ist), würde ich gerne davon hören.

Falls dies der einzige Pfad ist, habe ich gelernt, wie man per Skript von einer Kamera zu einer Textur rendert, aber ich konnte immer noch nicht herausfinden, wie das Folgende funktioniert, was ich zuerst tun muss: wie man rendert - ein bestimmtes Objekt ohne Hintergrund der Kamera (dh wenn der Rest der Textur transparent ist) auf performante Weise zu texturieren?

Hinweise, Vorschläge oder zumindest Linkempfehlungen sind großartig.

Danke im Voraus.

AndraSol
quelle
Bitte beschränken Sie Ihren Beitrag auf eine einzige Frage. Sie können 2 verschiedene Fragenbeiträge für Ihre beiden Fragen erstellen.
Vaillancourt
@AlexandreVaillancourt Kein Problem! Ich habe es so gemacht. Lassen Sie mich wissen, ob es noch weitere Verbesserungen benötigt
AndraSol
Sie können auch nicht nach "Links" fragen, da Antworten, die nur Links enthalten, nicht als gute Antwort für diese Site angesehen werden. Andernfalls ist Ihre Frage in Ordnung :)
Vaillancourt
@AlexandreVaillancourt Danke! Aber ich denke dann könnten gute Linkempfehlungen per Kommentar kommen, bin ich richtig?
AndraSol
So etwas ja. Eine Antwort kann gut geschrieben sein und Links zu weiteren Details enthalten. Eine Antwort, die nur Links enthält, wird entfernt. Kommentare unterliegen nicht diesen Regeln.
Vaillancourt

Antworten:

3

Es gibt verschiedene Betrügertechniken.

Der Detaillierungsgrad ist wahrscheinlich am einfachsten zu erreichen, weist jedoch zwei Hauptnachteile auf. Der spürbare Pop-Effekt beim Wechsel zwischen Modellen mit niedriger und hoher Auflösung, der durch allmähliche Übergänge zwischen LODs behoben wird. Das zweite Problem ist, dass es VIEL mehr Arbeit für den Künstler ist, LODs für jedes einzelne Modell zu generieren. Es gibt einen GDC-Vortrag über eine automatisierte Methode zur Generierung von LODS - "Automatisierte Detaillierungsstufe für HALO: REACH"

Eine einfachere Technik wäre das Billboarding, bei dem Sie nur ein flaches Polygon anstelle eines Netzes mit niedriger Auflösung verwenden. Dieses Polygon ist der Kamera zugewandt und wird aus einem Render Ihres Modells strukturiert. Diese Methode erfordert mehrere unterschiedliche Ansichten Ihres Objekts, ähnlich wie die Feinde im Untergang. Sie können alle Ihre Ansichten in einen Texturatlas übertragen. Moderne Spiele verwenden diesen Ansatz, wie Far Cry 3 https://www.youtube.com/watch?v=9P3EI17kHaI

Sie können auch mehrere verschiedene statische Werbetafeln verwenden und diese wie in diesem Einheitspaket kombinieren. Https://forum.unity3d.com/threads/abi-automatic-3d-billboard-imposters-released.204579/

Aber der beste Weg (was ich denke, dass Sie wollen) ist das dynamische Rendern Ihrer Werbetafeln, wie in diesem Gamasutra-Artikel. http://www.gamasutra.com/view/feature/130911/dynamic_2d_imposters_a_simple_.php Dies wurde erstmals 1998 von Jurrassic Park: Trespasser durchgeführt, es ist also keine neue Technik. Schauen Sie sich die Codeüberprüfung hier an: http://fabiensanglard.net/trespasser/index.php Scrollen Sie zum Abschnitt über Wavelets, um deren Betrüger zu sehen.

Mit Ausnahme des Standard-LOD-Ansatzes besteht Ihr erster Schritt wahrscheinlich darin, ein Tutorial für die Rendertextur zu finden. Die Ausrichtung der renderTexture-Kamera muss mit der Ihrer Hauptkamera übereinstimmen, jedoch aus Gründen der Effizienz um das gameObject herum zugeschnitten sein. Sie müssen die GameObject (s), die Sie rendern möchten, mit einer Culling-Maske isolieren. Setzen Sie die klaren Flaggen der Kamera so, dass Sie einen transparenten Hintergrund erhalten. Rendern Sie dann eine Betrüger-Werbetafel anstelle des ursprünglichen Objekts.

Reuben Crimp
quelle