BoundingBox malen?



  • Hi,

    ich arbeite gerade an meinem 1. 3D game und möchte 2 Modele kollidieren lassen (kein problem denk ich mal mit AABB) nun, jetzt möchte ich aber sehen ob sie kollidieren und will deshalb die bounding boxen um die modele malen, weis einer wie das geht? 😕



  • Hi,

    eine AABB hat zwei Punkte, aus denen kannst Du die achter Punkte eines Würfels berechnen und mit denen dann wiederum die sechs Faces des Würfels und hast damit die zwölf Dreiecke.

    Ciao,
    Stefan



  • und wie berechne ich das? 😕



  • Ehrlichgesagt ist das etwas lächerlich. Ich habe aber grade eine Funktion parat, die sowas macht. Ist aber nicht schnell, nur zum debuggen geeignet.

    void COcTree::RenderBound()
    {
    	float xmin, ymin, zmin;
    	float xmax, ymax, zmax;
    
    	xmin = m_bound.vMin.x;
    	ymin = m_bound.vMin.y;
    	zmin = m_bound.vMin.z;
    
    	xmax = m_bound.vMax.x;
    	ymax = m_bound.vMax.y;
    	zmax = m_bound.vMax.z;
    
    	D3DXVECTOR3 v[16] = { 
    		D3DXVECTOR3( xmin, ymin, zmin ),
    		D3DXVECTOR3( xmax, ymin, zmin ),
    		D3DXVECTOR3( xmax, ymax, zmin ),
    		D3DXVECTOR3( xmin, ymax, zmin ),
    		D3DXVECTOR3( xmin, ymin, zmin ),
    		D3DXVECTOR3( xmin, ymin, zmax ),
    		D3DXVECTOR3( xmin, ymax, zmax ),
    		D3DXVECTOR3( xmax, ymax, zmax ),
    		D3DXVECTOR3( xmax, ymin, zmax ),
    		D3DXVECTOR3( xmin, ymin, zmax ),
    		D3DXVECTOR3( xmin, ymax, zmax ),
    		D3DXVECTOR3( xmin, ymax, zmin ),
    		D3DXVECTOR3( xmax, ymax, zmin ),
    		D3DXVECTOR3( xmax, ymax, zmax ),
    		D3DXVECTOR3( xmax, ymin, zmax ),
    		D3DXVECTOR3( xmax, ymin, zmin )
    	};
    
    	g_pDev->SetTexture( 0, NULL );
    //	g_pDev->SetFVF( D3DFVF_UBUTEXVERTEX );
    
    	g_pDev->SetRenderState( D3DRS_AMBIENT, 0x00ff0000 );
    
    	g_pDev->DrawPrimitiveUP( D3DPT_LINESTRIP, 15, &v, sizeof( D3DXVECTOR3 ) );
    
    }
    

Anmelden zum Antworten