Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

06.10.2014, 17:03

Das klingt alles nach einem riesigen "Hack" :)
Hoffentlich dauert es nicht mehr so lange, bis echte globale Beleuchtung echtzeitfähig ist.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

12

06.10.2014, 17:42

Das klingt alles nach einem riesigen "Hack" :)

Ist es im Prinzip auch ^^
Die Reflektionen werden bei SSLR oder SSCT im Grunde nur 'gefaket' (Unsere ersten Testergebnisse sahen grässlich aus :dead: ).
Wie David_pb schon erwähnt hat, gibt es dafür viele Workarounds und eben solche "Fallback" Methoden schaue ich mir gerade an.

@David_pb: Die MIP Stufe wird während des Ray-Marchings in jeder Iteration neu berechnet.
Der Cone hat einen Winkel (abhängig von der Surface Roughness) und der, zusammen mit der Distanz zum Ray-Start-Punkt, wird in eine MIP-Stufe umgerechnet.

Zu Beginn sah unser Ray Marching noch ganz anders aus: da hatte ich noch kein Binary Search eingebaut, um den Ray-Hit-Point schneller zu finden.
Ein Binary Search (wie im Poster erklärt) kann sowohl die Performance als auch die Bildqualität noch mal deutlich verbessern.

BTW: Hier gibt's einen Artikel zu Parallax Corrected Cubemaps aus dem Spiel Remember Me, wer sich für CubeMaps interessiert.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

13

16.04.2015, 10:29

Aufbauend auf dem Poster von letztem Jahr, habe ich auch meine Bachelor Arbeit geschrieben.
Die ist nun endlich online für alle zugänglich :-)

Bachelor Thesis - Screen Space Cone Tracing

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

14

16.04.2015, 11:53

Danke. Ich les es mir bei Gelegenheit mal durch. Obwohl ich eigentlich von Screen Space im allgemeinen weg wollte.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

15

16.04.2015, 21:31

Obwohl ich eigentlich von Screen Space im allgemeinen weg wollte.

Kann ich dir nachempfinden ^^
Nach der Bachelor Arbeit habe ich auch erst mal genug von dem Thema :P

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

16

17.04.2015, 11:17

Hi,

herzlichen Glückwunsch zur erfolgrechen Abgabe deiner Arbeit! Hab mir die Arbeit jetzt mal komplett durchgelesen, liest sich im Großen und Ganzen sehr gut und die Ergebnisse sehen klasse aus! Einige Fragen bzw Anmerkungen hätte ich dazu noch:

Irgendwie hab ich SVOGI im "State of the Art" Abschnitt vermisst. Gab es einen besonderen Grund warum du das nicht mit aufgenommen hast? Würde eigentlich erzänzend ganz gut dazu passen.

Fast alle Spiele nutzen heute ein hybriden Ansatz, um Reflexionen darzustellen. Meistens ist es sowas wie SSR + localized Cubemaps + global Cubemap, in der Reihenfolge als Fallbacklösung. Remember me z.B. verwendet außer (interpolierten) localized Cubemaps (parallax corrected cubemaps) ebenfalls billboard reflections. KZ: SE verwendet ein komplexes System aus localized Cubemaps, einem Screenspace Ansatz sowie analytischen Arealights und Billboard Reflections.

Bei Cubemap Reflexionen steht in der Arbeit als häufiger Nachteil, das diese manuell in der Welt verteilt werden müssen. Ich kenn diesen Hang von Programmierern, möglichst alles zu automatisieren. Meiner Erfahrung nach sehen Artisten das häufig ganz anders. Artisten mögen es häufig sämmtliche Hebel in der Hand zu haben, mit der Möglichkeit ihre künstlerischen Visionen umsetzen zu können. Ein Beispiel ist das GI System das Crytek verwendet (LPV). In einem Talk hat damals ein Lighting-Artist darüber geredet, dass das System aus einem Art-Standpunkt relativ unbrauchbar ist und indirekte Beleuchtung an allen Ecken und Enden mit manuell platzierter Lichtquellen gefaked wurd. Ähnliches hab ich auch bei meinem letzten Spiel (LotF) erlebt, da war die GI Lösung Enlighten.

