Fragen zu PBR

  • Ich hoffe, ich darf hier auch eine paar Fragen stellen:


    Blender kann kein PBR?


    Wann macht es Sinn PBR zu verwenden?
    Frisst das nicht unheimlich viel Performance?


    Mit meinem Baustellenenglisch werd ich da grad nicht wirklich schlau aus meinen Google-Research-Versuchen...


    Vielen Dank im Voraus!


    LG Sebastian

    • Offizieller Beitrag

    @Sebastian


    Ich hab aus deiner Frage ein eigenen Thema gemacht damit sich hier keine zwei Themen vermischen wäre ziemlich unfair gegenüber dem Thread Ersteller ihm den Thread zu kaper.


    Nun zu deinen Fragen:



    Blender kann kein PBR?


    1. Ob Blender PBR kann, kann ich dir leider nicht beantworten aber in den meisten fällen nimmt man eh ein externes texturierungs tool wie zb Substance oder Quixel oder auch Photoshop. Die Frage wo dir also eher stellen solltest wäre macht Blender für PBR Sinn oder lieber ein externes Tool ?




    Wann macht es Sinn PBR zu verwenden?


    2.PBR hat sich zwischenzeitlich zum Standard gemausert die fragen sollte eher lauten wann macht es Sinn kein PBR zu verwenden :)


    Vielleicht auch mal als Erklärung:
    Früher hat man Eine Textur durch die Diffuse, Normalmap, Specularmap Angezeigt.


    Mit PBR hat man angefangen Physikalische Eigenschaften von Oberflächen (Materals) eine Informationsmaps zu packen. Diese Maps heißen: Roughness, Metalllic und glossiness
    Mit der Roughness bestimmt wie wie Rau eine Oberfläche ist, eine sehr glatte Oberfläche spiegelt und eine Raue Oberfläche spiegelt nicht.


    Parkett Boden = Glatt und Spiegelt
    Stein = Rau und spiegelt nicht.


    Wie stark etwas spiegeln soll bestimmt du mit der Roughness bei einer Farbscala von Weiß zu Schwarz. Ist einer Roughness eher Weiß dann spiegelt sie Stark ist sie Grau spiegelt sie weniger und ist sie Schwarz dann spiegelt die gar nicht mehr.Innerhalb der Textur kann es Spiegelnde Bereiche geben oder auch weniger spiegelnde Bereiche.
    Roughness, Metallic oder glossiness sind also im Prinzip Tabellen in dehnen Informationen grafisch gespeichert werden. (WIe eine Blindenschrift)


    Die Engine kann diese Blindenschrift lesen und sie entsprechend umwandeln. Ob du die Blindenschrift nun in Blender oder in einer anderen Software erstellst spielt keine Rolle.


    Normalerworkflow: Colormap, Normalmap, Specularmap


    PBR Workflow: Colormap,Normalmap, Roughness, Metallic


    PBR kostet also nicht mehr Performance genauer gesagt kostet es gar keine Performance da alle Maps eh zu einem Material zusammengefasst werden und nur das Material Performance kostet und zwar gleichviel wie wenn du kein PBR verwenden würdest.



    Frisst das nicht unheimlich viel Performance?

    Nein eine Map mehr kostet keine Performance.


    EDIT.: Da waren zwei schneller wie ich :)

  • Vielen Dank an euch Drei!


    Also ich fang ja mit dem modellieren erst an. An die Blender GUI hab ich mich recht schnell gewöhnt, die hat mir beim Animieren eigentlich keine Probleme bereitet. Deshalb würde ich gerne bei Blender bleiben, zumindest mal vorerst.


    Frograx: Danke für das Angebot, darauf komme ich bei bedarf gerne zurück.


    Ich werd mich dann mal ins Texturieren mit Blender allgemein reinfuchsen.


    Nur noch eines: Wenn ich jetzt zB einen Container modelliere, dann muss ich mir nicht gleich sorgen ums PBR machen, sondern kann das nachträglich auch noch hineinarbeiten?


    Denn ich hab ja noch nicht wirklich einen "Stil" für mein Projekt. Jetzt dachte ich, erstmal nur den Container bemalen und Normalmap erstellen und dann seh ich weiter.


    Oder ist das eine extrem kontraproduktive erhangehensweise?


    Danke nochmal an Alle!


    LG Sebastian

    • Offizieller Beitrag

    Nur noch eines: Wenn ich jetzt zB einen Container modelliere, dann muss ich mir nicht gleich sorgen ums PBR machen, sondern kann das nachträglich auch noch hineinarbeiten?


    Denn ich hab ja noch nicht wirklich einen "Stil" für mein Projekt. Jetzt dachte ich, erstmal nur den Container bemalen und Normalmap erstellen und dann seh ich weiter.


    Oder ist das eine extrem kontraproduktive erhangehensweise?

    Du erstellt IMMER das Nackte Mesh und danach kommt die Textur. Im Vorfeld musst du dir um nichts Gedanken machen :) Erst beim UV Mapping...

  • Hi,

    PBR kostet also nicht mehr Performance genauer gesagt kostet es gar keine Performance da alle Maps eh zu einem Material zusammengefasst werden und nur das Material Performance kostet und zwar gleichviel wie wenn du kein PBR verwenden würdest.

    das kann man nicht so stehen lassen.


    Ein Shader ist am Ende ein Programm was auf der GPU ausgeführt wird. Um so komplexer um so mehr Zeit wird zur Ausführung benötigt.
    Ein PBR Shader ist sehr komplex, weil für den Metallic Workflow nur 4 Maps benötigt werden heißt ja nicht das er kaum Performance benötigt.
    Die eigentliche Magie läuft ja innerhalb des Shaders ab.


    Ja, ein PBR Shader kostet Performance. Und das nicht zu knapp gegenüber dem alten Standard Shader.


    Verzichten braucht man aber nicht darauf.
    Grafikkarten sind hoch optimiert auf das was Game Engines von ihnen wollen und das trifft ganz besonders Shader zu.


    Gruss
    DarkFaces

    • Offizieller Beitrag

    Was ist den an einem PBR Shader komplexer als bei einem Standard Shader ?
    Ein Standard Shader besteht aus Diffuse, Normal, Specular und vielleicht noch andere maps.
    Ein PBR Shader besteht aus Albedo, Normal und Roughness und zusätzlich noch die Metallic. +



    Die Roughness funktioniert fast genau gleich wie die Specularmap.


    Was verbraucht nun genau mehr Performance ? Also ich glaube schon das der PBR mehr Performance braucht aber das fällt sicherlich nicht sonderlich ins Gewicht.


    Die heutigen Shader auf Grafikkarten sind ja auch viel besser als die vor bei Paar Jahren.


    Ich stimmte dir zu das PBR Shader sicherlich nicht performanter sind als Normale Shader aber das PBR Shader Ressourcenfressend sind würde ich nicht unterschreiben.


    Finde das immer etwas unangepasst alles auf die Performance zu schieben sicherlich braucht es mehr Performance wen man ein Mesh mehr in der Szene läd aber das wäre so als wenn man sich Gedanken macht um wie viel der Meeresspiegel ansteigt wenn man ins Wasser springt.

  • Die Roughness funktioniert fast genau gleich wie die Specularmap.

    nö, die Roughness hängt mit der Metallic zusammen und arbeitet ganz anders. Die ganze Lichtberechnung ist viel komplexer.


    Warum glaubst du das man in aktuellen AAA Titel so starke Rechner braucht, vor allem starke GPUs mit vielen und schnellen Shader Einheiten?
    Bestimmt nicht wegen der paar zusätzlichen Vertex.


    Der normale Standard Shader hat ein paar Dutzend Codezeilen wenn es hoch kommt, ein guter PBR Shader gerne ein paar Hundert.
    Das gute Aussehen ist halt nicht zum Null Tarif zu haben, das kostet.


    Gruss
    DarkFaces

  • Hi,

    Ja, ein PBR Shader kostet Performance. Und das nicht zu knapp gegenüber dem alten Standard Shader.

    Diese Aussage haben die Pros von Polycount hier entkräftet:


    http://polycount.com/discussio…formance-and-pbr-textures


    Hab jetzt eine halbe Stunde verschiedene Artikel durcggelesen und habe nichts gefunden, was höhere Kosten von PBR bestätigen würde.


    Aber du darfst mich gern eines Besseren belehren. ;)


    Edit: Noch einer: http://www.gamersnexus.net/gg/…br-cryengine-star-citizen
    When speaking to the CryEngine team, we learned that there's almost no noticeable performance impact to the hardware. Scott Peter, an on-site engine programmer, explained that PBR produces a very realistic look with less effort (on behalf of the developers), but indicated that “the shader computations are not significantly different.”



    Damit kann ich wohl zu Recht behaupten dass dein Satz da oben Blödsinn ist. :P

  • Naja der Link zu PolyCount... Welche Pros? Im vorletzten Post steht das einzige interressante.
    Im zweiten Link steht nur eine Aussage, eine die das Gegenteil von mir behauptet und euch besser ins Konzept passt.


    Ich werde mich auch nicht weiter streiten aber man sollte sich mal klar machen was hier verglichen wird.


    Ein recht simpler Standard Shader wird mit einem High End Shader verglichen.
    Ein Shader der praktisch jedes bekannte Material realistisch und physikalisch korrekt wiedergeben kann und das bei beliebigen Lichtverhältnissen.


    Beim Standard Shader wird mit der Spec-Map genau festgelegt wie stark das Material das Licht reflektiert.
    Beim PBR Shader legst man nicht fest wie stark etwas reflektiert oder nicht, sondern es werden die Materialeigenschaften definiert, der Rest wird vom Shader übernommen. Das ist eine ganz andere Liga.


    Gruss
    DarkFaces

  • Vorweg: Eine Antwort ob PBR nun mehr Perfomance braucht oder nicht, will ich jetzt nicht geben. Ich möchte nur einen Unterschied etwas verdeutlichen.


    Was ich aus eigener Erfahrung (aus Programmierersicht) sagen kann ist, dass PBR-Berechnung im Vergleich zu "klassischen" Rendering komplexer ist. Allerdings bauen alle PBR's meines Wissens nach komplett auf Raytracing auf, während dies bei dem klassichen Rendering nicht der Fall ist.


    Wenn man einen "normalen" Raytracer mit einem für PBR vergleicht wird man eher eine Antwort treffen können, ob eins von beiden mehr Leistung braucht. Bei Blender wäre dies eine Scene die mit Cycles gerendert wird (ohne PBR-Aufbau) im Gegensatz zu einer mit PBR-Aufbau.


    Was man (meiner Meinung nach) aber festhalten kann, ist dass ein klassisches Shading-/Beleuchtungssystem (z.B. Phong) deutlich schneller ist, da diese nur wenige Rechenschritte beinhalten, während ein Raytracer deutlich umfangreicher ist.


    Ergänzung: Was am meisten Rechenleistung beim Rendering verbraucht sind nicht die Texturen (das sind einfache Texel, die in die Berechnung einfließen), sondern die Reflexionen ;)

  • Ja und warum ist das so Sleepy? Weil es nicht relevant ist. Mit aktueller Hardware so oder so nicht. Das versuchen wir doch die ganze Zeit zu erklären. Für jedes Fitzelchen Performance werden sonst Benchmarks aufgesetzt.
    Sogar SMARTPHONES können PBR... Deswegen fand ich diesen einen Satz von DarkFaces so unangebracht...


    Edit: Schöne Antwort @Mirac Auf so etwas kann man eine Diskussion aufbauen und vor allem kann man damit mal ein paar Recherchen machen.


    Ich selber wüsste es ja auch sehr gern und kann nur mit dem arbeiten, was ich irgendwo lese.

  • Nicht jeder Shader egal ob PBR oder nicht kostet gleich viel Performance.


    Die Anzahl der Instructions und texture samplers kann da zu teils drastischen Unterschieden führen, schon bei kleinen Änderungen.


    Wie Groß der Unterschied zwischen Standart und PBR Material bei gleicher komplexität ausfällt, ist sicherlich auch etwas von der Engine und deren Implementierung der Shader abhängig.


    Gut möglich das die Aussage über die CryEngine nicht 1:1 auf UE4 zutrifft.


    Außerdem kann das Ganze bei Verwendung verschiedener APIs (DX9,10,12, OpenGL, Vulkan) auch unterschiedlich ausfallen.


    Auf jeden Fall wiegt der Vorteil von PBR-Materialien für realistisches Rendering etweilige Performancenachteile locker auf.

  • Ja dann zeig doch jetzt mal endlich ein pasr Beweise. Berechnungen, Benchmarks.... irgendwas.

    Glaube nicht das es sowas gibt, wozu auch, der PBR Shader tut seine arbeit wie er soll und es wäre Zeitverschwendung.
    Eigentlich brauch man einen Benchmark nur um Leuten, die von etwas nicht so viel verstehen, Zahlen zu liefern damit sie Vergleichswerte haben.


    Um dir kurz zu erklären was da abläuft. Ein Shader ist ein kleines Programm das direkt auf der GPU läuft, mit vielen anderen Shadern parallel.
    Sind die Berechnungen abgeschlossen, kann das nächste Bild gerendert werden(wenn auch alle anderen durch sind, zB die Game Logik).
    Geschieht das 60 mal oder öfter in der Sekunde ist alles schick.


    Das der PBR Shader mehr Leistung verbraucht als der alte Standard Shader heißt ja nicht das er nix taugt. Das Game würde mit dem alten aber vielleicht doppelt so schnell laufen(wenn es nicht von anderen Teilen ausgebremst wird), aber auch nur halb so schön ausehen.


    Ich wollte nur richtigstellen das der PBR Shader auch mehr Leistung braucht.


    Beweise habe ich keine, brauche ich auch nicht weil mit etwas technischen Verstand sollte jedem klar sein das ein Shader dieser Qualität auch mehr Leistung braucht.



    Wenn selbst die Aussage eines Crytek Mitarbeiters für dich nix wert ist

    Was heißt nix wert. Genau genommen hat es hat es gar nix damit zu tun. Er sagt ja nur das es keine Leistungseinbrüche gibt, einen direkten Vergleich hat er auch nicht.


    Woher auch, man müsste das Spiel einmal mit dem alten und einmal mit dem neuen Shader testen. Glaub nicht das sie sich die arbeit gemacht haben.


    Jetzt aber frohe Weihnachten
    DarkFaces