physically based rendering

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Mirror
Establishment
Beiträge: 248
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

physically based rendering

Beitrag von Mirror »

Ich habe eine Frage zu physically based rendering. Mir gefallen Spiele nicht die zu realistisch sind. Wie das aktuelle Tombraider. Ich finde eine Spiel sollte etwas "bunter" sein.

Hier meine Frage: Kann man mit einer pbr engine auch Spiele wie Trine, Pixark oder Worms Rumble von Style her machen. Also ist es von den Parametern her möglich. Ihr merkt sicher das ich nicht viel Ahnung von sowas habe.

Ich frage weil ich überlege eine solche engine zu schreiben, aber gleichzeitig den Look meiner alten und sehr viel einfacheren shader behalten möchte. Wie gesagt, ich kenne mich kaum aus.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: physically based rendering

Beitrag von Zudomon »

Ich denke schon, dass das geht, wenn man die Parameter entsprechend anpasst. Nur irgendwie fühlt sich das so an, als ob man auf eine komplexere Formel umsteigt, wo sich aber dann durch entsprechende Parameter der komplexere Teil wieder raus kürzt.
PBR ist ja meiner Meinung nach vor allem dazu da, um das Reflektionsverhalten der Materialien besser zu simulieren. Man braucht dafür mehr Parameter für die Texel (wenn man es auf Texelbasis änderbar haben möchte)... Metallness, Rauheit, Reflektionsstärke. Bei einem Zeichentricklook wären wahrscheinlich die Werte dafür entsprechend "kein Metall", "ganz Rauh (also Diffuse)" und "keine Reflektion".
Will man dann PBR maximal umsetzen, müsste man dann an jedem Pixel im Bild Zugriff auf einen Gradianten zwischen diffusem indirektem Licht bis hin zur perfekten Reflektion haben. Je nachdem wie das umgesetzt wird, ist das ziemlich viel Rechenaufwand, wenn es am Ende gar nicht benutzt wird, weil die Parameter es nicht benötigen. Also in dem genannten Beispiel würde pures indirektes Licht ausreichen, weil keine Reflektion benötigt wird.
Mirror
Establishment
Beiträge: 248
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: physically based rendering

Beitrag von Mirror »

Zudomon hat geschrieben:Ich denke schon, dass das geht, wenn man die Parameter entsprechend anpasst. Nur irgendwie fühlt sich das so an, als ob man auf eine komplexere Formel umsteigt, wo sich aber dann durch entsprechende Parameter der komplexere Teil wieder raus kürzt.
Genau das meinte ich. Ich mag den Zeichentrick-Look sehr, möchte aber auch für andere Sachen den Metall-Look als Option haben. Falls ich PBR mache kann ich ja als Option einbauen, ob es Spiegelungen habe soll oder nicht.

Danke für Deine schnelle und wie immer auch kompetente Antwort. Ob ich pbr mache steht aber noch nicht fest. Aber ich halte es mir als Option vor.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: physically based rendering

Beitrag von Zudomon »

Also wirklich kompetent bin ich auf dem Gebiet aber keineswegs. Ich habe mir PBR angeschaut und das versucht nachzubauen. Ohne Anspruch auf Vollständigkeit oder richtigen Umsetzung.
Wenn ich mich nicht täusche und das PBR letztendlich nur auf die Materialinterpretation hinausläuft, dann könnte man eigentlich auch das alte System, mit Specular einbauen und zusätzlich das PBR. Könnte aber auch sein, dass bei dem PBR auch gleichzeitig HDR und Tonemapping mit gemeint sind. Aber das ist ja eigentlich schon lange Standard.
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: physically based rendering

Beitrag von Schrompf »

Ich hab davon auch wenig Ahnung, aber ich vermute, dass der Shader für die sichtbaren Oberflächen nur ein Teil des Tricks ist. Der eigentliche Trick beim PBR ist die Energieerhaltung. Das betrifft zum Einen natürlich die Oberfläche: alles Licht, was reinkommt und nicht absorbiert wird, muss auch wieder rausgehen. Aber es betrifft auch den Austausch von Lichtenergie zwischen Oberflächen. Also eine Global Illumination-Tech, die Energie zwischen den Oberflächen vermittelt. Und ich überlege, dass Du an Deinem Shader nicht viel rütteln musst, wenn Du nur ne glaubwürdige GI hinbekommst.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: physically based rendering

Beitrag von Tiles »

Betrachtest du das grade aus der Perspektive der Engine Entwicklung, sprich willst du eine eigene Engine bauen, mit oder ohne PBR? Oder eher aus der Grafikerperspektive, was du für dein Game intern verwenden solltest?

PBR heisst einfach dass das Licht möglichst physikalisch korrekt berechnet wird. Damit lässt sich aber meiner Erfahrung nach immer noch so ziemlich jeder Look erstellen. Die grossen Engines wie Unity Unreal und Cry haben PBR schon seit Jahren drin. Und auch die 3D Programme haben lang umgestellt. Und damit lässt sich alles machen. Nicht nur ultrarealistische Games / ultrarealistischer Look. Und das eigentlich viel einfacher als zu den Zeiten vor PBR, weil man eben einfach die Physik das machen lassen kann was der Künstler vorher von Hand einstellen musste, und man mit zig unterschiedlichen Maptypen und Shadern hantieren musste um sein Ziel zu erreichen. Um zum Beispiel den Fresnel Effekt zu erzielen.

