Vertexe neu anordnen, aber wie?
-
Irgendwie kannst du dich echt nicht klar ausdrücken...
1. Nimm eine TriangleList
2. Wenns unbedingt ein TriStrip sein soll kannst du den Strip resetten. Dazu nach "degeneriertem Dreieck" googeln.
-
Ein strip ist doch wesentlich preformanter, oder etwa ncht? und bei einer List odnet der mir die automatisch net an oder wie?
-
Ein Strip ist nicht performanter, aber du kannst damit Speicher sparen.
Ich benutze wann immer es geht indizierte TriangleLists.Showball schrieb:
und bei einer List odnet der mir die automatisch net an oder wie?
Lies dir nochmal genau durch was Lists und Strips sind. Einmal gibst du für jedes Dreieck 3 Vertices an und ein anderes mal wird jedes n-te (n>1) Dreieck aus einem Vertex + der Kante mit den letzten 2 Vertices des n-1-ten Dreiecks gebildet.
-
Ja, hab da gerade nen kleine erklärung über Lsts und Strips gefunden.
Naja, auf jeden fall kann ich mein project nicht mehr dubuggen:
Projekt : error PRJ0002 : Fehler "-1" wurde von "C:\WINDOWS\system32\cmd.exe" zurückgegeben.
weiß jemand was das zu bedeuten hat?
-
lo, ich bekomme jetzt immer den fehler, egal welches project ich debugge???
Helft mir bidde!
-
http://fruiture.de/perl/questions.html
Insbesondere: http://fruiture.de/perl/questions.html#Präzision
-
Ja ich habe jetzt einfach mal neustart gemacht, jetzt gehts wieder^^
-
So, da mein code nun zur verfügung steht, fange ich nochmal von vorne an, mit nur einem Dreieck^^
Also, ich habe jetzt ein Dreieck, mit den folgenden Punkten:
CUSTOMVERTEX t_vert[] = { { 320.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), }, // punkt 1 { 520.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 255, 0), }, // punkt 2 { 120.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0), }, // punkt 3 };Und mit einer TRIANGLELIST render ich es:
d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);Nun zeichnet er das dreieck so, oder? :
1-2-3
???
Aber wenn ich die Punkte nun aus einer Heightmap hole, die so aufgebaut ist:
1-2-3-4
5-6-7-8
9-a-b-c
d-e-f-gzeichnet er soch nur unsichtbare linien oder?
Oder habe ich da was falsch verstanden?
-
Unsichtbare Linien, hä? Du musst halt einfach die Vertices (abhängig vom Primitiventyp) richtig in den VertexBuffer packen. Bei einer Liste z.B. 125, 526 usw. Oder eleganter: Jeden Vertex einmal in den VB und dann nur noch per Indizes referenzieren.
-
Und wie mache ich das??^^ (jetzt bin ich wieder bei meiner eigentlichen Frage)
-
OK, die Frage war ein wenig kurz!
Also, ich lade die Vertices im Moment so in den Vertex Buffer:
t_buffer->Lock(0, 0, (void**)&pVoid, 0); memcpy(pVoid, t_vert, sizeof(t_vert)); t_buffer->Unlock();Und wie Lade ich sie jetzt "richtig" in den Buffer?
-
In der DX Doku sind der Vertex- und IndexBuffer und seine Handhabung ausführlich beschrieben.