ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4396697
Jetzt (Chat):
16 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-
"Reality Engine" von Marc Schiller (Marc7759)


-Oben Links : Screenshot aus meinem Leveleditor in aktion. Die Levels werden aus sogennanten Blöcken erstellt, die man beliebig an ihren Eckpunkten
verformen kann und natürlich auch Rotieren oder Skalieren kann. Die Texturn kann man beliebig viele hinzufügen, und damit dann auch jeden Block damit Texturieren.
Zudem kann man auch noch an beliebiger Stelle Lichter einfügen, und diese dann mit einer Reichweite und Farbe ausstatten. Die Daten der Lichter werden dann später (bei dem Buildvorgang) dazu benutzt, die Lightmaps + Shadowmaps zu erstellen. Danach wird das PotentialVisibleSet berechnet und das fertige Level wird dann abgespeichert und kann später von Engine geladen werden.

-Oben Rechts : Das ist ein Screenshot aus meiner Indoor-Techdemo, die von meiner Page Downloaden kann. Das Level ist, wie man sehen kann, das gleiche Level das man auf dem Linken Bild sehen kann. Es muss dann nur noch durch einen einfachen Funktionsaufruf (BSPLevel->LoadBspFile("Texturen.wtf","REdm0.bsp");) im späteren Gamedesign geladen werden. Die Engine verwendet zur Zeit das gänigen Md2 Format für die Modelle (Player + Waffe und die Austritts Explosion der Waffe). Zudem verfügt meine 3D Engine über eine eigene Sprite Funktion die besonders bei den Einschusslöchern zu tragen kommt.

-Unten : Und dies ist ein Screenshot aus der Finalen Outdoor-Techdemo, die von meiner Page Downloaden kann. Um den Terrain darzustellen verwende ich eine Technik, von der ich den Namen nicht mehr weis :), aber ich kanns ja auch erklähren.... Also, die Voraussetzung für das Laden des Terrains ist eine Höhen-Map, die in Graustufen vorliegen sollte. Die Grösse muss dabei durch 2 Teilbar sein, damit die einzelnen Detail-Stufen erstellt werden können. Beim Ladevorgang wird dann die Höhen-Map in verschiedene Vertexbuffer geschrieben, wobei jeder Vertexbuffer einen Teilbereich der Höhen-Map repräsentiert. Danach wird der Indexbuffer für einen !!!! Teilbereich erstellt, der dann in mehreren Detailgraden berechnet wird. Der vorteil davon ist, dass man nur einen Indexbuffer für einen Teilbereich benötigt, da ja alle Vertexbuffer-Teilbereiche die gleiche Anzahl an Vertices haben. Beim Rendern wird dann die Entfernung zu den einzelnen Teilen berechnet, und dann einfach der Passende IndexBuffer für die Teile ausgesucht. Und beim Texturieren bin ich wie folgt vorgegangen: Zuerst wird die Terraintextur geladen und wird dann dazu verwendet, den Vertices des Terrains die richtige Farbe zu geben. Dann werden einfach nur noch 2 Detail Texturen (eine etwas grösser, die andere etwas kleiner) auf den Terrain gebracht. Fertig!

Homepage : www.schillergames.de.vu






Von Omnibrain am 04.11.2002, 10:42:31 Uhr
zu deiner terrain-technik:
und wie machst du den übergang zwischen einem tile mit höherer detailstufe, zu einem mit niedrigerer stufe? denn wenn du jedes tile einzeln renderst, müssten bei unterschiedlichen detailstufen zwischen 2 tiles dort ja fehler entstehen

Von Marc7759 am 04.11.2002, 13:54:44 Uhr
Stimmt... :)
Das habe ich ja ganz vergessen zu erwähnen...

Ich habe natürlich auch für alle Möglichen kombinationen an Detailstufen bei den Übergängen der NachbarTeile einen IB erstellt.
Wenn ich das noch recht in erinnerung habe, dann wahren es für jede Detailstufe 3*3 (also 9) mögliche Kombinationen. Dieses 3*3 kommt dabei so zustande:

Möglichkeit 1 : Nachbar hat eine niedrigere Deteilstufe.
Möglichkeit 2 : Nachbar hat gleiche Detailstufe.
Möglichkeit 3 : Nachbar hat eine höhere Deteilstufe.

Und 3*3 heist ja, dass ich dies nur für 2 Seiten anwende... ich glaube bei mir war es die linke und die untere Seite eines Teiles...

Ein hacken hat dass ganze ja dann natürlich auch.
Der Nachbar darf nämlich unter keinen umständen 2
Deiailstufen drüber oder drunter liegen, sonnst kommt es natürlich wieder zu Löchern zwische den 2 Teilen...
Aber sowas kommt im Regalfall nie vor, solange man nich zu stark an der Distanz-Lod-Stufe dreht :)

Von Return FALSE am 04.11.2002, 14:43:43 Uhr
:( ich bekomm' den garaus

ps.: ou stunde fängt grad an, prüfung :)

wünscht mir glück

Von sTr33n am 04.11.2002, 14:59:28 Uhr
Sieht total geil aus :)

Respekt!

