Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 19 von 19
  1. Homepage besuchen Beiträge anzeigen #1 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline

    Fragen zum Original Zengine Renderer / Spacer / Lichter / Shading

    Hallo,

    ich arbeite aktuell an ZenRen, einem kleinen DX11 Zen Viewer, der Gothic Welten 1:1 mit der originalen Beleuchtung darstellen können soll (Hinweis: es handelt sich nicht um einen spielbaren Renderer!).


    Gothic hat scheinbar ein zwar simples aber wirkungsvolles System für statisches Licht (baked light), um mehr Beleuchtungskonstrast in der Welt zu haben ohne eine aufwändige Global Illumination. Was ich mittlerweile rausgefunden habe:

    Es gibt scheinbar mindestens 3 potentielle Quellen für statsches Licht:
    - Lightmaps: Ganz normale 2D Lightmap-Texturen, die der Spacer sowohl für Indoor-Level als als auch Teile (Gebäude-Räume) von Outdoor-Levels berechnet und in der ZEN speichert.
    - Per-Vertex-Light: Ein Farb-Wert, der für jede Ecke von jedem Dreieck (Vertex) der Indoor- und Outdoor-Level in der ZEN gespeichert wird.
    - Lichter: Lichter, welche in der ZEN gespeichert sind

    Meine konkreten Fragen drehen sich nun darum, wie und wann diese Datenquellen zur Laufzeit genutzt werden für die Beleuchtung der statischen Objekte (Welt, VOBs).

    Frage 1)
    Werden die Lightmaps überhaupt zur Laufzeit genutzt?


    Für mich sieht es so aus, als ob die Per-Vertex-Lights bereits das aus den Lightmaps gesamplete Ergebnis darstellen.


    Indoor

    Eine von mehreren Lightmaps (2D)

    [Bild: Annotation_2024_04_08_170140.jpg]


    Per-Pixel Sampling dieser Lightmaps auf der GPU

    [Bild: igmd9LH1Ucf02simage.png]


    Per-Vertex-Farbinformationen direkt aus dem ZEN-Weltmesh (interpoliert auf GPU):

    [Bild: image2.png]


    Wie man sieht, ähneln die Per-Vertex-Informationen stark dem, was man bekommt, wenn man die Lightmap selber rendert. Es ist also zu vermuten, dass der Spacer die Per-Vertex-Werte softwareseitig aus den Lightmaps sampled und man die Lightmaps in diesem Fall nicht mehr selber samplen muss.

    Man nimmt hier also einfach die Per-Vertex-Farbwerte. Soweit so gut.


    Outdoor

    Bei Outdoor Levels ist das aber komplizierter. Dort haben nur die Gebäude-Innenräume Lightmaps, und nur alles andere hat Per-Vertex-Farben! Man hat also entweder Lightmaps oder Per-Vertex-Farben.

    Eine von mehreren Lightmaps (2D)

    [Bild: Annotation_2024_04_08_171438.jpg]


    Per-Pixel Sampling dieser Lightmaps auf der GPU

    [Bild: Annotation_2024_04_08_171630.jpg]


    Per-Vertex-Farbinformationen direkt aus dem ZEN-Weltmesh (interpoliert auf GPU):

    [Bild: Annotation_2024_04_08_171650.jpg]


    Wie man auf dem letzten Bild sehen kann, sind alle Innenräume einfach grau, da scheinbar keine Per-Vertex-Farben für Innenräume vorhanden sind, obwohl 2D-Lightmaps für diese Räume existieren. Außerhalb der Räume gibt es Per-Vertex-Farben, die wahrscheinlich die Sonnenlichtstärke darstellen sollen und nur grayscale sind.

    Warum gibt es für Outdoort-Innenräume Lightmaps, aber keine daraus generierten Per-Vertex-Farben? Ignoriert Gothic diese Outdoor-Outdoor-Lightmaps (nur die Per-Vertex-Farben und evtl. Lichter werden benutzt)?


    Frage 2)
    Sollte ich die Lichter ignorieren, wenn ich bereits Per-Vertex-Farben habe? Vlt. sind die Lichter im Spacer ja bereits in die Lightmaps/Per-Vertex-Farben eingeflossen und es wäre falsch, sie dann qausi doppelt auf die statische Geometrie zu applizieren.



    Falls ihr sonst irgendwelche Anmerkungen zum Shading von Gothic habt, gern her damit.

  2. Beiträge anzeigen #2 Zitieren
    Ritter Avatar von ThomasBausB
    Registriert seit
    Jun 2006
    Ort
    Adelpha
    Beiträge
    1.566
     
    ThomasBausB ist offline

    Portallreume haben die statische lightmap, damit es da nicht absolut dunkel drin ist.Was bei Höhlen eigendlich ganz gut aussieht
    dencke ich.Die Räume haben immer Portallraumpolygone am Eingang. Die wiederum den Raum bei einer bestimmten distanz ausblenden.
    Im Originahl beleuchten leider alle dynamischen lichtvobs auch die Ausenwelt.

    Wenn ich dir nicht helfen konnte , vergiß was ich geschrieben habe.

  3. Homepage besuchen Beiträge anzeigen #3 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Bist du dir denn sicher, dass es spezifisch die 2D Lightmaps sind, die Portalräume beleuchten? Es könnte ja auch einfach ein statischer Helligkeitswert sein, der dann wie im Rest der Welt mit der Tageszeit-Helligkeit verrechnet wird.

  4. Homepage besuchen Beiträge anzeigen #4 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Ok, ich habe mal im Original Gothic fast alle Texturen weiß gemacht und mir das Shading angeschaut (Schmiede altes Lager):

    Original:
    [Bild: Annotation_2024_04_10_094240.jpg]

    ZenRen 2D Lightmap:
    [Bild: Annotation_2024_04_10_094557.jpg]

    Original:
    [Bild: Annotation_2024_04_10_094308.jpg]

    ZenRen 2D Lightmap:
    [Bild: Annotation_2024_04_10_094629.jpg]


    Das passt im Grunde 1:1, nur dass im Original mehr Kontrast und Saturation zu sehen ist (evtl. auch Tageszeit-Einfluss). Sehr interessant, denn das sieht fast so aus, als ob die Lightmap per-pixel gesamplet wird, das muss ich mal mit mit Per-Vertex-Sampling in ZenRen vergleichen.

    Auch interessant dass Mobs sehr komisch (gelblich) geshadet werden.
    Geändert von Kellendil (10.04.2024 um 09:57 Uhr)

  5. Homepage besuchen Beiträge anzeigen #5 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Ich glaube langsam, das Gothic die Lightmaps tatsächlich auf der GPU Per-Pixel rendert. Die VOBs werden entweder direkt von den statischen Lichtern oder von ihren Ground faces beleuchtet.

    Statische Lichter beleuchten VOBs direkt (ZenRen):
    [Bild: image3.png]

    [Bild: image4.png]

  6. Beiträge anzeigen #6 Zitieren
    Schwertmeister Avatar von Feuerbarde
    Registriert seit
    Apr 2015
    Ort
    Peine / Niedersachsen / Deutschland
    Beiträge
    1.950
     
    Feuerbarde ist offline
    Ich gebe den Link hier mal an zwei Entwickler von "Gothic VR" weiter, ich glaube die sind da recht firm was Deine Fragen angeht.
    Aktueller Zustand: Bin zuhause, viel am schlafen aber sonst geht es. (PMs hole ich dieses Wochende nach)
    Pflegestufe 3 ist DURCH !!!, Behinderten Prozente 100% mit Begleitung Bearbeitung, physisch und psychologisch arg angeschlagen.

    [Bild: 47439305ao.png]

  7. Homepage besuchen Beiträge anzeigen #7 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Danke!

  8. Beiträge anzeigen #8 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.323
     
    Milky-Way ist offline
    Hat die Vob Eigenschaft static von einen Einfluss auf die Beleuchtung?

  9. Beiträge anzeigen #9 Zitieren
    Rookie
    Registriert seit
    Apr 2024
    Beiträge
    3
     
    thmsvdberg ist offline
    Hi, Thomas hier, ich helfe beim Gothic VR Team für die Beleuchtung. Sieht eigentlich ganz danach aus dass du deine eigene Fragen schon beantwortet hast! Dass einzige was ich noch sagen könnte zum Thema Kontrast/Saturation ist mal gucken ob du Gammakorrektur auf den Lightmaps bringst (kannste im shader auch mal probieren mit pow(lightmap, 2.2) oder pow(lightmap, 1/2.2)), dass sieht für mich nach so'n typischen Fall aus.

    Du weisst schon mehr als wir wissen, wir haben noch nicht herausgefunden wie man die Lightmaps samplet. Die Meshes haben diesen Lightmap Origin und Lightmap UpRight, statt einfach ein UV-Koordinat. Kannst du erleuchtern wie man die richtig samplet? Danke!

  10. Homepage besuchen Beiträge anzeigen #10 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    @Milky-Way
    Ja. Ich glaube dass dynamische VOBs ihre statische Beleuchtungsfarbe nur vom Boden (ein Polygon des Weltmeshes was sich unter dem VOB befindet) nehmen, statische VOBs können ihre Beleuchtung hingegen auch direkt aus den statischen Lichtern, die im Portalraum verteil sind, nehmen.

    Das kann vor allem dann viel ausmachen denke ich, wenn die VOBs nicht auf dem Boden stehen, also z.B. bei Kerzenleuchtern, Bildern, Wandteppichen etc. Alles was eher weiter weg ist vom Boden.

    Außerhalb von Portalräumen in Outdoor-Leveln dürfte es hingegen keinen Unterschied machen.



    @thmsvdberg
    Ja, ich muss die Lightmaps als sRGB einlesen, dann sieht es genau aus wie im Original, danke^^

    Das samplen der Lightmaps hatte ich in einem älteren Commit rausgeschmissen, aber ich werde es bald wieder mit rein nehmen. In diesem Commit ist es noch drin:
    https://github.com/Katharsas/ZenRen/...520e03b525f662

    Die Per-Vertex-UVs für die Lightmaps werden aus den Lightmap Origin und Lightmap UpRight Vektoren hier berechnet:
    https://github.com/Katharsas/ZenRen/...oader.cpp#L122

    Und eine UV-Koordinate kann man dann hiermit software-samplen (der Code war aber schon eine Zeit lang unbenutzt):
    https://github.com/Katharsas/ZenRen/...Loader.cpp#L66

    Hinweis zu unscale: Mein Worldspace ist um Faktor 100 kleiner als in Gothic, daher muss ich viel Kram skalieren.
    Geändert von Kellendil (11.04.2024 um 08:36 Uhr)

  11. Beiträge anzeigen #11 Zitieren
    Rookie
    Registriert seit
    Apr 2024
    Beiträge
    3
     
    thmsvdberg ist offline
    Zitat Zitat von Kellendil Beitrag anzeigen
    @thmsvdberg
    Ja, ich muss die Lightmaps als sRGB einlesen, dann sieht es genau aus wie im Original, danke^^
    Aha, super!

    Zitat Zitat von Kellendil Beitrag anzeigen
    Das samplen der Lightmaps hatte ich in einem älteren Commit rausgeschmissen, aber ich werde es bald wieder mit rein nehmen. In diesem Commit ist es noch drin:
    https://github.com/Katharsas/ZenRen/...520e03b525f662

    Die Per-Vertex-UVs für die Lightmaps werden aus den Lightmap Origin und Lightmap UpRight Vektoren hier berechnet:
    https://github.com/Katharsas/ZenRen/...oader.cpp#L122

    Und eine UV-Koordinate kann man dann hiermit samplen (der Code war aber schon eine Zeit lang unbenutzt):
    https://github.com/Katharsas/ZenRen/...Loader.cpp#L66

    Hinweis zu unscale: Mein Worldspace ist um Faktor 100 kleiner als in Gothic, daher muss ich viel Kram skalieren.
    Klasse, vielen Dank! Das hätte ich nie selber gefunden.

  12. Homepage besuchen Beiträge anzeigen #12 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Mit SRGB und etwas Mipmap-Bias komme ich dem Original schon ziemlich nahe (die VOBs sind nocht nicht korrekt):

    [Bild: image5.png]

    Allerdings hat das Original irgendwie mehr "Smoothing" (vlt. upsale & blur?).
    Evtl. werden die statischen Lichter aber auch in Echtzeit gerendert? Das würde die sehr saubere Darstellung im Original auch erklären.

    Hier mal Yberions Tempel:

    [Bild: Annotation_2024_04_11_113907.jpg]
    Geändert von Kellendil (11.04.2024 um 11:47 Uhr)

  13. Homepage besuchen Beiträge anzeigen #13 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Habe auch mal statische Licht-Richtung für Vobs implementiert, dadurch bekommen die VOBs nochmal ordentlich Kontrast (und aktuelle Version als 0.6 released):

    [Bild: Annotation_2024_04_21_205945.jpg]
    [Bild: Annotation_2024_04_21_205552.jpg]

  14. Homepage besuchen Beiträge anzeigen #14 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Kleiner Bewegt-Eindruck:

    [Video]

  15. Beiträge anzeigen #15 Zitieren
    Ehrengarde Avatar von neocromicon
    Registriert seit
    Jan 2019
    Beiträge
    2.891
     
    neocromicon ist offline
    Das sieht schon nice aus
    Bin gespannt wohin das Projekt noch geht ^^

  16. Homepage besuchen Beiträge anzeigen #16 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Danke : )

    Jetzt auch mit Tag-Nacht-Beleuchtung, aber noch ohne richtigem Himmel:
    [Video]

  17. Homepage besuchen Beiträge anzeigen #17 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Und jetzt gibts auch einen animierten Himmel (aber noch ohne Sonne/Mond/Sternschnuppen/Regen) : )

    [Video]

  18. Homepage besuchen Beiträge anzeigen #18 Zitieren
    Knight Commander Avatar von Kellendil
    Registriert seit
    Jul 2009
    Beiträge
    2.107
     
    Kellendil ist offline
    Und auch in G2 sowie in größeren Mod-VDFs funktioniert soweit alles:

    [Bild: image_g2.png]
    [Bild: signal_2024_09_07_203003_002.jpeg]

    Ich habe mittlerweile auch Mobs zum Laden gebracht, allerdings behandle ich derzeit alle Vobs/Mobs noch als statische Objekte, weswegen es da Beleuchtungsunterschiede gibt.

    Ich habe außerdem einige Änderungen vorgenommen (Unterteilung der Welt in Grid Chunks) um Camera Frustum Culling implementieren zu können, was so ein Grund-Feature ist wenn man auch in großen Welten gute Performance haben will.

    Zusammen mit der justierbaren Draw Distance bleibe ich so immer stabil über 200 FPS (WQHD, 4xMSAA, GTX 1070), strebe da aber auch immernoch nach einer deutlich besseren Performance.

    Wer den aktuellen Stand ausprobieren will: https://github.com/Katharsas/ZenRen/releases

    Frage:

    Ich habe jetzt erstmal mein selbst implementiertes Sonnenlicht deaktiviert, weshalb die Beleuchtung aktuell etwas sehr "schattig" ist, und werde hier dann später nochmal ran, um die Beleuchtung des Originals möglichst genau nachzustellen.

    Weiß jemand ob die ZenGine Sonnenlicht mittels einer dynamischen Lichtquelle (Directional Light) simuliert, die vlt. sogar über den Himmel wandert? Oder hat der Sonnenstand wirklich gar keinen Einfluss auch die Beleuchtung (abgesehen mal vom tageszeitabhängigen Color Gradings)?

  19. Beiträge anzeigen #19 Zitieren
    Rookie
    Registriert seit
    Apr 2024
    Beiträge
    3
     
    thmsvdberg ist offline
    Zitat Zitat von Kellendil Beitrag anzeigen
    Frage:

    Ich habe jetzt erstmal mein selbst implementiertes Sonnenlicht deaktiviert, weshalb die Beleuchtung aktuell etwas sehr "schattig" ist, und werde hier dann später nochmal ran, um die Beleuchtung des Originals möglichst genau nachzustellen.

    Weiß jemand ob die ZenGine Sonnenlicht mittels einer dynamischen Lichtquelle (Directional Light) simuliert, die vlt. sogar über den Himmel wandert? Oder hat der Sonnenstand wirklich gar keinen Einfluss auch die Beleuchtung (abgesehen mal vom tageszeitabhängigen Color Gradings)?
    Topp Arbeit! Ich habe selber in G1 mal ein ganzen Tag-Nacht Zyklus angeschaut, und die Richtung des Sonnenlichts ändert sich nicht. Es gibt mehrere Himmelfarben mit die dazu hörende Sonnenlichtfarbe. Ich glaube, die genaue Farben sind hard-coded im Source code.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide