Was kann ich an den Raytracing-Bild noch verbessern?


  • Mod

    @XMAMan sagte in Was kann ich an den Raytracing-Bild noch verbessern?:

    Hauptziel wäre das es physikalisch korrekt aussieht. Nebenziele wären dann Effekte wie Subsurface-Scattering/Spektrales Raytracing/Microfacet-Materialien. Also Dinge, die man noch einbauen könnnte, die interessant aussehen und über das bereits im Bild vorhandene hinausgehen. Mir gehts also darum das Bild als Anlaß zu nehmen mein Raytracer weiter zu entwickeln.

    Das problem ist das es in so kuenstlichen szenen garnicht ersichtlich ist wie es aussehen soll, und mehr effekte koennen es am ende sogar in die falsche richtung schieben.

    Aber dass du hdr output hast ist schonmal ein fundamentaler schritt.

    Ich wuerde vorschlagen dass du "im grossen" nun darauf hinarbeitest dass dein raytracer kuenstliche objekte in bilder rein rendern kann, sodass jeder sehen kann wenn es nicht passt und es nicht 100 moegliche stellschrauben (und entsprechend viele meinungen) gibt.

    Von daher schlage ich als naechsten task vor dass du hdr cubemaps laden und anzeigen kannst.



  • Gibt es eigentlich irgendwelche standardisierten Test-Szenen für Renderer?
    Wäre auf jeden Fall praktisch wenn man da was hätte wo Bilder die mit anderen Renderern berechnet wurden als Vergleich zur Verfügung stehen.



  • Hallo Rapso. Schön das du dich jetzt auch hier meldest. Ich hab auf dich gewartet^^

    Wenn du sagst ich soll in Bilder reinrendern, dann meinst du damit Augmented Reality?

    Die Darstellung von Hdr-Cubemaps (Environmentmaps) habe ich hier verwendet, um die Reflexion zu erzeugen. D.h. komplett neu ist das Thema jetzt nicht für mich sondern ich müsste jetzt einfach hingehen und nur noch ein einzelnes Objekt erzeugen, wo das der Rest über das Umgebungslicht(Hdr-Cubemap) kommt.


  • Mod

    @hustbaer
    Es gibt szenen, aber meistens keine Vorgaben wie sie aussehen sollten, eine seltenheit:
    https://www.graphics.cornell.edu/online/box/compare.html

    Ansonsten gibt es synthetische "szenen", z.b. "Furnace tests", wo die umgebung einfarbig ist (ja, du gibst einfach nur 0.5 oder 1.0 zurueck), so kannst du z.B. verifizieren, dass

    sowas ist natuerlich langweilig anzuschauen, aber sehr nett fuer automatische regression test (Du kannst einzelne pixel oder rays schicken und musst im sehr kleinen tolleranzbereich enden)

    @XMAMan sagte in Was kann ich an den Raytracing-Bild noch verbessern?:

    Wenn du sagst ich soll in Bilder reinrendern, dann meinst du damit Augmented Reality?

    Das ist spaeter sicherlich moeglich, aber als erstes reicht es wenn du einfach objekte in cubemaps renderst (also wirklicht kugel, schwebend im raum). Du findest im netz viele HDR cubemaps, klassisch:
    z.b. http://www.hdrlabs.com/gallery/flashpanos_western-usa/index.html
    oder https://hdrihaven.com/hdris/

    Ich glaube (wie bei wohl fast allem) hat Debevec damit angefangen: https://www.pauldebevec.com/Research/IBL/debevec-siggraph98.pdf
    aber du findest sicherlich viele beispiele fuer IBL

    Die Darstellung von Hdr-Cubemaps (Environmentmaps) habe ich hier verwendet, um die Reflexion zu erzeugen. D.h. komplett neu ist das Thema jetzt nicht für mich sondern ich müsste jetzt einfach hingehen und nur noch ein einzelnes Objekt erzeugen, wo das der Rest über das Umgebungslicht(Hdr-Cubemap) kommt.

    Das ist gut, dann ist der Einstieg schneller. Der "Sinn" ist aber leicht anders. zZ hast du zig effekte und komplexe, gebastelte szenen wo nicht ersichtlich ist, wo an den 100 stellschrauben es scheitert (tweaking von post effects oder tone mapping? bug in the implementierung? sind die eingangsdaten schlecht? ist dein monitor komisch eingestellt? usw.)
    Deswegen mach jetzt IBL, wo du 75% das "Foto" siehst und 25% dein objekt. Erst mit einer glass Kugel in der mitte, dann chrome kugel, dann immer komplexere materialien, spaeter mal mit simplen figuren (z.B. dragon). wenn das irgendwann 99% ueberzeugend wirkt, kannst du anfangen volle szenen zu rendern und weisst es liegt (vermutlich) nicht an deinem tracer wenn es unrealitisch ausschaut.



  • Danke für die Antwort Rapso. Du hast mir erstmal wieder wichtigen guten Input geliefert. Ich schaue mir das im Detail an.



  • Ich habe mir das Paper von Paul Debevec mal angesehen. Er nimmt ein einzelnes gerendertes Objekt und dessen Schatten/Kaustiken und fügt es quasi in ein Foto ein. Damit man das machen kann, benötigt man zwei Bilder: Ein Hdr-Bild von ein Tisch (Bezeichnet er als lokale Szene) und ein Hdr-Bild von der Umgebung vom Tisch. Beide Bilder müssen mit der gleichen Blende/Belichtungszeit aufgenommen worden sein. Um das Hdr-Bild von der Umgebung zu erstellen, fotografiert er eine Metallkugel, welche an der Stelle liegt, wo dann das selbst erstellte Objekt hin soll. Wenn ich jetzt also sein Algorithmus für Augmented Reality anwenden will, dann benötige ich entweder zwei solche speziellen Hdr-Bilder oder aber eine Metallkugel(Weihnachtsbaum-Kugel), womit ich dann selber bei mir zuhause diese beiden Hdr-Bilder erzeugen kann.

    Ich schau mal, ob ich entweder im Internet Szenenmaterial finde, was sein Anforderungen genügt oder ob ich eine Weihnachtsbaumkugel auftreiben kann, um selber eine Environmap zu erzeugen. Allerdings wäre das dann mit etwas Aufwand verbunden, da ich die Kugel ja genau im definierten Abstand/Richtung von zwei Seiten fotografieren müsste und wärend der Aufnahme müsste ich eine Belichtungsreihe machen, um somit Hdr-Bilder zu erzeugen. Wärend ich das ganze mache, sollte sich möglichst nicht das Sonnenlicht (Wenn ich das in der Nähe vom Fenster mache) ändern, damit beide Bilder unter gleichen Lichtverhältnissen erzeugt wurden.

    Das alles ist möglich aber erforder erstmal etwas Bastelaufwand. Mal sehen ob und wie ich das hinbekomme.


  • Mod

    Das ist spaeter sicherlich moeglich, aber als erstes reicht es wenn du einfach objekte in cubemaps renderst (also wirklicht kugel, schwebend im raum). Du findest im netz viele HDR cubemaps,

    Wozu ueberspringst du die simple loesung wenn dir klar ist:

    Allerdings wäre das dann mit etwas Aufwand verbunden



  • Ich habe die Lösung ja nicht übersprungen. Ich dachte nur es wäre nicht nötig^^

    Also ok. Ich habe jetzt hier 4 Kugeln genommen und sie mit ein Hdr-Bild erstellt:

    Link Text

    Die Quelle für das Hdr-Bild habe ich von hier und dort habe ich auch die Idee für die 4 Kugeleln her:
    Link Text

    Meinst du das jetzt so oder noch ganz anders?


  • Mod

    @XMAMan

    wo du 75% das "Foto" siehst und 25% dein objekt

    auf deinem bild sehe ich 100% deine 3d objekte.

    ein sehr alter test von mir https://ibb.co/rc0MDBH (ist nicht path tracing sondern nur normales rendering, lief auf dem alten macbook air wo eine nvidia gpu drin war).

    Schau dir mal auf seite 8 an wie die es machen: https://renderwonk.com/publications/s2010-shading-course/snow/sigg2010_physhadcourse_ILM.pdf
    (oder auch https://i2.wp.com/www.artofvfx.com/Avengers3/Avengers3_ILM_ITW_06A.jpg von https://www.artofvfx.com/avengers-infinity-war-russell-earl-vfx-supervisor-industrial-light-magic/ )

    Die idee ist, dass du das sowohl dein objekt als auch die echte aufnahme siehst, damit du siehst wo es scheitert bzw noch mangelt. (es geht nicht um AR! sondern einfach nur dein 3D model mittig im bild oder ins bild ragend).



  • Ok ich habe mein Legoman jetzt freischwebend hier reingesetzt in mitten vom Hdr-Bild (Und übers Hdr-Bild beleuchtet)
    https://i.ibb.co/R3Zx2bS/ausgabe.png
    https://i.ibb.co/RQ2VmLr/ausgabe.png
    Ich muss jetzt mal schauen, wie das ganze Aussieht, wenn ich verschiedene Materialien verwende. Meine momentane MaterialTest-Ausgabe ist das hier:

    https://i.ibb.co/MhQ7Syb/Raytracing-Materials.jpg

    Hier verwende ich ja eine diffuse Lichtquelle und diffuse Wände. Also lasse ich jetzt einfach die Wände und diffuse Lichtquelle weg und beleuchte alles nur wie im ersten Bild über Hdr? Ich bin gespannt was da rauskommt. Ob das neue Fehler aufdeckt. Aber zumindest finde ich die Idee Umgebungslicht zu nehmen an sich sehr gut, weil es doch realistischwer wirkt.

    Habe das bis jetzt nie so aufm Schirm gehabt.



  • Hier sind meine ersten vorsichtigen Versuche die Legofigur freischwebend per Hdr zu beleuchten.

    https://s12.directupload.net/images/201122/mskqtsor.jpg

    Ich muss sagen das bringt ganz neue Probleme mit sich^^ Auf einmal macht es ein riesen Unterschied, welchen Wert man beim Diffuse-Albedo und welchen beim Specular-Albedo verwendet. Es ist sehr wichtig, dass Diffuse-Albedo deutlich kleiner als Specular-Albedo ist, da sonst diffuse Objekte im Vergleich zum spiegelnden viel zu hell sind. Außerdem ist Tonemapping wichtig, da das Sonnenlicht im Verhältnis zum Rest des Bildes sehr hell ist.

    Ich kann ja nun als nächstes anstelle der Legofigur nun eine freischwebende Kugel nehmen.

    Das könnte dann so aussehen:

    https://i.ibb.co/vJpTDgM/Raytracing-Materials3.jpg

    Aber wie geht es jetzt weiter? Mir fällt es leichter, wenn ich ein konkretes Zielvorgabebild habe, an den ich mich orientieren kann. Ich habe nun die Kugeln + Legelfigur freischwebend wie gefordert aber weiß nun nicht, wie ich da nun unstimmigkeien/Fehler finden kann.


Log in to reply