Echtzeit LOD genau wie beim Terrain

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

rctuner

Betreff: Echtzeit LOD genau wie beim Terrain

BeitragDo, Apr 12, 2007 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Gibts es eine Möglichkeit ein LOD wie bei den Blitz Terrains auf Meshes anzuwenden?

Brauche dies wirklich dringend... Bin mir auch über den geschwindigkeits verlusst bewusst.
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]
 

ChristianK

BeitragDo, Apr 12, 2007 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Samples-Ordner im Blitz3D-Verzeichnis gibt's glaub ich sowas ...
 

Dreamora

BeitragDo, Apr 12, 2007 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Dynamisch gibts bei anderen Meshes nur auf Basis von vorgegebenen LoD Levels.

Progressives LoD taugt nichts bis nicht sehr viel.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

rctuner

BeitragDo, Apr 12, 2007 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
wie sieht es mit smoothen aus?
für meine zwecke könnte ich auch einfach ein low poly laden und dann smoothen lassen...
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]

skey-z

BeitragDo, Apr 12, 2007 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
durchs smoothen(jedenfalls mit Wings), bekommst du ja mehr polys, also das das model runder wirkt.

Das High-Poly lässt du dann zb. bis zu einer Distanz von 50 oder jenachdem eniger oder mehr anzeigen und wenn es diese Grenze überschreitest, hidest du es und zeigst dafür das Low-Poly an.

hierzu brauchst du noch nicht mal mit 2 Dateien zu arbeiten, erstelle einfach 2 mal das gleiche model in der Datei und lade es als anim mesh, mittels childs kannst du dann beide auslesen und je nach bedarf anzeigen lassen.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

Dreamora

BeitragDo, Apr 12, 2007 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
rctuner hat Folgendes geschrieben:
wie sieht es mit smoothen aus?
für meine zwecke könnte ich auch einfach ein low poly laden und dann smoothen lassen...


Wenn dir Vornoi Diagramme und so was sagen, wärs vielleicht möglich, ist nur ein beträchtlicher Aufwand bei allgemeinen Formen.
Aber da Blitz nicht auf dynamische Meshes optimiert ist wäre dann "high poly" 2000-3000 polygone und maximal 20 objekte oder so davon, damit wärs du dann vermutlich an der grenze

Darum lieber 5 LoD Level zb, damit kannst du problemlos das 10fache durchjagen Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

rctuner

BeitragDo, Apr 12, 2007 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die Antworten.
Dass Problem ist aber, dass ich mein Wasser optimieren möchte und diesen Code auf die geteilten Wasser-Platten anwenden muss:Code: [AUSKLAPPEN]



Function UpdateWater()

   
   For aW=0 To VertexCount-1
      Freq#=MilliSecs()/10
      Vertex(aW)\z#=Sin(freq+Vertex(aW)\x#*300+Vertex(aW)\y#*400)*0.04
      
      VertexCoords surface,aW,Vertex(aW)\x#,Vertex(aW)\y#,Vertex(aW)\z#
   Next
   
   UpdateNormals watermesh
   
End Function


Umso mehr Polys die Platten haben, umso besser sehen die Wellen aus, welche durch den Code oben erzeugt werden.

Sagen wir ich hab jetzt 5 Platten, eine von ihnen ist 30 m lang. Diese werden dann zusammen gelegt, sodass ich ein Meer habe. Die weit entfernten Platten werden versteckt um die Geschwindigkeit zu erhögen.
Wie könnte ich dann den Code um Wellen zu erzeugen nur auf zB 50 m Radius von mir anwenden?
Denn wenn ich alle Platten mit der Funktion Update, zieht das ziemlich an Geschwindigkeit...
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]

Black Spider

BeitragFr, Apr 13, 2007 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm,
es gibt da ne Möglichkeit, die Valve auch bei neueren Spielen einsetzt (TF2, Half Life² Episode 2), nennt sich Multi Resolution Mesh,
genauer Artikel dazu ist hier: http://www.teamfortress2.de/tf2_tech.php#mesh

das heisst du könntest das Mesh mehrmals speichern, jeweils mit unterschiedlicher Polygonzahl, und es dann immer je nach entfernung austauschen.
Das ist dann zwar kein wirkliches LoD, funktioniert aber besser als wie wenn du einen LoD Code für Meshes schreiben würdest,
das wäre nämlich saumäßig aufwändig, und könnte am Ende unschön aussehen.
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

rctuner

BeitragFr, Apr 13, 2007 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab ein beispiel im englischen forum gefunden, welches nur mit hiden/show funktioniert und somit recht einfach und unkompliziert ist.
mein problem ist jetzt aber wie gesagt, wie ich den oberen code auf nur die Wasser Platten in meiner umgebung anwende...
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group