Seite 1 von 1

VXGI

Verfasst: 17.04.2015, 18:41
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?

Re: VXGI

Verfasst: 17.04.2015, 21:54
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

Re: VXGI

Verfasst: 17.04.2015, 23:59
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.

Re: VXGI

Verfasst: 18.04.2015, 12:46
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

Re: VXGI

Verfasst: 20.04.2015, 08:50
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.

Re: VXGI

Verfasst: 20.04.2015, 09:43
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 ;)

Re: VXGI

Verfasst: 20.04.2015, 09:49
von David_pb

Re: VXGI

Verfasst: 20.04.2015, 13:16
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.

Re: VXGI

Verfasst: 20.04.2015, 14:27
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.