Besonders der Lensflare effekt und das Terrain sieht sehr sehr gut aus!

Nicht zu übertrieben (der lensflare *g*)

Gute ARbeit!

Von NeoInferno am 04.11.2002, 15:01:11 Uhr
Wow die Engine und der Editor sehen echt verdammt gut aus,einfach nur wow.
Sehe ich das richtig,dass die Light und Shadowmaps je nach der Entfernung zum Licht auf die,der entfernung entsprechenden, Textur gepackt wird?
Hoffe dass ich eines Tages ebenfalls sowas großartiges hinbekomme.

greez,Neo

Von Marc7759 am 04.11.2002, 16:07:51 Uhr
@NeoInferno

"Sehe ich das richtig,dass die Light und Shadowmaps je nach der Entfernung zum Licht auf die,der entfernung entsprechenden, Textur gepackt wird?"

Genau so ist es... :)
Es wird einfach nur der Abstand zwischen LightMap-Pixel-Pos und Licht-Pos berechnet (dabei findet noch ein Kollisionstest für die Shadowmaps statt), und dieser wird dann in eine Pixelhelligkeit (mit einbezogener Reichweite und Farbe des Lichtes) umgewandelt.

Von ChrisM am 04.11.2002, 16:39:06 Uhr
Und wieder mal ein Anwärter für das beste IOTW des Jahres ... :D

Zum Editor: Die .bsp Dateien, die er speichert, sind die in dem BSP-Format, das auch z.B. Half-Life verwendet oder ist das eine eigenes Format, das nur zufällig die gleiche Endung hat?

ChrisM

Von Marc7759 am 04.11.2002, 17:37:44 Uhr
@ChrisM

"Und wieder mal ein Anwärter für das beste IOTW des Jahres ..."

Im positiven oder negativen Sinne ???

"Zum Editor: Die .bsp Dateien, die er speichert, sind die in dem BSP-Format, das auch z.B. Half-Life verwendet oder ist das eine eigenes Format, das nur zufällig die gleiche Endung hat?"

Ne, is'n eigenes Format... Ich sollte es wirklich mal langsam in die vorgesehene Endung ".woe" übernehmen... :) keine Ahnung, warum ich überall bsp schreibe... warscheinlich hört sich ".bsp" einfach besser an... :)

Von ChrisM am 04.11.2002, 20:22:10 Uhr
Im positiven Sinne. Deine IOTW, das hintendran, das noch eins hintendran und der Unreal Tournament-Klon kommen in die nähere Auswahl bei mir. :D

Wegen den BSP-Dateien: OK. :)

ChrisM

Von Raiden(MGS2) am 04.11.2002, 21:31:08 Uhr
Hallo, die Screenshots sind einfach nur GENIAL! Wie/Womit hast du das gelernt? ich habe mir den LevelEditor downgeloadet, aber irgendwie kann man da nur texturen adden, aber keinen cube oder so erstellen. Ist die Ähnlichkeit mit WED absichtlich? ... wie bist du an die icons gekommen?

natürlich hab ich aich die terrain-demo downgeloadet, bei 1024*768*16 läufts mit meiner TNT2 M64 (PCI, ohne TnL oder so...) mit 30 FPS. Aber wenn man auf den Boden schaut, sieht man, dass da wohl noch ein großer bug beim texturieren steckt -> die texturen wackeln hin und her, das sollte man noch beheben!

ansonsten einfach genial!

weiter so!

PS: Bitte alle meine Fragen beantworten!

Von Marc7759 am 04.11.2002, 22:09:56 Uhr
Hi,

"Wie/Womit hast du das gelernt?"

Eigentlich habe ich mir fast alles selber beigebracht :). Aber natürlich haben mich auch die ersten 2 Bände von Zerbie sehr positiv beeinflusst. Und wenn ich mal nicht weiter wusste, dann bekahm ich bis jetzt meistens immer tatkräftige Unterstützung zu den einzelnen Problemen aus der Community...

Edit: Zudem muss man vieleicht noch sagen, dass ich schon einige Zeit, bevor ich C++ konnte, versucht habe, eine 3D Engine mit QBasic zu proggen... Und ich habe es sogar bis zu einem sich rotierenden texturierten Würfel geschafft... Dies habe ich mir aber komplett selber beigebracht... Ich hatte damals keine Bücher, und auch kein Internet... Nur QBasic und mich :) :Edit

"ich habe mir den LevelEditor downgeloadet, aber irgendwie kann man da nur texturen adden, aber keinen cube oder so erstellen."

Doch, ich glaube man kann da Cubes erstellen... Das macht man, indem man mit der Rechten Maustaste in einem der 3 Ansichten klickt...
Aber der Editor ist eh schon extrem veraltet...
Ich werde aber demnächst mal die neuste Verstion Uploaden, mit der man dann auch die Levels Compilieren kann, so dass man sie dann auch im Flymode durchfliegen kann.

"Ist die Ähnlichkeit mit WED absichtlich?"
Jaing... Ich kannte zu dem Zeitpunkt als ich anfieng es zu schreiben nur den WED. Und das hat schon geprägt.

