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 Ambient Occlusion + DepthOfField Ambient Occlusion + DepthOfField + Bloom Ambient Occlusion + DepthOfField + Bloom + FSAA Ambient Occlusion + DepthOfField + Bloom + FSAA + Godrays Ambient Occlusion + DepthOfField + Bloom + FSAA + Godrays + Shadows Lighteditor FBO Debug |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |