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

Deckard2019

Frischling

  • »Deckard2019« ist der Autor dieses Themas

Beiträge: 3

Wohnort: Eisenach

  • Private Nachricht senden

1

27.01.2004, 19:02

Frage zu Triangle-Strip

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.

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

2

27.01.2004, 19:46

Ist mir auch schon mal so ergangen... :)

Offenbar wird in DirectX 9 wird das Beenden eines Triangle Strips durch das doppelte Angeben des letzten Vertex in einer Reihe nicht mehr unterstützt.

3

27.01.2004, 19:51

QuadTrees

Also ich weiß jetzt nicht ob ich dir mit dieser Antwort weiterhelfen kann, aber ich hab vor kurzem auch ein Terrain implementiert, jedoch mit TriangleFan und in Form eines Quadtrees.

Jeder Knoten in dem Tree besitzt 9 Vertizes,
(Mitte, Oben, Unten, Links, Rechts und die 4 Ecken)
Die Vertizes sind natürlich so angeordnet dass der Fan schön aufgespannt wird.

Aber am besten du siehst dir folgendes Tutorial an:

http://www.gamasutra.com/features/20000228/ulrich_01.htm

mfG da_oAsch

Werbeanzeige