Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

  • »Wümpftlbrümpftl« ist der Autor dieses Themas

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

1

21.02.2007, 11:18

Terrain+Wasser Grafikdemo

Hi.
Ich arbeite derzeit an einer "Terrainengine" für ein kleineres Stücklein Land mit Wasser in der Umgebung. Nachdem Ende November unser supermega Mamut Projekt abgebrochen haben und dazwischen erfolgreich das Rübenspiel fertig stellen. Jetzt wagen wir uns wieder etwas bischen größeres.... (wems genauer interessiert: GoldenVertices Homepage)

Jedenfalls soll genau die Grafik aus dem Demo da dann zum Einsatz kommen. Die Levels werden auch dort nur 128*128 groß sein und die Beleuchtung wird nicht wechseln.

Also nun zur Technik:

Athmosphäre:
Erst wollte ich einen Shader für einen dynamischen Himmel schrieben, hatte jedoch dann Probleme mit dem Übergang von Mond zu Sonnenschein. Darum werden wir die Beleuchtung fix lassen und eine Skybox, ähnlich wie im Demo verwenden.

Terrain:
Also das Terrain wird an sich aus einer 128*128 Heighmap geladen. Zur Dreicksreduzierung benutze ich ein GeometricalMipMapping.
Natürlich wird über einen Quadtree gerendert.
Wie auch später im Spiel werden alle Terrainpatches die unter Wasser stehen einfach weggeschnitten.

Terraintextuierung:
Für die texturierung hab ich mir was besonderes einfallen lassen um flexibel zu bleiben und doch keine Colormaps zu verwenden.
Ein Shader kombiniert aus einer Textur die über dem gesammten Terrain liegt je nach Farbe 3 Texturschichten.
Ja ich weiß die Technik ist nicht ganz neu ... aber als ich sie damals im September das erste mal bei dem supbermegascheiter Projekt (neu)erfand war es neu für mich.

Terrainbeleuchtung:
Das Terrain wird mit Bumpmapping von einer Directionalen Lichtquelle Beleuchtet - Keine Lightmap wie zunächst geplant, da ich sonst nicht den tollen Bumpeffekt hinkrieg ... oder hat jemand ne Idee wie ich das ohne eine extrem hochauflösende Lightmap schaffe?
Im Spiel wird dann das Bumpmapping wahlweise zum deaktivieren sein

Wasser:
Für das Wasser hab ich in dem Demo hier einen besonderen Anspruch gestellt, der mich beim Programmierern des Shaders stark einschränkte. Das Wasser soll nur 4 Vertices besitzen, weil es mit zu aufwändig ist, das Wasser je nach Terrain anzupassen und es in Blöcke wie beim Terrain zum Culling zu unterteilen, sollen alle "Bewegungen" auf Pixelebene sein. Da das Wasser zum Schluss gerendert wird, werden nur die nötigen Pixel gerendert.
Das Wasser gibt es in 3 Detailstufen. Nur die unterste ist auf Shader 1.4 lauffähig. Die oberste arbeitet mit einer Volumentextur.
Der Shader ist noch nicht ganz ausgereift... darum bitte ich hier um Verzeihung, wenn das Wasser zu regelmässig erscheint, oder einfach nur hässlich ist.
Zum start des demos ist die Detailstufe auf niedrig ... Mit Q kann umgeschalten werden



Lange reder kurzer Sinn:
Viel Spaß beim ausprobieren!

Alles Wissenswerte wird oben link angezeigt.

Die bisher noch größten Mankos sind:
- Extremes Popping
- Eckige Übergänge, wo Land in Wasser übergeht
- Unterschied zwischen Wasserdetail Mittel und Niedrig ist sehr gering

Das Demo dient mir zur Vorbereitung auf das nächste Projekt ... ich werde wohl eine Features erst während der Entwicklung implementieren... Das Demo dient mir dabei als Labor. Mir ist es wichtig, dass ich diese vielen neuen Dinge nicht im Projekt ausprobiere, wo ich mich mehr mit der Spiellogik beschäfftigen sollte.

2

21.02.2007, 11:37

