#1 30.07.2010 14:37:31

bjoern
ProMember
Ort: OBK
Registriert: 18.07.2006
Beiträge: 112
Web-Seite

S7 Game Engine

Hallo Leute,

damit das Forum nicht so leer ist poste ich hier mal ein paar Bilder von meinem Engine. Ich bin noch im Anfangsstadium, aber ich selber gucke mir immer gerne Screenshots von anderen Projekten an.


Name:
S7 Game Engine


Funktion:
Es soll ein Grafikengine mittels eigener DLL und einem Interface implementiert werden. Grundsätzlich ist man auf einer Insel, die von Wasser umgeben ist (also Richtung FarCry etc.).


Grundsätzlich:
- Delphidev DX 9 Headers
- Delphi 2010


Himmel:
Eine Ebene, die mittels Magnet zu einer Kuppel gezogen wurde. Ich sitze momentan an den Wolken, schwieriges Thema. Versucht habe ich es mit einer Noisemap, wo ich dann mit einer speziellen Funktion Wolken drausmache (bestimmte Teile der Noisemap werden ausgeblendet http://freespace.virgin.net/hugo.elias/models/m_clouds.htm). Das Ergebnis finde ich nicht so toll, die Noisetextur hat meiner Meinung nach eine zu geringe Auflösung, aber ich kann sie ja auch nicht beliebig groß machen. Im Ssader berechnen wäre vielleicht noch eine Möglichkeit. Dass ich Billboards verwende habe ich auch schon überlegt... Naja vielleicht wisst ihr ja wie man einen schönen Himmel hinbekommt. Ich möchte generell Richtung Karibikhimmel, also keinen Wolkenschleier mit verschiedenen Texturen die übereinanderlaufen (wie z.b. hier http://www.keepcoding-development.ch.vu/ kc3d engine 2).


Wasser:
Komplett per Funktion im Vertex-Shader, keine Map mit vorberechneten Werten ("A Simple Model of Ocean Waves" von Reeves und Fournier). Momentan verwende ich noch eine Cube-Map, das ist aber so weit ich weiß überflüssig, brauche doch nur eine Spiegelmap für die Wasserspiegelung? Habe mich aber noch nicht so genau eingelesen. Im Bild habe ich als Cubemap eine Bergumgebung gewählt zum Test, deswegen sieht man auch im Wasser einen Berg, der nicht da ist, wenn man genau hinsieht. Ist aber nur zum Test, wenn ich dann eine Insel habe wird natürlich diese gespiegelt.
Das Wasser hat noch keine Beleuchtungsrechung, tuer mir momentan sehr schwer mit den Normalen..

Jo ich bin gespannt was ihr sagt, Anregungen und Hilfen gerne!!

Gruß
Björn

Beitrag geändert von bjoern (30.07.2010 15:17:39)


Attachments:
Attachment Icon 1.bmp, Größe: 3,690,294 bytes, Downloads: 830
Attachment Icon 3.bmp, Größe: 3,694,122 bytes, Downloads: 815
Attachment Icon 2.bmp, Größe: 3,709,494 bytes, Downloads: 768

Offline

 

#2 31.07.2010 00:15:10

DragonFlyOfGold
ProMember
Ort: Berlin
Registriert: 09.11.2005
Beiträge: 139

Re: S7 Game Engine

Hey Björn,

erstmal wollte ich dir danken das du überhaupt etwas gepostet hast! Ich finde das Forum ist momentan viel zu ruhig.

Das Thema deine Projektes ist sehr intressant, da du dich dazu entschieden hast selber eine Engine zu schreiben und keine vorgefertigte zu nehmen. Ich persönlich bevorzuge es auch nur die DirectX SDK als Vorlage zu nutzen und keine komplette Engine. Ich haber aber den Vorteil, dass ich mit Gnietschow zusammen programmiere.
Ich find Delphi 2010 auf jeden Fall ein gute Wahl. Wir sind auch vor kurzem von Delphi 7 auf 2010 umgestiegen und Operatoren überladen etc., sind eine echte Wohltat!

Aber jetzt mal zum eigentlich Thema: Ich denk mal du hast dich bis jetzt nur mit Wasser und Himmel richtig beschäftigt, da du noch nichts über die anderen Themen geschrieben hast, richtig?
Die Wellen deines Wassers gefallen mir ziemlich gut! Allerdings sollte die Farbe großflächig varieren, wegen der Tiefe. Und mit etwas Specular würde dein Wasser bestimmt toll wirken.
Beim Himmel konnte ich leider keinen richtigen Verlauf sehen, müsste die Farbe nicht von oben nach unten heller werden?!

Sobald es bei dir mit den anderen Themen losgeht schreib ruhig mal deine Ideen dazu nieder. Dann könnten wir hier im Forum darüber diskutieren. Da ich ja auch selber mitten in der Engineentwicklung stecke, weiß ich wie oft man Konzepte programmiert und dann nach etwas Zeit wieder verwirft weil man etwas nicht bedacht hat oder ein besseres gefunden hat.
Speziell bei den Themen Terrain und Schatten (im speziellen Stencilschatten) könnten Gnietschow & ich dir sicher weiterhelfen, da wir zu diesen Themen unsere Bachelorarbeit geschrieben haben wink

Also ich wünsch dir noch viel Erfolg und wenig Bugs,
DfoG

Offline

 

#3 15.08.2010 15:38:13

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: S7 Game Engine

Hübsche Wellen smile Ich hab damals versucht mittels Sinus und Cosinus ein paar Wellen zu zaubern, aber sah nie so besonders aus wink

zum Himmel:
Sieht denn selbst eine 2048er Noise-Textur immer noch pixlig aus? Ansonsten könntest du versuchen Die ganze Noise-Berechnung im Shader zu machen, da gabs in den GPUGems zwei Artikel zu (http://http.developer.nvidia.com/GPUGem … ter26.html; http://http.developer.nvidia.com/GPUGem … _ch05.html), hab da aber noch nich ganz durchgesehen roll.
Oder noch eine andere Möglichkeit wäre, mehrere Noise-Texturen übereinanderzulegen, wobei du sie immer stärker kachelst. Also so wie du die Noise-Map berechnen würdest, nur das du diese Überlagerung im Shader machst und so dennoch hohe Auflösungen bekommst, da die kleinen Stücke auch hoch aufgelöst sein können.
Andere Möglichkeiten wären dann Billboards, ich hab mal ein Weilchen im Crysis-Editor herumgeschaut (ist sehr interessant, wie getrickst wird smile ), da haben sie zwei unterschiedliche Wolkenarten: einmal die normalen dickeren Wolken die über einem schweben und die weit entfernteren langestreckten Wolken. Erste werden mit Billboards dargestellt die immer der Kamera ausgerichtet sind, wie Pointsprites. Die Anderen sind Vierecke mit normalen Wolkentexturen, welche parallel zum flachen Boden weit entfernt hingestellt werden und somit perspektivisch gut aussehen. Nachteil dabei wäre natürlich der Aufwand jede Wolke von Hand zu platzieren, aber vll kann man sich da noch was ausdenken smile

zum Wasser:
Die Wasserspiegelung mittels der Ebene macht man mit http://msdn.microsoft.com/en-us/library … 85%29.aspx und dem Stencilbuffer (gibts irgendwo ein SDK-Beispiel dazu). Mittels Stencilbuffer markierst du den Bereich wo sich Wasser befindet und dort wird dann die gesamte Welt gespiegelt gerendert (aufpassen beim Culling muss anders herum sein). Damit nichts unerwünschtes dargestellt wird muss man glaube ich auch noch eine Clippingplane setzen. Dass dürfte aber nur funktionieren, wenn du recht ebenes Wasser hättest, aber bei deinen Wellen könnte die Technik vielleicht nicht funktionieren bzw. merkwürdig aussehen, da die Wellen keinen Einfluss auf die Spiegelung hätten.

MfGnietschow

Beitrag geändert von Gnietschow (15.08.2010 15:40:01)


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#4 13.01.2011 18:34:07

bjoern
ProMember
Ort: OBK
Registriert: 18.07.2006
Beiträge: 112
Web-Seite

Re: S7 Game Engine

Hallo,

mittlerweile habe ich etwas weitergearbeitet. Stichpunktartige Features:

- Himmel: Per Noise Map Wolken, Farbübergang der Hintergrundfarbe, Wolkenzahl und Schärfe regulierbar, Wolken animiert und Verwirbelungen vorhanden, Sonne
- Wasser: Leider ein einfacheres als davor, werde aber das Wasser wieder verbessern, hatte andere Prioritäten
- Szenen-Objekte: Eigenes Modelformat für die Objekte entwickelt, bisher einfache Beleuchtungsberechnung, S7-Objekte sollen aber mächtige Materialien bekommen wie Normale-Maps, Detail-Maps, etc. Deshalb auch das eigene Format. Einfacher Wind implementiert. Die Objekte sind von http://www.loopix-project.com/.
- Logging per Win-Message and Editor

Bei Fragen gerne Fragen :-)
Gruß
Björn

Beitrag geändert von bjoern (14.01.2011 11:43:00)


Attachments:
Attachment Icon Screenshot.png, Größe: 1,726,220 bytes, Downloads: 511

Offline

 

#5 14.01.2011 22:20:52

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: S7 Game Engine

Klingt doch schon alles recht super smile

Gern stell ich auch ein paar Fragen
1. Die Wolken klingen von der Erklärung her ziemlich aufwändig. Leider kommt davon bei den Screenshot nur recht wenig rüber. Kannst du mal kurz die Verwirbelung demonstrieren?
2. Wann habt ihr Schatten geplant? Ich finde, die bringen einer Scene fast schon den meisten Pepp und würden euer Projekt imho sicher schlagartig von "ah, wieder ein kleines DX-Projekt" zu "ui, das sieht ja cool aus" bringen.


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#6 14.01.2011 22:33:54

bjoern
ProMember
Ort: OBK
Registriert: 18.07.2006
Beiträge: 112
Web-Seite

Re: S7 Game Engine

Hi Artzuk,

zu 1)

mit Verwirbelung meine ich, dass sich die Wolken nicht geradlinig bewegen, sondern etwas ihre Form verändern; dafür verwende ich eine Textur. Ist natürlich schlecht das an einem Screenshot zu zeigen. Ich habe mal einen angehängt, wo die Wolken sehr stark verwischt wurden. Ich weiß nicht genau wie man das nennt, habe es in einem anderen Sample gesehen. Wie in dem Bild ist es übertrieben.
Soo aufwendig ist der Himmel nicht. Ein Farbübergang von unten nach oben. Die Wolken werden halt aus einer Noise-Map erzeugt, dazu habe ich mich hier inspirieren lassen: http://freespace.virgin.net/hugo.elias/models/m_clouds.htm

zu 2)
Schatten kommen definitiv noch, zumal ich mich in meiner momentanen Master-Arbeit mit Schatten beschäftige. Es wird wohl auf gefakte Soft-Shadows rauslaufen, also für den Anfang PCF und später EVSM.

Wir sind leider kein Team, ich arbeite allein an dem Engine, drum auch immer langsame Fortschritte, ist nur ein Hobby^^

Gruß
Björn


Attachments:
Attachment Icon Screen.png, Größe: 1,251,387 bytes, Downloads: 499

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson