|
|
我是一个 1024+1*1024+1 的地形
void render{
LPDWORD pI;
if( FAILED( m_pIB->Lock( 0, (m_cxDIB-1)*(m_czDIB-1)*2 * sizeof(TRIINDEX), (void**)&pI, 0 ) ) )
return E_FAIL;
m_nTriangles = m_pQuadTree->GenerateIndex( pI,m_pvHeightMap,m_zFrustum,0.05f ,&index);
m_pIB->Unlock();
_Render();
}
每次渲染都会创建一个索引缓冲 然后生成索引m_cxDIB,m_czDIB = 1025
那么我渲染的时候 产生了一个 缓冲过大的问题
m_pd3dDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0, cxDIB*czDIB , 0, m_nTriangles );
cxDIB*czDIB = 1025*1025 比显卡缓冲还大
我将 cxDIB*czDIB 改变 成 索引数 大概50000个左右 性能提高了 可是 顶点索引错了 m_nTriangles 里的顶点与设置50000个大小的缓冲后 里面索引不对, 如何解决??? |
|