Die Maptypen heissen im PBR Workflow ein wenig anders. Was früher eine Texturemap war ist im PBR Workflow nun eine Albedomap. Und der grösste Unterschied ist dass das Ganze auf Metal und Roughness basiert, und nicht mehr auf Farbwerten.

Hier noch ein wenig Fachchinesisch aus der Grafikersicht:

https://viscircle.de/einsteigerguide-di ... d-shading/
https://viscircle.de/wie-sie-einen-eins ... br-finden/

Polycount hat da auch einen ganzen Sack voll Links zum Thema:
http://wiki.polycount.com/wiki/PBR

EDIT, nu is aber gut mit nacheditieren *sich selbst slap*
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Mirror
Establishment
Beiträge: 248
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: physically based rendering

Beitrag von Mirror »

Also vielen Dank für die inzwischen vielen kompetenten Antworten. Ich frage weil ich auch mal ein Spiel machen möchte. Gleichzeitig möchte ich mir aber alle Optionen offen halten. Ich habe noch nicht wirklich viele Shader geschrieben. Die shader sollen sowohl für ein Voxelspiel als auch für Editoren geeignet sein und wenn ich schon umschreiben oder neu schreiben will, dann wollte ich vielleicht auf etwas "richtiges" umstellen.

@Schrompf
Du hast natürlich recht für die meisten Sachen reicht es sicher aus eine gute GI hinzubekommen und für ein Voxelspiel reicht das sicher aus und ich müsste nicht allzuviel umschreiben.

@Tiles
Danke für den Link. Du kennst dich sicher auch sehr gut damit aus ( BForArtists / Blender ). Deine Antwort hilft mir am meisten. Ich werde wohl auf pbr umstellen.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: physically based rendering

Beitrag von Tiles »

Gute Entscheidung. Das macht deine Art Pipeline imho einfacher. PBR ist inzwischen einfach Standard :)

Auskennen ist vielleicht zu viel gesagt. Da gehts mit wie meinen Mitrednern hier. Man arbeitet damit, aber gross nachdenken tut da keiner drüber. Das war am Anfang wo das neu aufkam mal kurz ein Thema. Da hat sich dann auf Polycount die ganze Linksammlung angesammelt. Auf Polycount treiben sich viele Game Asset Artists rum. Musste aber auch erst mal wieder recherchieren ^^

In Blender/Bforartists ist der Principled Shader inzwischen schon lang Default. Und der ist für PBR. Ich kenne halt noch den Grafiker Workflow bevor es PBR gab. Da hast du dir manchmal echt einen abgebrochen um dein Ziel zu erreichen.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: physically based rendering

Beitrag von Jonathan »

Ein wesentlicher Vorteil von PBR ist auch, dass man direkt mit physikalischen Größen rechnet. Will man beispielsweise einen Raum beleuchten, muss man sich überlegen, wie stark die Beleuchtung sein soll. Hat die Lichtquelle Stärke 1? Oder vielleicht 10? Oder 100? Ist nicht definiert, man spielt so lange daran herum, bis es passt. Mit PBR hingegen kann man sagen, dass man eine Standard 60W Glühbirne benutzt, und der Raum sieht gut aus. Für Außenszenen benutzt man entsprechend die Stärke der Sonne und schon hat man den korrekten Helligkeitsunterschied zwischen drinnen und draußen.
Was dir damit nicht mehr passieren kann ist, dass man eine Szene baut, ein paar Objekte in sie setzt, merkt, dass es irgendwie falsch aussieht und dann z.B. die Lichtfarbe oder die Texturen anpasst, bis einem die Stimmung gefällt. Die selben Assets werden dann aber in einem anderen Raum komplett falsch aussehen. Mit PBR gibt es einen Standard der überall gilt. Ich importiere Assets aus einer anderen Engine, dort entspricht ein float Wert von 1.0 einem Albedo von 0.8? Prima, da auch meine Einheiten alle auf physikalischen Größen basieren kann ich mir einen Importer schreiben, der beim ersten Versuch alles korrekt konvertiert.

Künstlerische freiheitsgrade gibt es bei PBR immer noch. Aber der Artist ändert eben physikalische Größen anstatt irgendwelche Parameter ohne konkrete Definition anzupassen, bis es gut aussieht.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Mirror
Establishment
Beiträge: 248
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: physically based rendering

Beitrag von Mirror »

Jonathan hat geschrieben:Ein wesentlicher Vorteil von PBR ist auch, dass man direkt mit physikalischen Größen rechnet
Ich sehe da auch sehr große Vorteile. Mit physikalischen Größen kann ich umgehen. Ich habe gelesen, auch so wie Du es beschreibst, das es unter pbr immer gut aussieht. Man muß nicht so viel experimentieren. Da ich kaum modellieren kann wird es für mich genau das "Richtige" sein.

Danke an Dich und auch die anderen für die zahlreichen Antworten. Ihr habt mir echt geholfen. Nochmal zum Voxelspiel: Vllt wird es auch ein Voxeleditor. Ich habe da noch keine konkreten Vorstellungen und jetzt mit pbr werde ich erst mal beschäftigt sein.
Hat den StormWizard 1.0 und 2.0 verbrochen. http://www.mirrorcad.com
Antworten