Ich hab mir vor kurzem das Tutorial "Continuous Level of Detail für Heightmaps (Tutorial_Terrain3)" im Wiki von Nico angesehen und, wie es nicht anders zu erwarten war, steh ich jetzt auf der Leitung, nicht zuletzt Dank der verwirrenden Rekursionen. Kann mir vielleicht mal einer von euch zeigen, wie man den LOD beim Rendern der Heightmap verwendet? Unten wäre meine Renderprozedur für die Heightmap.
-Pos enthält die Höhendaten der Heightmap
-HeighmapTexture ist die Textur, die über die ganze HM gelegt ist
-eine Detail-Textur wird mittels MultiTexturing über je zwei Triangles gelegt
-d1/d2 sind Booleans zum abfragen, ob die Triangles bei Pos[k,i] gezeichnet werden sollen,
zur Überprüfung wird FrustumCulling verwendet.
Ich wäre für jede Hilfe und jeden Beitrag dankbar.
Wenn irgendwas unklar ist bitte einfach nachfragen.
Ich hab mir vor kurzem das Tutorial "Continuous Level of Detail für Heightmaps (Tutorial_Terrain3)" im Wiki von Nico angesehen und, wie es nicht anders zu erwarten war, steh ich jetzt auf der Leitung, nicht zuletzt Dank der verwirrenden Rekursionen.
Also eigentlich machts rekursion, wenn richtig angewendet, normalerweise eher einfach statt kompliziert... Allerdings scheint dein Code iterativ zu sein und ich bin deshalb am staunen wie du das genau machen möchtest. Aber schau doch mal hier: http://www.delphigl.com/do_download.php?f=3054 . Vielleicht hilft Dir der alte Code etwas weiter. (Zu Finden unter Files/VCL-Sources)
Der Code den ich oben gezeigt habe ist der ursprüngliche Code ohne LOD/Quadtree.
Dabei wird einfach bei jedem Pixel der Heightmap innerhalb einer bestimmten Entfernung zur Kamera überprüft, ob er bzw die Triangles an seiner Stelle im Frustum liegen, und darauf mit einer Basistextur und einer Detailtextur gerendert.
Soweit liegen also bis auf FrustumCulling und BackfaceCulling keine performanceverbessernden Techniken wie Octree oder eben LOD vor, da ich nicht wirklich weiß, wie man die bei diesem Ansatz noch unterbringen kann.
Und danch hab ich gefragt, wie (oder ob) man in diese Prozedur noch deinen LOD-Algorhytmus unterbringen kann.
Sicherlich geht das.. Das Frustrum Culling lässt man einfach auf die Ocrees-Knoten los - man wird ein bischen die maxima und minimalwerte des terrains darin vorberechnen müssen. du machst das frustum culling hier sowieso dreieckweise. das würde ich nicht tun, es sei denn du rechnest mit Computern, die noch 3D Karten aus der Hochzeit der 3DFX Ära haben. Der Algorithmus in dem Tutorial ist allderdings ähnlich alt...
Die Berechnung der Koordinaten für normale Textur und Detail-Textur kann direkt übernommen werden.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.