[Projekt] Yet another Dungeon Crawler

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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.
balddenimhero
Beiträge: 7
Registriert: 03.11.2011, 19:33
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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)
Dungeon (Kombination aus künstlichem und natürlichem)
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

So nach der Winterpause mal wieder ein Update:
Dungeon 3D - Simple Texture
Dungeon 3D - Simple Texture
Dungeon 3D - Basic 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)
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Eisflamme »

Na das sieht doch schon Mal sehr gut aus, super!
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

So, nun gibt es ein wenig mehr Beleuchtung, etwas bessere Wandgeometrien und rudimentäre Fackel-modelle (per Bézier-Kurven-Rotations-Körper ;) )
Dungeon with Torches
Dungeon with Torches
Lightened Dungeon - near
Lightened Dungeon - near
Lightened Dungeon - far
Lightened Dungeon - far
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Schatten - Der Anfang
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?
Benutzeravatar
Schrompf
Moderator
Beiträge: 5397
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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)
Schatten aus Cube Maps (leicht verbuggt)
Soft Shadows aus der Cube Map (mit den gleichen Bugs wie oben)
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
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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
Soft Cube Shadows
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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
128x128 per Square Dungeonwände, beleuchtet
256x256 per Square Dungeonwände, Diffuse Tex only
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.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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
Dungeonmauer von Fackel erleuchtet
Kristall: Smaragd
Kristall: Smaragd
Kristall: Opal
Kristall: Opal
Kristall: Diamant und Rubin
Kristall: Diamant und Rubin
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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
Künstliche Dungeons: neuer Boden und Depth-Korrektur
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von CodingCat »

Sehr schön, langsam wird erkennbar, wie es aussehen wird, wenn endlich die ganzen Matschtexturen raus sind. :)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Andre
Establishment
Beiträge: 186
Registriert: 21.12.2011, 20:33

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Andre »

Sehr schickes Blooming hast du da übrigens :)
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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.
ogl_crystals_4.png
ogl_crystals_5.png
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

[youtube]yCtPw8ZTspU[/youtube]
Kurzes abschließendes Video zum Projekt ;)
Benutzeravatar
Schrompf
Moderator
Beiträge: 5397
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag 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
Antworten