Mappen eines Vierecks funktioniert nicht :(
-
Hallo!
Ich habe jetzt ein Quadrat mit Vertzien rendern lassen, nun will ich auch eine Textur draufklatschen
Nur Leider sieht mein Quadrat nach dem Rendern mit der Textur einfach nur dünkler aus, aber von der Textur ist nichts zu sehen :((
ich poste mal den relevanten Code//Die Eckpunkte: v[0].position = D3DXVECTOR3(-0.5,-0.5, 0); // Ortsvektor v[0].color = D3DCOLOR_XRGB(255,255,0); // Farbe // 2. Eckpunkt v[1].position = D3DXVECTOR3( -0.5, 0.5, 0); // Ortsvektor v[1].color = D3DCOLOR_XRGB(255,255,255); // Farbe // 3. Eckpunkt v[2].position = D3DXVECTOR3( 0.5,-0.5, 0); // Ortsvektor v[2].color = D3DCOLOR_XRGB(0,0,255); // Farbe v[3].position = D3DXVECTOR3( 0.5, 0.5, 0); // Ortsvektor v[3].color = D3DCOLOR_XRGB(255,0,0); // Farbe //Laden der Textur: if(FAILED(D3DXCreateTextureFromFile(dd_obj.lpD3DDevice, "textur.tga", &testtexture))) { MessageBox(0, "negative", 0, 0); } //Rendern: dd_obj.lpD3DDevice->Clear(0, NULL, // Total löschen D3DCLEAR_TARGET , // Z-Buf neu Füllen D3DCOLOR_XRGB(50,10,10), // leichtes Dunkelrot 1.0f, 0); //SetSightMatrix(dd_obj); //SetProjectionMatrix(dd_obj); dd_obj.lpD3DDevice->BeginScene(); dd_obj.lpD3DDevice->SetTexture(0, testtexture); dd_obj.lpD3DDevice->SetStreamSource( 0, VTriangle.D3D_VertexBuffer, sizeof(TVertex) ); dd_obj.lpD3DDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX ); dd_obj.lpD3DDevice->DrawPrimitive ( D3DPT_TRIANGLESTRIP, 0, 2 ); dd_obj.lpD3DDevice->EndScene(); dd_obj.lpD3DDevice->Present(0,0,0,0);
vielleicht wisst ihr was falsch sein könnte
Nexus
-
Brauchen deine Vertices nicht noch Texturkoordinaten?
-
Fischi schrieb:
Brauchen deine Vertices nicht noch Texturkoordinaten?
Ja, entweder setzt er die nicht, oder er hat kein in seinem Vertextyp
-
stimmt, die hatte ich vergessen, jedoch jetzt richtig gesetzt!
struct TVertex
{
D3DXVECTOR3 position; // Ortsvektor des Vertex
DWORD color; // Farbwert des Vertex
float tu, tv;
};Habe sie auch richtig gefüllt. Jedoch immernoch das gleiche Problem :///
Nexus
-
Ich depp hab das VERTEX falsch definiert
Eine Frage hät ich aber immernoch:
Woher weiß DX wo im struct die Koordinaten liegen? Warum muss man nirgends angeben dass die Daten in den Variablen tu und tv stehen?
Nexus
-
Es ist fest vorgegeben, wo die Daten liegen müssen (siehe DX-SDK Doku). Machst du es nicht so, wird es nicht funktionieren.
P.S.: Versuch evtl. mal erst zu denken und dann zu posten, wenn es nicht zuviel Mühe macht.
-
Ein ganz ein Netter - naja danke trotzdem