Umbra3

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Umbra3

Beitrag von Jonathan »

Ich bin gestern über Umbra 3 gestolpert und wollte das hier einfach mal ein wenig diskutieren:

http://www.umbrasoftware.com/en/

Umbra 3 ist eine Middleware für Occlusion-Testing und wird von einigen prominenten Spielen benutzt. Weiß jemand etwas genauer, was die eigentlich intern machen? Von den Infos auf der Webseite kann man zwar ein wenig was entnehmen, aber natürlich nicht alles.
Für mich hört sich das in etwa so an: Aus der Levelgeometrie (Polygonsuppe) werden Occluder-Objects generiert, die konservatives Culling garantieren. Die werden dann per Software in relativ geringer Auflösung gerendert und an dem Ergebnis kann man erkennen, was sichtbar ist, und was nicht (zumindest kann Umbra 3 optional einen Depth-Buffer ausspucken um dynamische Objekte zu testen, und man sieht ihn auch in einem Demo-Video - es erscheint also naheliegend, dass sie es so machen).
Aber weiß jemand mehr Details darüber? In den Videos werden u. a. Versprechen wie "läuft in konstanter Zeit" gemacht, was ich doch ziemlich fragwürdig finde.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Umbra3

Beitrag von Tiles »

Also in Unity 3 war Umbra dabei. Und da war das für das Occlusion Culling zuständig.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Umbra3

Beitrag von Krishty »

Klingt nach einer Implementierung von Intels Software Occlusion Culling Demo, die ryg in dieser Artikel-Serie getunt hat.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Umbra3

Beitrag von Schrompf »

Falls es das Occluder-In-Software-Rendern ist, dann macht die Frostbite-Engine von Battlefield und Konsorten das auch so.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Umbra3

Beitrag von Jonathan »

ah danke für den Link. Leider habe ich dazu kein Paper gefunden, aber dafür einen GDC Vortrag über eben jene Demo:

http://www.gdcvault.com/play/1017837/Wh ... jects-Cull

Auf jeden Fall eine coole Idee, die sich ja auch scheinbar echt lohnt. Allerdings dürfte der Implementierungsaufwand fürs selbermachen dann doch recht hoch sein.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
David_pb
Beiträge: 18
Registriert: 23.07.2014, 20:50

Re: Umbra3

Beitrag von David_pb »

Hi,

ich hab bisher noch nicht mit Umbra 3 gearbeitet, deshalb kann ich auch nur das wiedergeben was in öffentlichen Präsentationen geschildert wird. Umbra scheint einen relativ guten Preprocessing-Schritt zu haben, was den Ansatz von den Software-Rasterizer Lösungen (Intel/Fabian, Cryengine, Killzone, ...) unterscheidet. In diesem Schritt wird die Szene voxelisiert und die Voxelrepräsentation analysiert. Im Grunde erzeugt Umbra Informationen über zusammenhängende Geometry und platziert automatisiert Portale an 'offenen' Stellen. Im Endeffekt ergeben sich daraus (konvexe) Zellen die durch Portale verbunden sind (quasi standard für alle Portal-Systeme). Die Bereiche werden in einer Baumstruktur hinterlegt, so das die Hierarchy schnell traversiert werden kann. Umbra scheint ausserdem nur 'wichtige' Occluder in diesen Baum zu packen und verwirft kleine Details um die Struktur möglichst nicht explodieren zu lassen und unwichtige Details direkt zu eliminieren.

Zur Runtime wird die aktuelle Zelle über die Kameraposition ermittelt und der Portal-Baum traversiert und somit alle potentiell sichtbaren Portale/Zellen ermittelt. Die Portale werden zusätzlich mit einem Software-Rasterizer in einen Occlusionpuffer gerendert. Um die Sichtbarekeit eines Objekts zu ermitteln rendert Umbra die Boundingboxen der Objekte und testet das Ergebnis gegen den Occlusionpuffer. Umbra unterstützt außerdem dynamische Objekte als Occluder indem diese einfach in einem weiteren Schritt in den Occlusionpuffer gerendert werden (ebenfalls komplett auf der CPU).

Precompute
  • Szene voxelisieren/optimieren
  • Portale zwischen 'well connected' regionen aufspannen
  • Portal-Baum erzeugen
Runtime
  • Aktuelle Zelle emitteln
  • Potentiell sichtbare Portale/Zellen ermitteln
  • Portale in Occlusionpuffer schreiben
  • Dynamische Occluder aus sichtbaren Zellen in Occlusionpuffer schreiben
Query
  • Für alle Objekte Boundingvolume gegen Occlusionpuffer testen
  • ...
Die meisten anderen Software-Rasterizer Occlusion Culling Ansätze haben diesen Preprocessing-Schritt nicht sondern erzeugen den Occlusionpuffer direkt aus den Occluderobjekten. Dafür wird häufig spezielle Occlusiongeometrie benötigt da die richtigen Meshes i.A. zu komplex sind um effizient auf der CPU rasterisiert werden zu können.

Der Ansatz den wir in Lords of the Fallen verwenden funktioniert so ähnlich. Im Verlauf der Entwicklung wurden verschiedene Optionen evaluiert. Im Endeffekt nutzt unser Ansatz den Depthbuffer von der GPU als Occlusionpuffer. Mit ein paar Tricksereien kann die Latenz weitgehend ignoriert werden. Trotzdem ist viel Tweakaufwand notwendig um z.B. Objektploppen bei schnellen Kamerabewegungen oder Kameraschnitten zu vermeiden.

Links:
http://www.umbrasoftware.com/en/umbra-3/videos/
http://www.umbrasoftware.com/en/company/downloads/
http://www.umbrasoftware.com/wp-content ... eature.pdf
http://twvideo01.ubm-us.net/o1/vault/GD ... ity_In.pdf
http://www.gdcvault.com/play/1017834/Po ... ny-s-Level
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Umbra3

Beitrag von Schrompf »

Danke für die Zusammenfassung! Spannenes Thema, auch wenn ich wieder Probleme habe, die Nützlichkeit dieser Portalerzeugung abzuschätzen. Ich meine... das sind Profis, die werden wissen, was sie tun. Aber so richtig bringen tut das doch nur in Gebäuden o.Ä., vermute ich.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
David_pb
Beiträge: 18
Registriert: 23.07.2014, 20:50

Re: Umbra3

Beitrag von David_pb »

Laut Umbra performed der Ansatz ja in jeder Situation gut. Ich denke der Ansatz ist schon interessant, würde gern selbst mal testen wie gut das funktioniert. Allerdings scheint CD PROJEKT RED damit ganz gute Erfahrungen bei Witcher 3 gemacht zu haben.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Umbra3

Beitrag von CodingCat »

Schrompf hat geschrieben:Danke für die Zusammenfassung! Spannenes Thema, auch wenn ich wieder Probleme habe, die Nützlichkeit dieser Portalerzeugung abzuschätzen. Ich meine... das sind Profis, die werden wissen, was sie tun. Aber so richtig bringen tut das doch nur in Gebäuden o.Ä., vermute ich.
Ich denke man unterschätzt leicht den Grad an Verdeckung in normalen Szenarien: In der Regel bewegt man sich doch schlicht aus Gründen der Orientierung und des Bezugspunkts recht bodennah, und dann reicht schon ein moderat geschachtelter Stadtplan oder eine einigermaßen rauhe Landschaft aus, einen großen Teil der Tiefengeometrie schlichtweg rauszumaskieren. Ob dann indoor noch ein Dach drüber ist oder outdoor die Dächer/Hügel nur hoch genug sind, macht da nicht so den Unterschied.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Antworten