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


Anmelden zum Antworten