1. 程式人生 > >3D遊戲從入門到精通-16

3D遊戲從入門到精通-16

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                  4、             三角形帶列表
三角形顯示的方式總共分為三種,前面已經學習最多的是三角形列表,現在再來看看三角形帶列表是什麼樣的,這樣有什麼優點呢?這裡顯示圖形如下: 上面的圖形可以看出,只有6個頂點就可以顯示4個三角形,而採用三角形列表的方式,只能顯示兩個三角形。因此採用這種方式就會大大提高渲染效率,減少佔用記憶體空間,減少佔用系統頻寬。 具體的程式如下:   HRESULT hr;    // 建立頂點緩衝區。  if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer(
       2*3 * sizeof(VT_CAIPRIMITIVE),        0, VT_CAIPRIMITIVE::dwFVF,        D3DPOOL_MANAGED, &pVB, NULL ) ) )  {        //建立頂點緩衝區失敗。
       return DXTRACE_ERR( "CreateVertexBuffer", hr );  }    //  VT_CAIPRIMITIVE* pVertices;  if( FAILED( hr = pVB->Lock( 0, 0, (VOID**)&pVertices, 0 ) ) )  {        //鎖住頂點緩衝區。        return DXTRACE_ERR( "Lock", hr );  }    pVertices[0].vPosition = D3DXVECTOR3( -6.0f, -2.0f, 2.0f );   pVertices[0].crDiffuse = D3DCOLOR_COLORVALUE( 1.0, 0.0, 0.0, 1.0 );    pVertices[1].vPosition = D3DXVECTOR3( -4.0f, 2.0f, 2.0f );     pVertices[1].crDiffuse = D3DCOLOR_COLORVALUE( 1.0, 0.0, 0.0, 1.0 );    //  pVertices[2].vPosition = D3DXVECTOR3( -2.0f, -2.0f, 2.0f );   pVertices[2].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 1.0, 0.0, 1.0 );    pVertices[3].vPosition = D3DXVECTOR3( 0.0f, 2.0f, 0.0f );      pVertices[3].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 1.0, 0.0, 1.0 );    //  pVertices[4].vPosition = D3DXVECTOR3( 2.0f, -2.0f, 2.0f );     pVertices[4].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 0.0, 1.0, 1.0 );    pVertices[5].vPosition = D3DXVECTOR3( 4.0f, 2.0f, 2.0f );      pVertices[5].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 0.0, 1.0, 1.0 );      //解鎖頂點緩衝區。  pVB->Unlock();    這段程式先建立6個頂點的緩衝區,然後依次地設定6個頂點的座標和頂點混合的顏色。然後再呼叫下面的程式碼來顯示: m_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);  m_pd3dDevice->SetStreamSource( 0, m_pvbTriangleStrip, 0, sizeof(VT_CAIPRIMITIVE) );  m_pd3dDevice->SetFVF( VT_CAIPRIMITIVE::dwFVF );  m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, m_nTriangleStripCount );   第一行先設定顯示方式為線框圖(D3DFILL_WIREFRAME),採用這種方式,很清楚地看到有多少個三角形被顯示出來。最後一行調DrawPrimitive來顯示,顯示方式是D3DPT_TRIANGLESTRIP方式顯示。   電子書 MM3D 引擎源程式 例子源程式 49 元一套 聯絡人:蔡軍生   聯絡方式: QQ: 9073204 EMAIL: caimouse1976 at sina.com    <script type="text/javascript"  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述