Seite 2 von 3
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 17.11.2011, 21:24
von Artificial Mind
Wenn du nicht gerade Student bist und kein Problem mit Mathematik hast, würde ich an deiner Stelle nicht mit "richtiger/normaler" Literatur zur Bildverarbeitung anfangen, weil die meistens sofot mit Fourieranalyse kommen.
Bildverarbeitung würd ich immer mit eigenen Programmen lernen, schreib dir selber nen kleines Tool, was Bilder verändert.
Empfehlen kann ich zuerst Kantenerkennung ( z. B.
http://de.wikipedia.org/wiki/Sobel-Operator Mach dir nichts wenn du aus dieser Seite nicht herauslesen kannst, was du machen sollst, google einfach danach)
Sehr gut sind auch immer umrechnungen RGB-Farbraum nach HSV-Farbraum und umgekehrt und so Späßte iwe alle Farben + 50° Hue (Farbwertverschiebung) einbauen. Kontraständerungen sind auch gut.
Dann noch nen Blur einbauen, z. B,
http://de.wikipedia.org/wiki/Weichzeichnen bzw.
http://en.wikipedia.org/wiki/Gaussian_blur (die deutsche Seite ist mal wieder ausgesprochen uninformativ)
Einfach selber mal ein wenig Bilder verändern. Und immer die goldene "Grundregel" beachten: äußere Schleife über y, innere über x :D
Edit: Such dir am besten einfache Tutorials zu den Themen. Bei Bildverarbeitung ist es imho einfacher, zuerst das praktische und dann das theoretische zu Verstehen.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 21.11.2011, 23:49
von balddenimhero
Nachdem bei den letzten Posts die künstlichen und natürlichen Dungeons gezeigt wurden, gibts jetzt die kombinierte Version, die quasi ein Level ausmacht.
Die Zeichen lassen sich wie folgt interpretieren:
- W = Wand eines künstlichen Dungeons
- w = Wand eines natürlichen Dungeons
- D = Treppe ins nächste Level
- U = Treppe ins vorherige Level
Es wird mittels A* die Erreichbarkeit von D von U aus sichergestellt. Das Gesamtergebnis gefällt :) Wenn wir den Dungeon erstmal mit Doodads angereichert haben, wirds sicher noch deutlich cooler :P

- Dungeon (Kombination aus künstlichem und natürlichem)
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 17.01.2012, 00:43
von Artificial Mind
So nach der Winterpause mal wieder ein Update:

- Dungeon 3D - Simple Texture

- Dungeon 3D - Basic Texture
Wir haben endlich über das Marching Squares und dem vorherigen Gaussian Blur beide Dungeon-Arten in ein 3D-Modell gebracht. Dabei haben wir auch genaue "Kappen" für die Dungeons, indem wir den Marching Squares etwas modifiziert haben (er spuckt nun auch noch eine Liste von Dreiecken aus, die die "Kappe" bilden)
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 17.01.2012, 10:00
von Eisflamme
Na das sieht doch schon Mal sehr gut aus, super!
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 20.01.2012, 01:04
von Artificial Mind
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 21.01.2012, 02:33
von Artificial Mind

