VXGI

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

VXGI

Beitrag von Zudomon »

Huhu!

Ich schaue mir gerade ein wenig diese "VXGI-Technologie" an und versuche die ein wenig zu verstehen...
http://on-demand.gputechconf.com/gtc/20 ... S5670.html

Das scheint ja prinzipiell gar nicht so schwer zu gehen... also so wie ich das sehe erstellt man eine 3D Opacity und Diffuse-Map und berechnet daraus über Cone-Tracing das indirekte Licht. Was ich nicht ganz verstehe ist folgendes:
Bei der Cornell Box ist das Diffuse Licht für die Kugeln sehr unstetig. Also man sieht ja da Schattierungen...
http://international.download.nvidia.co ... voxels.png
Also warum sind die Kugeln nicht genauso homogen beleuchtet wie die Wand dahinter?
David_pb
Beiträge: 18
Registriert: 23.07.2014, 20:50

Re: VXGI

Beitrag von David_pb »

Bei der Cornell Box ist das Diffuse Licht für die Kugeln sehr unstetig. Also man sieht ja da Schattierungen...
Das liegt daran, dass die Szene voxelisiert wird. Bei den Kugeln ist das in dem Bild gut erkennbar. Die Wände sind in dem Fall genau am Voxelgrid ausgerichtet, aus diesem Grund sind die Voxel dort nicht einzeln erkennbar. Die Technik ist übrigens nichts besonders neues, im Grund ist es genau das selbe wie Sparse Voxel GI (Voxel Cone Tracing) von Cyril Crassin aus dem Jahr 2011. Die Technik hatte einen Aufschwung, nachdem Epic SVOGI in einer frühen Preview zur Unreal Engine 4 implementiert hatte (featured in der Elemental Demo) und bekommst gerade wieder einen Aufschwung mit NVIDIAs Bemühungen ihre neue Grafikkartengeneration zu pushen.

GTC12 - Voxel Cone Tracing
Interactive Indirect Illumination Using Voxel Cone Tracing
GI Voxels
The Technology Behind the Elemental Demo
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: VXGI

Beitrag von Zudomon »

Danke für die Links, ich schaue sie mir gleich an.
Aber ich glaube, das was ich meine ist nicht richtig raus gekommen...
Das es Voxelisiert ist, weiß ich ja, und selbst an den Wänden sieht man die Voxel, aber mir ist nicht klar, warum die Voxel der Kugel so unterschiedliche Intensität haben. Wenn sie einfach nur das diffuse Licht darstellen würden, müsste die Oberfläche je nach Normale schattiert sein. Hier sieht es so aus, als ob vielleicht noch die irgendein Wert hinein mulitpliziert wird.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: VXGI

Beitrag von xq »

Ich glaube auf dem Screenshot sieht man einfach einem Untersampling/Aliasing der Szene aus:
http://de.wikipedia.org/wiki/Alias-Effe ... as-Effekts
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
David_pb
Beiträge: 18
Registriert: 23.07.2014, 20:50

Re: VXGI

Beitrag von David_pb »

Hi Zudomon,

du hast recht. Ich schätze mal da wird nicht nur die direkte Beleuchtung dargestellt, sondern auch die "Voxel-Opacity", also quasi der Prozentteil am "freiem Raum" in einem Voxel. Bin mir nicht zu 100% sicher, würde für mich aber Sinn ergeben.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: VXGI

Beitrag von Zudomon »

Ja du hast recht! Ich hatte gestern mit jemandem darüber geschrieben und der meinte, dass da die Opacitymap mit der Diffusen Beleuchtung verrechnet wird. Weil sonst an der Stelle zuviel Licht emmitiert würde. Ich dachte ja eigentlich das die Opacitymap für Strahlensichtbarkeit genutzt wird, aber es ist wohl eher so, dass man bei dem ersten Kontakt mit einem Voxel, der Solide ist, abgebrochen wird. Das macht auf jeden Fall mehr Sinn.

Nun ich weiß nicht, ob ich mich der Technik mal annehmen sollte... mir wäre noch gar nicht klar, wie man Voxel aus der Geometrie berechnet.
http://on-demand.gputechconf.com/gtc/20 ... nation.pdf
Laut dem Paper suchen sie sich wohl die dominante Axis raus und bauen daraus dann einen Voxel... wichtig wäre für mich, dass das ganze mit DX9 schaffbar ist.
Naja, ich habe zwar in einem der vorherigen Posts erwähnt, dass das alles nicht so schwer zu sein scheint... aber natürlich hab ich das wieder mal unterschätzt. Bzw. ist die Aussage dann auf das theoretische Prinzip bezogen. Aber der Teufel steckt ja wie immer im Detail ;)
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: VXGI

Beitrag von Spiele Programmierer »

Ich glaube nicht, dass sich das mit Dx9 effizient umsetzen lässt.

An deiner Stelle würde ich aber mal auf Dx11 migrieren, denn XP ist bald kein Argument mehr.
Noch weniger für dein Spiel und deine Zielgruppe. Ich denke, der Aufwand zahlt sich am Ende aus.
Du nutzt ja auch schon überall Shader. Normalerweise wäre das vermutlich noch mit das größte Problem.

Der Effekt von GI ist auf jeden Fall phänomenal und würde wahrscheinlich sehr gut in dein Spiel passen.
Möglicherweise kannst du auch die bestehenden Voxel-Daten wiederverwenden? Es ist natürlich nur eine miese Approximation,
aber es könnte bereits ordentlich viel bringen und ich zweifle ehrlich gesagt ohnehin ein wenig an der Umsetzbarkeit in der Praxis auf offenen Terrain.
David_pb
Beiträge: 18
Registriert: 23.07.2014, 20:50

Re: VXGI

Beitrag von David_pb »

Spiele Programmierer hat geschrieben:Es ist natürlich nur eine miese Approximation,
aber es könnte bereits ordentlich viel bringen und ich zweifle ehrlich gesagt ohnehin ein wenig an der Umsetzbarkeit in der Praxis auf offenen Terrain.
Q-Games scheinen eine VoxelGI in The Tomorrow Children zu verwenden. Deren Ansatz ist es statt sparse voxel octrees, cascaded volume textures zu verwenden. So wie's aussieht, scheint deren Ansatz auch für ein 'echtes' Spiel zu funktionieren. Ich denke das könnte ganz gut auf ein offenes Terrain angewendet werden. Ab einer gewissen Distanz braucht man vermutlich kein bouncelight mehr, oder nimmt einen günstigen Fallback. Die Kaskaden fürs lodding + Update über n Frames verteilt; das könnte man sich schon vorstellen, schätze ich.
Antworten