"... wie bist du an die icons gekommen?"

Screenshot vom WED, im Paintprogramm vergrössert und im Visual C++ abgezeichnet...

"natürlich hab ich aich die terrain-demo downgeloadet, bei 1024*768*16 läufts mit meiner TNT2 M64 (PCI, ohne TnL oder so...) mit 30 FPS. Aber wenn man auf den Boden schaut, sieht man, dass da wohl noch ein großer bug beim texturieren steckt -> die texturen wackeln hin und her, das sollte man noch beheben!"

Das Problem ist, dass ich glaube, dass man das gar nicht beheben kann...
Bei meinem Bruder ist das auch genau so, wie du es beschreibst... er hat auch ne TnT2 und bei ihm kommt dieser komische Effekt auch bei anderen Spielen vor, bei denen es einen Terrain gibt. Zum Beispiel sah ich es bei ihm auch bei dem Spiel 'Insane'... Ich glaube das liegt da eher an der Grafikkarte, als an meiner Engine... Aber wenn trotzdem einer weis, wie man das entvernen kann, dann bitte sagen...

Von Raiden(MGS2) am 04.11.2002, 22:19:38 Uhr
also das mit der rechten maustaste wusste ich nicht, danke!

wenns an der graka liegt kann man wohl nichts machen (ausser man verwendet ne technik die auch bei tnt2 funzt :D)

noch ne frage: wie alt bist du?

Von Marc7759 am 04.11.2002, 22:30:31 Uhr
"(ausser man verwendet ne technik die auch bei tnt2 funzt )"

Ja, aber welche ist das ???
Also ich kenne nur die DrawPrimitive Funktionen von DX... Es konnte vieleicht höchtens noch am erstellen der IB liegen, aber was man da machen kann, dass der Effekt weg geht, dass weis ich leider nicht...

"noch ne frage: wie alt bist du?"

19 und du ?

Von Raiden(MGS2) am 05.11.2002, 09:22:22 Uhr
ich bin seit kurzem 16

ich wollte nur wissen, wie alt jemand ist, der sowas kewles macht und sich dann das meiste davon selbst beigebracht hat.

RESPECT

Von Eisflamme am 05.11.2002, 18:32:30 Uhr
Oje, ich dachte schon es kommen so Mittelmaßprojekte im IOTW. -_-
Da habe ich mal wieder falsch gedacht ;)
Wirklich supergeil!
Wunderbare Grafik mit guten Lichteffekten.
Sehr detailreiches Terrain und auch eine super Indoor-Engine, mit keinen deutlich erkennbaren Texturfehlern.
Schöne Heightmap bei der Outdoor Engine und ...
ACH EINFACH GEIL!
Mach weiter so!
Wirst bestimmt mal einen super Beruf bekommen. ;)

MfG MAV

Von Xcalibur am 06.11.2002, 01:30:41 Uhr
also echt hamma, was du da auf die beine gestellt hast!

würd sehr gerne die demo usw. runterladne nur scheint deine site grad irgendwie net so richtig zu fuznktionieren!

ich komm auf die page mit der großen "schiller games"-grafik, aber net weiter :(

wie groß ist die denn? kann man sie evtl auch per icq oder mail verschicken?

ciao

Von Marc7759 am 06.11.2002, 06:48:35 Uhr
Gross ist sie nicht...
Ich habe mit gerade mal selber die Page angesehen... hast recht, geht nich weiter... is aber zum ersten mal so, soweit ich weis... warte vieleicht noch ne kurze Zeit, vieleicht geht es dann... :) Wenn nicht, dann poste ich hier die Links für die Downloads...

Von TGGC am 06.11.2002, 09:44:48 Uhr
Ich frage mich nur warum ein Grossteil der Medien, dem hier _sehr_ ähnlich sieht:
http://chat.carleton.ca/~eszoka/tstriplod/tstrip.htm

Eine Heightmap und passende Textur zu generieren ist ja nun nicht so sonderlich schwer. Den Code für 'ne Terraindemo schreiben ja eigentlich auch nicht...

Von Darkman am 06.11.2002, 11:48:26 Uhr
Sieht krass aus :)
Nich schlecht...!

Von dv am 06.11.2002, 12:07:21 Uhr
Bezüglich der LOD-Technik:
ich mach es ähnlich wie du, allerdings tesseliere ich an den Kanten der Patches vollständig, d.h. an den Kanten gibt es kein LOD, innen schon. Das hebt zwar die Dreiecksanzahl ein wenig, löst aber das Problem vollständig. Und die Resultate sind akzeptabel (~6MTris/sek auf einer geforce256, ~20MTris/sek auf einer geforce4, mit texturierung)

Von thelittlebug am 28.01.2003, 18:26:22 Uhr
Wirklich gute Arbeit. :)

Das verfahren für deine Terrain-Engine nennt sich Geo-Mipmaps.

Du hast es nur so abgeändert das es die Vertexbuffer vorrausberechnet. Im original Geomipmap-Algo wurden sie "on-the-fly" erstellt.
Dadurch auch die Beschränkungen aber sicherlich auch ein geschwindigkeitszuwachs.