Drittelten Quader darstellen mit Indexbuffer, Problem



  • HI!
    Leute, die ich mit meinen Fragen nerve ALT+F4 (v.a. TGGC ;)) 🙂

    Verzweifel aber echt 😞

    Ich will einen Quader rendern, wollte mich mal Schritt für Schritt rantasten. Erst die Linke Seite, dann die Obere Seite . Bin jetzt bei der Oberen Seite 🙂 Das erste Dreieck der oberen Seite lässt sich noch gut rendern, jedoch das zweite zieht sich an die linke obere Ecke des Bildschirms!!!!!! Ich verstehe absolut nicht wieso, die Größenangaben sollten alle stimmen 😞

    Hier mal der Code:

    TVertex v[6];
    	LPDIRECT3DVERTEXBUFFER8 D3D_VertexBuffer;
    	LPDIRECT3DINDEXBUFFER8 D3D_IndexBuffer;
    	WORD dwIndicies[12];
    
             ZeroMemory(&v, sizeof(v));
    	D3D_VertexBuffer = NULL;
    	D3D_IndexBuffer;
    	ZeroMemory(&dwIndicies, sizeof(dwIndicies));
    
    //Erstellen der linken Seite und der oberen Seite:
    
    		v[i].position.x = -0.5;
    		v[i].position.y = -0.5;
    		v[i].position.z = 0.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    		v[i].position.x = -0.5;
    		v[i].position.y = 0.5;
    		v[i].position.z = 0.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    		v[i].position.x = -0.5;
    		v[i].position.y = -0.5;
    		v[i].position.z = 5.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    		v[i].position.x = -0.5;
    		v[i].position.y = 0.5;
    		v[i].position.z = 5.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    		v[i].position.x = 0.5;
    		v[i].position.y = 0.5;
    		v[i].position.z = 0.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    		v[i].position.x = 0.5;
    		v[i].position.y = 0.5;
    		v[i].position.z = 5.0;
    		v[i].color = 0xFF00FF00;
    
    		i++;
    
    Indexbuffer:
    
    		dwIndicies[0] = 0;
    		dwIndicies[1] = 1;   //Links unten
    		dwIndicies[2] = 2;
    
    		dwIndicies[3] = 1;
    		dwIndicies[4] = 2;  //Links oben
    		dwIndicies[5] = 3;
    
    		dwIndicies[6] = 1;
    		dwIndicies[7] = 3;  //Oben links
    		dwIndicies[8] = 5;
    
    		dwIndicies[9] = 3;
    		dwIndicies[10] = 5; //Oben rechts <- wird falsch dargestellt :/
    		dwIndicies[11] = 7;
    
    	dd_obj.lpD3DDevice->CreateVertexBuffer(sizeof(v),0, D3DFVF_CUSTOMVERTEX,
                                                     D3DPOOL_DEFAULT, &D3D_VertexBuffer);
    
    	D3D_VertexBuffer->Lock(0, sizeof(v), (BYTE**)&pVertex, 0);
    
    	memcpy(pVertex, v, sizeof(v));
    
    	D3D_VertexBuffer->Unlock();
    
    	dd_obj.lpD3DDevice->CreateIndexBuffer(sizeof(dwIndicies), 0, D3DFMT_INDEX16, D3DPOOL_MANAGED, &D3D_IndexBuffer);        
    
        D3D_IndexBuffer->Lock(0, sizeof(dwIndicies), (BYTE**)&pIndex, 0);
    	memcpy(pIndex, &dwIndicies[0], sizeof(dwIndicies));
    	D3D_IndexBuffer->Unlock();
    
    //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); 
    
    	dd_obj.lpD3DDevice->BeginScene();
    
    	dd_obj.lpD3DDevice->SetStreamSource( 0, Terrain.D3D_VertexBuffer, sizeof(TVertex));
    	dd_obj.lpD3DDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX );	
    	dd_obj.lpD3DDevice->SetIndices(Terrain.D3D_IndexBuffer, 0);
    
    	dd_obj.lpD3DDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 7, 0, 5);
    
    	dd_obj.lpD3DDevice->EndScene();
    
    	dd_obj.lpD3DDevice->Present(0,0,0,0);
    

    Muss man vielleicht was beim Devicecreaten oder so beachten? Ich weiß echt nich mehr weiter :((

    Kevin



  • ach gott, ich bin so selten behindert - wahnsinn...wer hat mich nur bei meiner Geburt fallen gelassen (sooo jetz kann TGGC nix mehr sagen ;))

    Hab auf meinem Blatt das gesamte Quader aufgemalt und andere Eckpunktbezeichnungen als in diesem Krüppelquader, sorry für den Thread - sorry Mod - darfst löschen 🙂



  • Surkevin schrieb:

    ach gott, ich bin so selten behindert - wahnsinn...wer hat mich nur bei meiner Geburt fallen gelassen (sooo jetz kann TGGC nix mehr sagen ;))

    Doch.



  • Surkevin schrieb:

    ach gott, ich bin so selten behindert - wahnsinn...wer hat mich nur bei meiner Geburt fallen gelassen (sooo jetz kann TGGC nix mehr sagen ;))

    würde mich freuen wenn du sowas lässt... danke...

    -> closed


Anmelden zum Antworten