"gras engine" fragen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

bjh

Betreff: "gras engine" fragen

BeitragDi, Mai 01, 2012 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich programmier grad einen Egoshooter im Far Cry Style.
Meine Map soll mal 64 km²(8*8) groß werden.
Das wären dann 524'288 Polygone (512*512*2) mit einem Vertexeabstand von 16 m.

Dann erstelle ich 2 Grasmeshs, die jeweils ein Polygon von einem Quadrat(2 Polygone) abdecken.
Danach kopiere ich z.b. 10*10 von diesen Grasmeshs mit Copyentity() in ein Array um die Kamera.

In der Hauptschleife werden dann mit Atan2 die Pitch- und Roll-Winkel anhand der Vertexhöhen der Map ausgerechnet und die Position auf die Höhe des Vertexpunktes verschoben.

Wenn der Abstand zwischen dem Pivot und der Cam zu groß bzw. zu klein ist, dann wird der Pivot mit dem Gras verschoben und den Grasmeshs im Array werden andere Winkel und Koordinaten gegeben.

Zuletzt werden dann die beiden Ursprungsgrasmeshs verändert, um eine Bewegung im Gras zu simulieren.
Wird ja durch das Copyentity sofort übernommen.

Das alles ist nötig, um schnell viel Gras auf die Landschaft zu bekommen.

Es gibt da keine Probleme, aber ich wollte mal eure Meinung hören, was ich noch verbessern kann.

ps: Ich weiß, dass 64 km² sehr groß sind und ich hab da auch schon Probleme mit Float-Ungenauigkeit bei ein paar Kilometern. Ich werd die gesamte Map dann wohl ab einem gewissem Abstand vom Ursprung zurückschieben müssen.

Propellator

BeitragDi, Mai 01, 2012 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Nvidia hat in "GPU Gems" einen guten Artikel zur Darstellung von Gras in Computerspielen. Dieser ist sehr lesenswert.

MfG
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.
 

bjh

BeitragDi, Mai 01, 2012 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank für die seite.

ich denke, so wie ich es mache, ist es schon die schnellste lösung.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group