Hi,
ich versuche gerade ein Terrain(bis jetzt nur flaches Feld) darzustellen, welches in eine gewisse Anzahl von Blöcken eingeteilt ist, um dynamisch das Detail ändern zu können(also Geo-MipMapping).
Nun versuche ich eine Funktion zu schreiben die, je nach Detail-Level des Blocks und der anliegenden Blöcke(um Cracking zu vermeiden), mir einen Index-Buffer für den jeweiligen Block füllt, mit dem ich den Block zeichnen kann. Dabei gehe ich reihenweise vor, d.h. ich erstelle einen Strip für die erste Reihe im Block und gebe den Index des letzten Vertex in der Reihe ein zweites mal in den Index-Buffer, um D3D zu signalisieren den Strip hier zu beenden und mit dem nächsten Index ein neues Dreieck zu beginnen. Dieser liegt dann in der 2.Reihe und das ganze geht so weiter bis Reihe 32. Ok, das ganze scheint zu funktionieren, also man kann das Feld sehen, jedoch wird das Feld überall von langgezerrten Dreiecken überlappt. Habe ich den Triangle-Strip falsch benutzt? Fängt das neue Dreieck bei dem Punkt an den ich 2mal hintereinander in den Index-Buffer getan habe?
Was mich noch quält ist die Frage ob es sinnvoll ist für jeden Terrain-Block einen Index-Buffer zu erstellen. Diese Methode ist bis jetzt die einfachste, um GeoMipMapping möglich zu machen, jedoch habe ich bei z.B. 10*10 Blöcken schon 100 Index-Buffer, von denen jeder pro Frame einmal gesetzt wird. Ich habe gelesen, das es Zeit kostet den Vertex-Buffer zu wechseln und man daher versuchen sollte es möglichst selten zu tun. Ich kann mir zwar schon denken, das es beim Index-Buffer ähnlich sein wird, würde aber gerne noch eine Meinung von jemanden hören, der sich da auskennt.