DGL
https://delphigl.com/forum/

Homunculus Engine
https://delphigl.com/forum/viewtopic.php?f=13&t=10383
Seite 1 von 1

Autor:  damadmax [ Sa Apr 07, 2012 19:17 ]
Betreff des Beitrags:  Homunculus Engine

Link zum Meinungsthread

Hallo DGLer,

nachdem ich nun endlich mal, meiner Meinung nach, hervorzeigbare Ergebnisse habe, möchte ich euch mal mein aktuelles Projekt vorstellen.
Entstanden ist es eigentlich aus der Unterhaltung mit einem Freund, der nach einer möglichkeit sucht, Architektur in Echtzeit zu Visualisieren.
Leider hat sich nach einigen Versuchen herausgestellt, dass man doch noch sehr viel Aufwand betreiben muss um die von den Architekten erzeugten Modelle in
echtzeitfähig zu machen. Den meisten Raytracern (v-ray, octane, etc) scheinen mit solch vermurkster Geometrie keine Probleme zu haben.
Nun hab ich mich erstmal dazu entschlossen, die Engine so zu bauen wie es mir immer vorschwebte, eben ohne ein richtiges Ziel. :)
Entwickelt wird in Java mit Eclipse auf einer Windows 7 Kiste mit einem Intel Q9550 mit 8GB. Die Grafikkarte ist eine NVidia 8800 GTS 512.
Als OpenGL Bibliothek habe ich lwjgl gewählt. Ich benutze noch die libs slick, trove, vecmath und jorbis.

Features:
bereits implementiert:
SceneGraph
Deferred Render mit Inferred Lighting
Cascaded Shadowmapping
DoF
Bloom (HDR-Fake)
FSAA
Godrays
SSAO
Editor für Deferred Einstellung
Editor für Lichter
Debugger für FBOs.
Statistiken


in Arbeit/geplant:
Editor
erweiterung des SceneGraph um Frustumculling
Kollisionserkennung
Umstellung von Displaylists auf VBOs.
Umstellung von Fixedfunction Matrizenfunktionen auf eigene Matrixklassen und vollständiger Verzicht auf FFP. Ziel ist nur noch opengl > 3.0 zunutzen.
Rendern der Shadowmaps mit gebundenen Alphatexturen.

Die Engine nutzt zur Zeit 18 FBOs, die sich in Auflösung, Farbtiefe und Anzahl der Rendertargets unterscheiden.
Zuerst wird die Szene in einen FBO (scene) mit mehreren Rendertargets (Color, Position, Normal, Attributes) gezeichnet.
In den Attributes werden Shininess, Specularfactor und die Daten für die Godrays gespeichert.
Danach werden die Shadowmaps der Sonne erzeugt.
Im Deferred-Pass wird die im ersten Schritt gezeichnete Szene zusammen mit den Shadowmaps und dem Lichtbeitrag der Sonne in den nächsten FBO (finalScene) gezeichnet.
Mit aktiviertem Blending werden die einzelnen Lichtquellen (Punkt-/Spotlicht) mittels Bounding Box in den selbigen Puffer gezeichnet.
Nun werden aus "finalScene" verschiedene Effekte gerendert:
Ambient Occlusion aus der Normalmap (wobei die w-Komponente den Tiefenwert enthält).
Edge Detection für FSAA aus der DepthMap. (funktioniert ziemlich gut. besser als aus der Colormap)
Highpass für den Bloom/HDR Effekt.
Blur für DepthOfField Effekt.
Alle Ergebnisse werden geblurrt und dann im Posteffekt kombiniert.

Meiner Meinung nach ist die Anzahl der FBOs noch recht hoch. Ich habe bislang auch noch nicht viel Zeit in deren Optimierung gesteckt. Da lassen sich sicher einige Wiederverwenden, z.b.: beim Blurring.

Aber erstmal genug des Technikgeschwafels, Bilder sagen mehr: (Kommen noch!)

Ambient Occlusion
Bild
Ambient Occlusion + DepthOfField
Bild
Ambient Occlusion + DepthOfField + Bloom
Bild
Ambient Occlusion + DepthOfField + Bloom + FSAA
Bild
Ambient Occlusion + DepthOfField + Bloom + FSAA + Godrays
Bild
Ambient Occlusion + DepthOfField + Bloom + FSAA + Godrays + Shadows
Bild
Lighteditor
Bild
FBO Debug
Bild

Autor:  damadmax [ Mo Apr 09, 2012 21:27 ]
Betreff des Beitrags:  Re: Homunculus Engine

Fortschritt 1.
So. Dank TAK ist nun FXAA2 implementiert.
Ich muss wohl noch etwas an den Parametern schrauben, aber es sieht schon sehr ordentlich aus:
Bild
Hier der direkte Vergleich:
Bild

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/