- Schatten - Der Anfang
Sehr rudimentäre Schatten gibt es nun in der Engine.
Zu sehen ist die erste Seite (FOV 90) der noch zu erstellenden Cubemap. Die Shadowartefakte werden noch nicht vernünftig (*hust* depth - 0.001 *hust*) ausgemerzt und im Endeffekt möchte ich auch weichen Schatten haben. Das ganze von allen 30 Fackeln gleichzeitig, allerdings bei statischer Geometrie. Maaal gucken ;) Gehen eigentlich Texture Arrays von Shadow-Maps?
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 21.01.2012, 11:50
von Schrompf
Klar geht das. Mit einem Geometrie-Shader kannst Du auch in mehrere davon gleichzeitig reinrendern. Das wäre vielleicht eine Idee, um dem mächtigen Aufwand für RenderTarget-Wechsel und DrawCalls beizukommen, den Du mit 30x6 Rendertargets bekommst.
Alternativ könnte sich auch so ein 2,5D-Schattenansatz eignen, wie ich ihn in Splatter verwende. Deine Dungeons sehen ja sehr flach und eben aus, da könnte das klappen. Gibt weiche Schatten und belastet dafür primär mal die Grafikkarte - maximal 1 Pass pro Licht, plus ein DrawCall pro Schattenverlängerungs-Pass.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 22.01.2012, 00:02
von Artificial Mind
2.5D Schatten finde ich nicht so gut, weil die Wände ja richtig 3D sind und ich die Engine nachher auch für CyberDive benutzen möchte.
Ich hatte jetzt mal für OpenGL nachgeguckt und es gibt tatsächlich GL_TEXTURE_CUBE_MAP_ARRAY, allerdings ist die Tutorialdichte schon bei cube maps für shadow maps dermaßen gering, dass ich da komplett auf mich allein gestellt wäre.
Die Engine unterstützt nun erstmal einfache Cube Maps für automatische Shadow-Map generierung und auch schon einfache PCF Softshadows:

- Schatten aus Cube Maps (leicht verbuggt)

- Soft Shadows aus der Cube Map (mit den gleichen Bugs wie oben)
Hat jemand eine Idee, woher diese Bugs kommen könnten? Es scheint, dass die Shadow-Map einen Offset enthält oder so ...
Zum Erstellen der Shadowmap benutze ich die eigenen z-Werte
Code: Alles auswählen
gl_FragDepth = length(worldPos - lightPos) ^ 2 / lightRadiusSqr
und beim deferred lighting greife ich dann so darauf zu:
Code: Alles auswählen
float refDepth = length(worldPos - lightPos) ^ 2 / lightRadiusSqr;
vec3 dir = normalize(worldPos - lightPos);
shadowFactor = texture(ShadowMapSampler, vec4(dir, refDepth - 0.0005));
lightRadiusSqr ist das Quadrat vom maximalen Lightradius (oder auch FarPlane der Camera der ShadowMap)
ShadowMapSampler ist als
uniform samplerCubeShadow ShadowMapSampler; definiert.
(Beides natürlich teilweise vereinfacht und ein wenig pseudo)
ShadowMap-Größe ist 512² momentan
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 22.01.2012, 00:50
von Artificial Mind
So hab den Bug gefunden, die y-Koordinate war falsch und im Endeffekt der komplette Up-Vektor der Cube-Maps. Vielen Dank, OpenGL, dass eure API so gut dokumentiert ist!

- Soft Cube Shadows
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 25.01.2012, 18:14
von Artificial Mind
Nächstes Update (ich hoffe, die vielen Bilder werden nicht als Spam empfunden):
Es gibt nun einen Mechanismus, der eine große "Mastertextur" erstellt und den Dungeonwänden "Wege" auf dieser Textur zuordnet, die Seamless Kanten erlauben und trotzdem einen Großteil der Zufälligkeit behalten.

- 128x128 per Square Dungeonwände, beleuchtet

- 256x256 per Square Dungeonwände, Diffuse Tex only
Die Mastertextur kann vorberechnet werden und damit in sehr hoher Qualität (Textur Antialiasing beim Erstellen usw.) benutzt werden.
Unsere Karte hat Ausmaße von 120x150 und die Wände sind ca. 1 hoch. Die gesamten Wandlängen ergeben sich zu 4000-5000 Einheiten, was bei 512x512 pro Square auf der Wand ca. 18 Texturen der Größe 8192x8192 ergibt. Stattdessen gibt es für 512x512 pro Square eine 8192x8192 Mastertextur, auf der diese Zufallswege berechnet werden.
Um ein wenig schneller zu debuggen und weil meine Grafikkarte nicht soo viel RAM hat, benutze ich zum Testen 128x128 per Square (2048x2048 Mastertextur) oder 256x256 per Square.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 27.01.2012, 01:01
von Artificial Mind
Update:
- Wände haben nun verschiedene Edelsteinarten in kleinen Vorkommen
- Es gibt Kristalle, die die natürlichen Dungeons in verschiedenen Farben erleuchten
- Künstliche Dungeons haben eine hübschere Wandtextur, inklusive (sichtbarem) Parallax Mapping
- Schatten sind vorerst deaktiviert, bis ich die performant mit einem CubeMapArray zeichnen kann
- Fackeln haben etwas bessere Partikel bekommen (obwohl ich immer noch nicht zufrieden bin)

