[Projekt] GPU Pathtracer
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.
Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.
This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.
Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.
This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
[Projekt] GPU Pathtracer
Hi,
ich wollte euch meinen GPU Pathtracer vorstellen.
Das ganze ist aber leider nur Fladshading und die Szene ist auf ein 151 Dreiecks Stanfordbunny begrenzt. ;)
Außerdem fehlen da Optimierungen. ( Octree usw. )
Das ganze benötigt PixelShader 3.0
Für ein rauschfreies Bild braucht es etwa eine Minute... aktzeptable Ergebnisse hat man aber schon nach wenigen Sekunden. Es wird adaptiv gerendert. :D
Hier noch das Programm zum selber testen... die Steuerung ist etwas hackelig... bestimmt weil das GPU limitiert sein dürfte... krass ist, dass der pro Pixel mit 153 Dreiecke einen Schnitttest durchführt.
Zum bewegen WASD wie gewohnt, mit Rechtsklick kann man die Kamerablickrichtung bewegen... alles nur provisorisch...
Gruß
Zudo
ich wollte euch meinen GPU Pathtracer vorstellen.
Das ganze ist aber leider nur Fladshading und die Szene ist auf ein 151 Dreiecks Stanfordbunny begrenzt. ;)
Außerdem fehlen da Optimierungen. ( Octree usw. )
Das ganze benötigt PixelShader 3.0
Für ein rauschfreies Bild braucht es etwa eine Minute... aktzeptable Ergebnisse hat man aber schon nach wenigen Sekunden. Es wird adaptiv gerendert. :D
Hier noch das Programm zum selber testen... die Steuerung ist etwas hackelig... bestimmt weil das GPU limitiert sein dürfte... krass ist, dass der pro Pixel mit 153 Dreiecke einen Schnitttest durchführt.
Zum bewegen WASD wie gewohnt, mit Rechtsklick kann man die Kamerablickrichtung bewegen... alles nur provisorisch...
Gruß
Zudo
- Lord Delvin
- Establishment
- Beiträge: 597
- Registriert: 05.07.2003, 11:17
Re: [Projekt] GPU Pathtracer
Da kanns einer einfach nicht lassen:D
Sehr nett.
EDIT: wie schwer wärs die Dreiecke durch splines zu ersetzen?
Sehr nett.
EDIT: wie schwer wärs die Dreiecke durch splines zu ersetzen?
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Der Hase hatte auf meinem Arbeitsrechner (NVidia Quadro NVS290) ein komplett schwarzes Dreieck links unten am Fuß. Hat ansonsten aber aus dem Stand funktioniert und irgendwie find ich das Prinzip faszinierend :-) Gute Arbeit!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- kimmi
- Moderator
- Beiträge: 1405
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Man sollte vorsichtig sein, wenn die GPU keine Pixelshader 3.0 unterstützt. Mich hat es die komplette Kiste im Büro abrauchen lassen. Ist alles praktisch eingefroren gewesen. nur ein Neustart hat geholfen. Aber die Bilder lassen schickes erahnen :).
Gruß Kimmi
Gruß Kimmi
Re: [Projekt] GPU Pathtracer
Lord Delvin hat geschrieben:Da kanns einer einfach nicht lassen:D
Sehr nett.
Danke :DSchrompf hat geschrieben:Hat ansonsten aber aus dem Stand funktioniert und irgendwie find ich das Prinzip faszinierend Gute Arbeit!
Ich habe bisher immer gedacht, dass Raytracing nicht wirklich so eine große Zukunft hat. Aber bei dem Pathtracing bin ich mir nicht mehr so sicher. Weil wenn das einigermaßen in Echtzeit läuft, dann ist das schon wesentlich besser als normales Rasterizieren. Das Prinzip ist extrem einfach, nicht zu vergleichen mit Shadowmaptricksereien oder so. Man bekommt so ziemlich alle Effekte umsonst: Global Illumination, Lightbleeding, sogar Caustics. Und wenn man bedenkt, wie langsam eine gerenderte Szene wird, wenn man einfach mal ein paar 1024² Shadowmaps generiert und bei jedem Frame aktualisiert.
Weil ich den einfach mit meinem Simplifier Modifier hab runterrechnen lassen. Der ist sowieso noch etwas buggy.Schrompf hat geschrieben:Der Hase hatte auf meinem Arbeitsrechner (NVidia Quadro NVS290) ein komplett schwarzes Dreieck links unten am Fuß
Tja, gute Frage. Ich wüsste das nicht so schnell einzubauen. Du musst bedenken, dass das alles im Pixelshader gemacht werden muss. Da gibs noch nichtmals Rekursion.Lord Delvin hat geschrieben:EDIT: wie schwer wärs die Dreiecke durch splines zu ersetzen?
Ja, tut mir leid... ich hab das natürlich sonst niergendwo getestet... außerdem war das mal ein Spassprojekt für 2 Tage. Da werden weder Caps geprüft, noch sonst irgendwas... also probieren auf eigene Gefahrkimmi hat geschrieben:Mich hat es die komplette Kiste im Büro abrauchen lassen. Ist alles praktisch eingefroren gewesen. nur ein Neustart hat geholfen.
- Brainsmith
- Establishment
- Beiträge: 109
- Registriert: 04.09.2009, 13:52
- Echter Name: Fabbo
Re: [Projekt] GPU Pathtracer
Entschuldigt bitte meine Unwissenheit, aber was ist Pathtracing?? Und was genau macht das Programm??
:D
:D
- kimmi
- Moderator
- Beiträge: 1405
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Wenn du die Tests aus Spass noch einbaust, sag ich auch, daß es mir gefällt ;).
Gruß Kimmi
Gruß Kimmi
Re: [Projekt] GPU Pathtracer
Pathtracing ist eine Erweiterung zum Raytracen. Man versucht, die allgemeine Rendergleichung zu lösen. Ganz genau kann ich das nicht erklären, aber für mich besagt diese, dass die Beleuchtung eines Punktes dem entspricht, was über die Halbkugel der Normale an Licht einstrahlt. Zum Pathtracing findet man viel im Netz.Brainsmith hat geschrieben:Entschuldigt bitte meine Unwissenheit, aber was ist Pathtracing?? Und was genau macht das Programm??
:D
Das Programm setzt das nun um. Ich weiß, ist jetzt keine Erklärung, was genau das Programm macht, aber ich weiß nicht, was ich dir sonst darauf antworten soll. Statt normal ein Bild zu rendern, werden 2 Dreiecke fullscreen gerendert und was auf den Dreiecken drauf gemalt wird ist dann das gepathtracete Bild.
Ich glaube, den Spass werd ich mir nicht mehr geben. Sonst muss ich mich ja bald auch Krishty anschließen und in den Jammerthread. Das es dir gefällt deute ich einfach mal aus dem letzten Satz deines ersten Posts ;)kimmi hat geschrieben:Wenn du die Tests aus Spass noch einbaust, sag ich auch, daß es mir gefällt .
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Du alter Grafikvagabund …
… das sind einerseits zu abgedroschene Spielereien, um nicht den Kopf drüber zu schütteln. Andererseits sehen sie aber auch immer zu gut aus, um sie nicht zu bewundern.
… das sind einerseits zu abgedroschene Spielereien, um nicht den Kopf drüber zu schütteln. Andererseits sehen sie aber auch immer zu gut aus, um sie nicht zu bewundern.
Re: [Projekt] GPU Pathtracer
Da ich mittlerweile bei dem Rasterizing ganz klar meine Grenze sehe und keine Lust mehr habe, mir da sonst was zu überlegen, um z.B. Shadowmapping stabiler zu bekommen oder Transparenzen zu erzeugen, wollte ich mich abermals dem Pathtracing zu wenden.
Letztendlich wird es früher oder später sowieso auf eine solche Technik hinaus laufen, also warum dann nicht jetzt schon damit beschäftigen.
Außerdem reizt mich das Thema echt sehr und das schon seit langem!
Somit habe ich dieses alte Projekt wieder rausgekramt, ich hatte es zwischendurch schon einige Male erweitert.
Das ganze läuft immer noch über PixelShader 3.0
Die dargestellte Szene hat mittlerweile 172k Dreiecke.
Verschiedene Texturen und sogar Alphatesting sind bisher möglich.
Da es sich um reines Pathtracing handelt ist es zur Zeit am schnellsten, wenn es eine große Lichtquelle gibt, in dem Fall der Himmel. Da kann man dann auch mit einem vernünftigen Bild (in der bescheidenen Auflösung von 512x512) in 1-3 Sekunden rechnen. Wobei ich bei dem Bild mit dem Glasdrachen etwa 5 Sekunden spendiert habe. :D
Letztendlich wird es früher oder später sowieso auf eine solche Technik hinaus laufen, also warum dann nicht jetzt schon damit beschäftigen.
Außerdem reizt mich das Thema echt sehr und das schon seit langem!
Somit habe ich dieses alte Projekt wieder rausgekramt, ich hatte es zwischendurch schon einige Male erweitert.
Das ganze läuft immer noch über PixelShader 3.0
Die dargestellte Szene hat mittlerweile 172k Dreiecke.
Verschiedene Texturen und sogar Alphatesting sind bisher möglich.
Da es sich um reines Pathtracing handelt ist es zur Zeit am schnellsten, wenn es eine große Lichtquelle gibt, in dem Fall der Himmel. Da kann man dann auch mit einem vernünftigen Bild (in der bescheidenen Auflösung von 512x512) in 1-3 Sekunden rechnen. Wobei ich bei dem Bild mit dem Glasdrachen etwa 5 Sekunden spendiert habe. :D
Re: [Projekt] GPU Pathtracer
Der Glasdrache sieht ja richtig geil aus :O
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Der Glasdrache ist echt fett. Auch sonst ist das ein geiles Nerd-Hobby. Nur was Dir das bringen soll, wenn Du keine Lust mehr auf Dreiecke hast, verstehe ich nicht :-)
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: [Projekt] GPU Pathtracer
Nicht auf Dreiecke habe ich keine Lust mehr, sondern auf diese ganzen Tricksereien um es halbwegs gut aussehen zu lassen... also Schatten / Spiegelungen / Lichtbrechungen / Indirektes Licht / Kaustiken... jedes Thema an sich bringt schon ein ganzes Studium mit sich. Beim Pathtracing hat man das alles mehr oder weniger automatisch. Man muss dann eben an anderen Stelle optimieren.Schrompf hat geschrieben:Nur was Dir das bringen soll, wenn Du keine Lust mehr auf Dreiecke hast, verstehe ich nicht :-)
Aber ja, beim Raytracing bin ich dann natürlich nicht mehr nur auf Dreiecke beschränkt.
Ich würde auch nicht von vornherein sagen, dass Pathtracing wirklich langsamer ist, denn wenn man ähnliche Ergebnisse mit Rasterizing erzeugen will, dann wird es einen Punkt geben, wo dieses langsamer ist. Denn Area-Lights und indirektes Licht sind auch da nicht gratis. Und Spiegelungen / Lichtbrechungen erfordern eine extrem durchdachte Renderpipeline. Wobei auch da sehr massive Grenzen existieren. Da habe ich einfach das Gefühl mit dem Pathtracing wesentlich weiter zu kommen.
Re: [Projekt] GPU Pathtracer
Heisst konkret: Du stellst StoneQuest auf Pathtracing um?
Re: [Projekt] GPU Pathtracer
Hm, ich halte einen Umstieg für nicht sehr sinnvoll. Ich habe neulich erst in einem Talk über nVidia Optix (was du dir vermutlich ansehen solltest) gehört, dass es ein weit verbreiteter Irrglaube ist, Raytracing sei vom Algorithmus her einfacher / eleganter als Rasterisierung. Für simple Implementierungen stimmt das zwar, aber sobald man es richtig schnell haben will und richtig schicke Dinge einbauen will, muss man auch so krude Optimierungen vornehmen, dass von der Eleganz rein gar nichts mehr übrig bleibt. Sprich, genau der Grund aus dem du dahin wechseln möchtest (elegante Algorithmen), wird bei Pathtracing genauso wenig erfüllt. Du wirst genauso bei irgendwelchen Tricksereien laden, um es halbwegs gut aussehen zu lassen, versprochen.
Ich meine, all die Probleme wurden ja schon gelöst. Man findet in der Literatur gute Anleitungen, wie man schöne Schatten erzeugen kann. Natürlich ist es Arbeit, wenn es state-of-the-art sein soll, aber das ist es halt immer. Und es gibt quasi keine geraytracten Spiele, und der Grund dafür wird sein, dass es zuweilen noch nicht taugt. Man hat vor 10 Jahren schon gesagt, Raytracing wird die Zukunft sein, und man wird das aller Voraussicht nach auch in 10 Jahren noch so sagen. Im Offlinerendering kann man damit höchst Erstaunliches erzeugen, aber in Echtzeitanwendungen ist ein bisschen Getrickst plus echt hübsche Assets von nem guten Grafiker das was es gut aussehen und schnell laufen lässt.
ich will gar nicht gegen Pathtracing reden, das ist toll und faszinierend und es macht Spaß, damit zu spielen. Aber vergiss den Gedanken, du könntest StoneQuest irgendwie auf Raytracing umstellen und damit Erfolg haben.
Ich meine, all die Probleme wurden ja schon gelöst. Man findet in der Literatur gute Anleitungen, wie man schöne Schatten erzeugen kann. Natürlich ist es Arbeit, wenn es state-of-the-art sein soll, aber das ist es halt immer. Und es gibt quasi keine geraytracten Spiele, und der Grund dafür wird sein, dass es zuweilen noch nicht taugt. Man hat vor 10 Jahren schon gesagt, Raytracing wird die Zukunft sein, und man wird das aller Voraussicht nach auch in 10 Jahren noch so sagen. Im Offlinerendering kann man damit höchst Erstaunliches erzeugen, aber in Echtzeitanwendungen ist ein bisschen Getrickst plus echt hübsche Assets von nem guten Grafiker das was es gut aussehen und schnell laufen lässt.
ich will gar nicht gegen Pathtracing reden, das ist toll und faszinierend und es macht Spaß, damit zu spielen. Aber vergiss den Gedanken, du könntest StoneQuest irgendwie auf Raytracing umstellen und damit Erfolg haben.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Davon kann Cat dir ein Lied singen … Katzenjammer quasi. Beides konvergiert zu einem gemeinsamen Optimimum, sagte er, IIRC.Jonathan hat geschrieben:Ich habe neulich erst in einem Talk über nVidia Optix (was du dir vermutlich ansehen solltest) gehört, dass es ein weit verbreiteter Irrglaube ist, Raytracing sei vom Algorithmus her einfacher / eleganter als Rasterisierung. Für simple Implementierungen stimmt das zwar, aber sobald man es richtig schnell haben will und richtig schicke Dinge einbauen will, muss man auch so krude Optimierungen vornehmen, dass von der Eleganz rein gar nichts mehr übrig bleibt.
Re: [Projekt] GPU Pathtracer
Aber die Bilder sehen ansich echt schick aus. Die Beleuchtung ist zwar unglaublich diffuse, aber dafür sehen die Bilder wirklich rauschfrei aus. magst du ein bisschen detaillierter erklären, wie das gerendert ist (im Sinne von: Wie viele Strahlen; usw.)?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: [Projekt] GPU Pathtracer
Das kann ich gar nicht so genau... weil das ja iterativ ist und auch nicht gleichverteilt im Bild.Jonathan hat geschrieben:Wie viele Strahlen; usw.
Es funktioniert auch nur so "schnell", weil eben ein großer Himmel die Strahlen direkt schluckt und als Lichtquelle dient. Ist die Lichtquelle klein, hab ich nach Minuten noch kein vernünftiges Ergebnis. Aber vielleicht hilft mir dann bidrektionales path tracing weiter... aber erstmal verstehen.
Hier sieht man, was ich meine:
Skybox als Himmel: Lichtquelle:
Das obere ist nach wenigen Sekunden ziemlich perfekt während das untere noch nach Minuten Bandings hat. Rauschen statt Bandings wären vielleicht besser, aber ich glaube, wesentlich ungünstiger, da es ja darum geht, das möglichst viele Pixel den gleichen Flow-Control Pfad einschlagen.
Zuletzt geändert von Zudomon am 29.06.2016, 05:28, insgesamt 2-mal geändert.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Bilder vertauscht?
Re: [Projekt] GPU Pathtracer
Wenn du keine 60 fps hinbekommst ist es vermutlich sowieso unnütz, oder irr ich mich?
Ich hab vor jahren mal ein javascript raytracing experiment gemacht, mit ganz simpler geometrie... hab mich gewundert wie schnell ich das hinbekomme. ich wollte es eben verlinken, aber hab den server gar nimmer :P ... egal
Ich hab vor jahren mal ein javascript raytracing experiment gemacht, mit ganz simpler geometrie... hab mich gewundert wie schnell ich das hinbekomme. ich wollte es eben verlinken, aber hab den server gar nimmer :P ... egal
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] GPU Pathtracer
Stimmt! Sorry, habs korrigiert! :DKrishty hat geschrieben:Bilder vertauscht?
Ich bin mir da absolut unschlüssig... brigade zeigt, dass man damit auf jeden Fall schon abgehen kann.marcgfx hat geschrieben:Wenn du keine 60 fps hinbekommst ist es vermutlich sowieso unnütz, oder irr ich mich?
Ich hab vor jahren mal ein javascript raytracing experiment gemacht, mit ganz simpler geometrie... hab mich gewundert wie schnell ich das hinbekomme. ich wollte es eben verlinken, aber hab den server gar nimmer :P ... egal
Das Problem ist eben, wenn man ne Menge Shadowmaps hat, sich um Ambient Occlusion kümmert, SSAO, Reflektionen (planar bzw. cubes) einbaut, vielleicht noch so ein paar Tricks, damit es besser aussieht, vielleicht noch screen space reflektions, ein paar Renderpipeline Tricks, damit man transparentes und Lichtbrechungen rendern kann (was aber sicherlich Sonderfälle in Bezug auf das rendering), vielleicht dann noch indirekte Beleuchtung, dann wird es ganz schnell auch mit Rasterizing ziemlich langsam. Und ich vermute ja mal, dass es irgendwo einen Breakeven Punkt gibt, wo man mit Pathtracing einfach besser hinkommt.
Ich muss einfach mal schauen, wie weit man damit kommt wenn man sich noch ein paar mehr Optimierungen einfallen lässt...
Re: [Projekt] GPU Pathtracer
Hmm... wenn die Lichtquelle direkt gesampelt wird, dann ist das schon ganz schön krass!
Auf dem Bild mit dem Kristall sah man ja gut, wie schlecht das ganze selbst nach Minuten aussieht.
Nun hab ich hier ein Bild, Renderzeit 5,3 sek auf 1024² :D Hier noch eine komplexere Szene mit etwas über 630k Dreiecke, 1024², Renderzeit 21,3 sek
Auf dem Bild mit dem Kristall sah man ja gut, wie schlecht das ganze selbst nach Minuten aussieht.
Nun hab ich hier ein Bild, Renderzeit 5,3 sek auf 1024² :D Hier noch eine komplexere Szene mit etwas über 630k Dreiecke, 1024², Renderzeit 21,3 sek
Re: [Projekt] GPU Pathtracer
Tja, irgendwie hatte ich da noch ein Fehler bei der diffuse Lichtübertragung. Das blöde ist, dass mir solche Fehler kaum auffallen. Aber nun scheint es richtig zu sein. Habe auch mal den hochaufgelösten Drachen genommen.
Etwa 5 Sekunden bei 512²
Und hier nochmal direkt aus StoneQuest, auf Ultra, was etwa 250 mal schneller rendert (20 ms) aber damit man besser Vergleichen kann ohne Normalmapping
Irgendwie sieht das schon recht ähnlich aus... naja. Hätte gedacht, der Unterschied wäre nun doch etwas größer qualitativ.
Etwa 5 Sekunden bei 512²
Und hier nochmal direkt aus StoneQuest, auf Ultra, was etwa 250 mal schneller rendert (20 ms) aber damit man besser Vergleichen kann ohne Normalmapping
Irgendwie sieht das schon recht ähnlich aus... naja. Hätte gedacht, der Unterschied wäre nun doch etwas größer qualitativ.
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [Projekt] GPU Pathtracer
Ich find's halt als Nerdhobby sehr geil. Für den Wirkungseinsatz in nem Spiel dagegen - ich glaube, Raytracing ist der Fusionsreaktor der Echtzeitgrafik. Aller 10 Jahre heißt es "noch 10 Jahre". Und da die Hardwareentwicklung aufgrund physikalischer Grenzen so langsam in die Sättigung geht, wird die aktuelle Prognose eher "noch 20 Jahre" lauten.
Optische Unterschiede: schau ins Dunkle. Mit nem Path Tracer kriegst Du die ganzen indirekten Lichtanteile geschenkt. Die obere Mundhöhle des Drachen z.B. zeigt das ganz gut. Da kann Path Tracing glänzen. Bereiche im Sonnenlicht dagegen werden von energetisch von einer einzelnen Komponente dominiert, und die nichtlineare Wahrnehmung des Auges sorgt halt dafür, dass man dann praktisch nur die sieht. Und diese Bereiche sind leider nach wirklich *jedem* Maßstab besser mit Rasterizing umzusetzen - Raytracing wird da prinzipiell immer abstinken.
Optische Unterschiede: schau ins Dunkle. Mit nem Path Tracer kriegst Du die ganzen indirekten Lichtanteile geschenkt. Die obere Mundhöhle des Drachen z.B. zeigt das ganz gut. Da kann Path Tracing glänzen. Bereiche im Sonnenlicht dagegen werden von energetisch von einer einzelnen Komponente dominiert, und die nichtlineare Wahrnehmung des Auges sorgt halt dafür, dass man dann praktisch nur die sieht. Und diese Bereiche sind leider nach wirklich *jedem* Maßstab besser mit Rasterizing umzusetzen - Raytracing wird da prinzipiell immer abstinken.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: [Projekt] GPU Pathtracer
Ich finde den Unterschied im Standbild merklich. In Bewegung und im Spiel wird es wahrscheinlich weniger auffällig sein. Das Pathtracing um Factor 250 schneller machen dürfte ganz schön schwer werden. Ich warte immer noch auf ein eigentliches Spiel :P
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] GPU Pathtracer
Kriegst du es hin, die Szene mit den exakt gleichen Kamerawerten zu rendern? Zu dass man im Grunde eine Pixelgenaue Übereinstimmung hat?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: [Projekt] GPU Pathtracer
Blöderweise wohl erstmal nicht ohne da auch Arbeit zu investieren.Jonathan hat geschrieben:Kriegst du es hin, die Szene mit den exakt gleichen Kamerawerten zu rendern? Zu dass man im Grunde eine Pixelgenaue Übereinstimmung hat?
Re: [Projekt] GPU Pathtracer
Ich halte das Ganze nicht für unnütz, denn selbst wenn ein reiner Pathtracer am Ende nicht Echtzeittauglich ist, so kann man sicher Elemente daraus auch für normales Rasterizing verwenden.marcgfx hat geschrieben:Wenn du keine 60 fps hinbekommst ist es vermutlich sowieso unnütz, oder irr ich mich?
Hier noch ein paar 512² Bilder mit der 172k Szene und einer Punktlichtquelle... :D
3,5 Sekunden: 4,4 Sekunden:
3,5 Sekunden:
Re: [Projekt] GPU Pathtracer
Ich habe mir mal ein Objekt zum testen von TurboSquid geholt...
http://www.turbosquid.com/FullPreview/I ... /ID/929456
512x512
Renderzeit 31 Sekunden
Am Regal rechts oben sieht man gut, wie Licht auch zurück geworfen wird.
Was man meiner Meinung nach auch sehr wichtig ist, aber durch heutige Licht Indirektionsverfahren (da meist grob Voxelbasiert) fehlt, sind die scharfen indirekten Schatten, die man gut unter den Stuhlbeinen sieht.
Ganz schwach sind noch Bandings zu sehen im Bild, es hätte ruhig noch länger rendern können.
Aber die Frage ist nun, wie bekommt man das nun in auf Echtzeit?! :D
Ich denke mal, das es letztendlich auf ein Hybrid hinausläuft.
Das direkte Licht berechnet sehr schnell, das indirekte braucht auch nicht so lange, wenn die Flächen nicht weiß sind, da durch die Texturen das Licht schnell an Energie verliert.
EDIT: Bei Interesse kann ich gerne mehr Screens machen, auch in höherer Auflösung. Weiß halt nie, ob es interessant genug ist.
http://www.turbosquid.com/FullPreview/I ... /ID/929456
512x512
Renderzeit 31 Sekunden
Am Regal rechts oben sieht man gut, wie Licht auch zurück geworfen wird.
Was man meiner Meinung nach auch sehr wichtig ist, aber durch heutige Licht Indirektionsverfahren (da meist grob Voxelbasiert) fehlt, sind die scharfen indirekten Schatten, die man gut unter den Stuhlbeinen sieht.
Ganz schwach sind noch Bandings zu sehen im Bild, es hätte ruhig noch länger rendern können.
Aber die Frage ist nun, wie bekommt man das nun in auf Echtzeit?! :D
Ich denke mal, das es letztendlich auf ein Hybrid hinausläuft.
Das direkte Licht berechnet sehr schnell, das indirekte braucht auch nicht so lange, wenn die Flächen nicht weiß sind, da durch die Texturen das Licht schnell an Energie verliert.
EDIT: Bei Interesse kann ich gerne mehr Screens machen, auch in höherer Auflösung. Weiß halt nie, ob es interessant genug ist.
Zuletzt geändert von Zudomon am 02.07.2016, 13:29, insgesamt 1-mal geändert.
Re: [Projekt] GPU Pathtracer
Oh nein... bei meiner ganzen Optimiererei hab ich gerade festgestellt, dass das Mitteln der Pixel verbuggt ist... damit ist das Ergebnis allerdings komplett falsch... :D