Seite 1 von 1

[DX9,C++] Bounding Box zeichnen(gelöst)

Verfasst: 13.05.2009, 14:35
von Droven
Hi Community,

Für einen Leveleditor benötige ich, dass Linien einer Bounding Box um den Mesh gezeichnet werden, um den Benutzer die Sellektierung des Objektes zu veranschaulichen.
Mein Versuch eine Linie mit dem ID3DXLine-Interface zu zeichnen schlug fehl - keine Linien zu sehen.
Der Code:
Init:

Code: Alles auswählen

			//vertexlisten für linie laden
			//Linke, untere, vordere ecke zu rechter unteren vorderen ecke
			m_LDcToRDc[0] = m_pMin;
			m_LDcToRDc[1] = VECTOR3(m_pMax.x, m_pMin.y, m_pMin.z);
                       //usw...
			//line props
			m_pLine->SetWidth(10.0f);
			m_pLine->SetPattern(1);
Render:

Code: Alles auswählen

				//Bounding box zeichnen
				g_graphdevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
				m_pLine->Begin();
				m_pLine->DrawTransform(m_LDcToRDc,2, &maWorld, D3DCOLOR_ARGB(255,255,0,0));
				m_pLine->End();
Ich habe nicht viel Erfahrung mit dem Zeichnen von Linien und muss gestehen, dass ich sie hier zum ersten mal benötige. Klar lässt sich das Problem auch mit Line Stripes per Hand über DrawPrimitiveUp oder so umsetzen, doch wenn es schon ein Interface dafür gibt, warum dies nicht nutzen. Erkennt jemand den Fehler, liegt es vllt. am Vertexformat?
Ich danke im voraus!

EDIT: Mit dem Debugger habe ich nachgeprüft, ob alle Parameter der DrawTransform-Methode stimmen- Dies ist der Fall.
Zurück gibt die Methode 0 also D3D_OK.
Irgendwie zeigt das Codelisting den 3.Pramater amp;maWorld an, im Code steht dafür nat. nur das Referenz-Zeichen


Mfg David

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 14:38
von Krishty
Hier stand Müll, löschen pls :(

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 14:43
von Droven
Wieso müll?

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 14:46
von dowhilefor
ich bin mir jetzt nicht mehr ganz so sicher, aber bedeutet D3DFVF_XYZRHW nicht das die Punkte schon transformiert und projeziert sind? Sie also in Screenspace angegeben werden?

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 14:47
von Krishty
Droven hat geschrieben:Wieso müll?
Mein Beitrag, nicht deiner :)

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 14:55
von Droven
@ Krishty
Achso, ok;).

Mit D3DFVF_XYZ habe ich es auch schon probiert, funktioniert auch nicht. Wie gesagt, ich habe in der Richtung noch nicht so viel gemacht.

MfG Droven

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 19:18
von Dirk Schulz
Hi,

ich hatte das Problem auch schon, nutze allerdings DrawPrimitiveUp, weiß nicht ob es daher mit deinem vergleichbar ist.

Bei mir hat es geholfen vor dem zeichnen per D3DDevice->SetRenderState(D3DRS_LIGHTING, false) das Licht zu deaktivieren, dann hat er die Linien angezeigt.

Dirk Schulz

Re: [DX9,C++] Bounding Box zeichnen

Verfasst: 13.05.2009, 22:33
von Droven
Danke für die Antworten.

Also bei mir funktioniert es nicht das Licht zu deaktivieren.
Ich werden es morgen mal mit der DrawPrimitiveUP-Variante probiern und Bescheid geben.

MfG David

Re: [DX9,C++] Bounding Box zeichnen(gelöst)

Verfasst: 18.05.2009, 12:14
von Droven
Hi.

Habe das ganze Problem jetzt mit DrawPrimitiveUP gelöst. Die Linien werden angezeigt und man sieht die Bounding Box.
Danke für eure Hilfe!

MfG Droven