- Dungeonmauer von Fackel erleuchtet

- Kristall: Smaragd

- Kristall: Opal

- Kristall: Diamant und Rubin
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 28.01.2012, 15:44
von Artificial Mind
Der Boden der künstlichen Dungeons hat jetzt mal eine prozedural generierte Cellular Texture mit Parallax Mapping erhalten (Auflösung im Screenie: 4096x512, Tileable in y-Richtung, Berechnungszeit 0.8 Sekunden).
Überraschend gut kommt eine leichte Anpassung der z-Koordinate im Fragment Shader abhängig von der Höhe, die für das Parallax Mapping benutzt wird.

- Künstliche Dungeons: neuer Boden und Depth-Korrektur
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 28.01.2012, 16:00
von CodingCat
Sehr schön, langsam wird erkennbar, wie es aussehen wird, wenn endlich die ganzen Matschtexturen raus sind. :)
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 28.01.2012, 22:35
von Andre
Sehr schickes Blooming hast du da übrigens :)
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 28.01.2012, 22:41
von Artificial Mind
CodingCat hat geschrieben:Sehr schön, langsam wird erkennbar, wie es aussehen wird, wenn endlich die ganzen Matschtexturen raus sind. :)
Andre hat geschrieben:Sehr schickes Blooming hast du da übrigens :)
Vielen dank ihr beide ;)
Grade habe ich die natürlichen Wände noch etwas interessanter gestaltet, jetzt kommt noch der Boden der natürlichen Dungeons dran und dann ist das auch schon abgabefähig aus meiner Sicht (Abgabe ist Freitag).
Es läuft unter Linux !!1! (*hust* Bestehenskriterium *hust*)
Die Parameter für Parallaxmapping sind momentan nur auf die künstlichen Wände optimiert, es ist ganz schön anstrengend, das für alle Geometrie- und Texturverteilungen gut aussehen zu lassen (hat da jemand Tipps? ).
Das Blooming ist übrigens kein normaler Gauss-filter, sondern blurt nur die Diagonalen, damit das diesen "Kreuz"-Effekt gibt.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 29.01.2012, 01:43
von Artificial Mind
So, ich bin mit der Bodentextur der natürlichen Dungeons noch nicht wirklich zufrieden, aber bis Freitag wirds das wohl erstmal tun müssen. Später kommt da noch Vielfalt und so, aber erstmal nicht.
Die natürlichen Wände habe ich wieder als richtige Wände ohne Übergang zum Boden realisiert, da ich eh keine Chance habe, die vernünftig zu blenden. Noch ein wenig mehr Struktur und ein paar Risse in die Wände und schon bin ich gut zufrieden. Da die natürlichen Wände nun ein gutes Stück dunkler geworden sind, kommen die Edelsteine besser zur Geltung.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 27.02.2012, 13:33
von Artificial Mind
[youtube]yCtPw8ZTspU[/youtube]
Kurzes abschließendes Video zum Projekt ;)
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 27.02.2012, 13:54
von Schrompf
Sieht echt gut aus :-) Schade, dass da nix Spielbares draus wird. Und ebenso schade, dass die Echtzeit-Schatten und die anderen Renderer-Features praktisch ungenutzt bleiben.
Re: [Projekt] Yet another Dungeon Crawler
Verfasst: 27.02.2012, 13:58
von Artificial Mind
Danke :)
Um die Features brauchst du dir keine Sorgen machen, die leben in CyberDive weiter *g*
Ich finds auch ein wenig schade, dass es im Endeffekt "nur" eine TechDemo geworden ist, aber ich hab ja noch den Source und wenn es sich ergibt, werde ich daran nochmal weiterarbeiten. Einen Casual-Dungeon-Crawler brauchte ich immer schon mal und da Torchlight 2 noch brauchen wird ... xD