Also des sieht doch schon ma ganz ordentlich aus :)
also der Übergang von Wasser zum Land könnt ma noch weicher gestalten und vielleicht wenn des möglich ist das Wasser auf der höchsten Qualtitätsstufe ein bisschen abwechslungsreicher gestalte. Also wenn ma auf des Wasser von bissl weiter oben runterblickt sieht des irgendwie bissl komisch aus weil da immer so Streifen durchgehen ... ansonsten thump up :D

  • »Wümpftlbrümpftl« ist der Autor dieses Themas

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

3

21.02.2007, 19:50

Danke.
Hm ja die Ecken sind ein Problem .... aber ich weiß nicht wie ich die wegglätten könnte.
Das mit dem Wasser ist nicht ganz einfach ... ich müsste wohl in die Wellenberechnungen irgendwie noch die Position ungeclampt mit einfließen lassen

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

21.02.2007, 20:09

Wow, echt nicht schlecht =) Besonders die hohe Qualität kann sich sehen lassen. Einziges Problem: Wenn man ein wenig rauszoomt wirkt alles ein wenig gekachelt.

Aber als Ausgangsort für ein Spiel doch schonmal sehr gut!

5

21.02.2007, 20:22

Hmm ... als Hobbyprojekt sicherlich in Ordnung. Ansonsten geb ich dem Wasser eine 5- ... sorry ... das Terrain geht schon recht gut, allerdings solltest du dir dazu dringend mal nen paar Artikel angucken wie man das am besten macht, dass, sobald man näher an den Berg rankommt, möglicherweise eine höher aufgelöste Textur genommen wird ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

  • »Wümpftlbrümpftl« ist der Autor dieses Themas

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

6

21.02.2007, 21:08

Also eine hochauflösende Textur fürs Terrain will ich nicht hernehmen, weil das noch langsamer kommt als die Technik da. Das das ganze schlechter ist wenn man an dem Berg rankommt liegt dran, weils eben aus einer Heightmap erstellst ist.
Außerdem soll keine riesige Insel daarstellen. Die späteren Landschaften im Spiel werden wahrscheinlich auch flacher. Die Insel hier ist in Spielverhältnissen auch nur 128*128 Meter groß ... also nicht dass das da jetzt als großer Berg missverstanden wird.

Was das Wasser betrifft, so ist meine Rechtfertigung dass das Wasser nunmal nicht in die Performance fallen soll, und deswegen nicht aus einen Vertexgitter besteht.


Wenn du mir allerdings konkrete Verbesserungsvorschläge geben würdest wär das ganz nett .... Artikel hab ich schon zu hauf gelesen

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

7

21.02.2007, 21:08

Zitat von »"Das Gurke"«

Wow, echt nicht schlecht =) Besonders die hohe Qualität kann sich sehen lassen. Einziges Problem: Wenn man ein wenig rauszoomt wirkt alles ein wenig gekachelt.

Aber als Ausgangsort für ein Spiel doch schonmal sehr gut!


naja das mit dem gekachelt ha tman auch bei bf2 auf höchster einstellung ;)

Phili

unregistriert

8

21.02.2007, 21:12

Also ich find das ganze sieht schon wirklich hübsch aus!
Das das wasser etwas weniger offenscihtlich gekackelt sein sollte ist klar, aber ansonsten sieht es imo gut aus. Das einzige was kritikwürdig ist ist würd ich sagen der Übergang vom Wasser zum Land.

9

21.02.2007, 22:01

Hmm bei Terrains könnte man bsw. einen Texture-Alias verwenden ... wird in GPG 5 beschrieben ...

Bei dem Wasser hmm ... da lassen sich echt schöne dinge mit Shadern machen ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

  • »Wümpftlbrümpftl« ist der Autor dieses Themas

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

10

21.02.2007, 22:01

Heul das Programmieren ist doch so ungerecht ..... ich hab versucht durch ermitteln der Terrainhöhe über die Heightmap im Wassershader die Ufer transparent zu machen.

Das kahm dabei raus

(Link)


Die Höhenwerte scheinen zu ungeau zu sein.

Werbeanzeige