Auch bzgl der Cubemaps habe ich irgendwie parallax korrigierte Cubemaps im Vergleichs-Abschnitt vermisst. Gab es da bestimmte Gründe, wieso das rausgelassen wurde?

Bzgl der SSCT Implementierung von dir. Hast du eine Lösung bzgl "reprojection artifacts" eingebaut? Du verwendest ja den letzten Frame, wie verhält sich die Implementierung bei schnellen Kamerabewegungen?

Die Performanz scheint bei höheren Auflösungen ziemlich heftig, zumindest für den realen Einsatz in Spielen. Im Allgemeinen würde man ja aber auf der halben oder viertel Auflösung arbeiten, da passen die Zahlen ja schon wieder ganz gut ins Budget. Interessant fand ich auch folgenden Satz:

Zitat

"because particularly state changes to the framebuffer binding are very time consuming and it would also increase the memory footprint"


Das splitten in zwei Pässe kann durchaus ein großer Gewinn sein. Gerade auf moderner AMD Hardware (GCN) könnte das einen großen Unterschied machen hinsichtlich VGPR pressure. Wäre bestimmt mal ein interessanter Aspekt, sich das genauer anzuschauen.
@D13_Dreinig

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

17

18.04.2015, 11:32

Danke für's Feedback :-)

Zitat von »David_pb«

Irgendwie hab ich SVOGI im "State of the Art" Abschnitt vermisst. Gab es einen besonderen Grund warum du das nicht mit aufgenommen hast?

Hätte man natürlich auch noch mit aufnehmen können, aber ich wollte erst mal nur ein paar ältere Effekte anführen und dann den Leser in Richtung Screen-Space Effekte leiten (SSLR, SSCT, HZCT).

Zitat von »David_pb«

Fast alle Spiele nutzen heute ein hybriden Ansatz, um Reflexionen darzustellen.

Bin da nicht so sehr drauf eingegangen, war mir aber durch aus bewusst. Das wird ja auch u.a. in den Präsentationen zu Thief 4 und Killzone: Shadow Fall, die ich als Referenzen angegeben habe, erläutert. Aber ein mehr schichtiges Reflexions Modell hätte dann doch den Rahmen der Arbeit gesprengt. Außerdem braucht man zu einigen 'Fallback' Lösungen wieder einen Level Editor. Und das schöne an Screen-Space Effekten ist ja, dass sie sich sehr einfach in Render-Pipelines integrieren lassen und meistens keine Informationen der Szene brauchen, außer der Texturen des Deferred Passes.

Zitat von »David_pb«

Auch bzgl der Cubemaps habe ich irgendwie parallax korrigierte Cubemaps im Vergleichs-Abschnitt vermisst. Gab es da bestimmte Gründe, wieso das rausgelassen wurde?

Weil ich es dafür nachprogrammieren müsste ^^, und der Effekt ist nicht gerade trivial.
Für Parallax-Corrected CubeMaps braucht man im Grunde auch einen entsprechenden Level Editor, um sie in die Szene zu integrieren.

Zitat von »David_pb«

Bzgl der SSCT Implementierung von dir. Hast du eine Lösung bzgl "reprojection artifacts" eingebaut? Du verwendest ja den letzten Frame, wie verhält sich die Implementierung bei schnellen Kamerabewegungen?

Reprojection, wie bspw. in Killzone: Shadow Fall, habe ich gar nicht eingebaut. Ich habe nur einen einfachen Deferred Renderer, der mir die Color-, Normal- und Depth-Maps liefert. D.h. also schnelle Kamerabewegungen beeinflussen den Effekt gar nicht.

Gruß,
Lukas

Werbeanzeige