Vertexe neu anordnen, aber wie?
-
Hiho, ich bins mal wieder

ich habe jetzt sehr sehr lange gegoglet und mir auch ein neues Buch gekauft, aber nichts hilft mir weiter ...
Also, ich habe jetzt die Vertics so angeordnet (standard ... ^^)
0-1-2
|/|/|
3-4-5
|/|/|
6-7-8Nun wird immer überall gezeigt wie sie neu angeordnet werden, wie ich das machen müsste ist mir ja bewusst:
also dann müsste ich die vertics so zeichnen:
0-1-3, 1-3-4, 1-4-2, 2-4-5, 3-4-6, 4-6-7, 4-7-5, 5-7-8 ...
Aber wie ordne ich die denn nun neu an?
-
aus welchem grund willst du sie ueberhaupt umordnen?
-
Kein Wunder, dass du beim googeln nix findest. Es heißt weder Vertexe noch Vertics, sondern Vertices.
Ansonsten ist deine Frage absolut ungenau.
-
wie zeichnest du sie denn?
als einzelne triangles oder als triangle_strip? oder anders?
-
Showball schrieb:
0-1-3, 1-3-4, 1-4-2, 2-4-5, 3-4-6, 4-6-7, 4-7-5, 5-7-8 ...
Vermische nicht CW (im Uhrzeigersinn) und CCW (gegen den Uhrzeigersinn).
Showball schrieb:
wie ich das machen müsste ist mir ja bewusst
Showball schrieb:
Aber wie ordne ich die denn nun neu an?
Außerdem widersprichst du dir.

-
wie ich das machen müsste ist mir ja bewusstDamit meine ich wie ich sie anordnen müsste(in welcher rheinfolge)
also, ich benutze Triangle-Strip, aber die "Vertices" werden dann ja trotzdem noch so gezeichnet:
0-1-2, 3-4-5, 6-7-8
und das sind dann ja nur un sichtbare linien^^
Nun Frage ich ich wie ich die Punkte neu anordnen kann, dass auch dreiecke gezeichnet werden. Oder gibt es da nen kleinen trick?
-
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.