我有一个加载高度图的程序,然后使用三角形列表方法将顶点排序到数组中,我的问题是如何将其更改为三角形条带?我希望它是一个条带,所以第一行从左到右,第二行从右到左等等,使用 for 循环。
到目前为止,我的 trianlge 列表方法的代码(未显示高度图加载器或顶点数定义,还显示了法线计算器,但我不需要任何帮助来调整它):
for( int l = 0; l < m_HeightMapLength; ++l )
{
for( int w = 0; w < m_HeightMapWidth; ++w )
{
if( w < m_HeightMapWidth-1 && l < m_HeightMapLength-1 )
{
/*v0 = m_pHeightMap[mapIndex];
v1 = m_pHeightMap[mapIndex+m_HeightMapWidth];
v2 = m_pHeightMap[mapIndex+1];
v3 = m_pHeightMap[mapIndex+m_HeightMapWidth+1];
D3DXVECTOR3 vA = v0 - v1;
D3DXVECTOR3 vB = v1 - v2;
D3DXVECTOR3 vC = v3 - v1;
D3DXVECTOR3 vN1;
D3DXVec3Cross(&vN1, &vA, &vB);
D3DXVECTOR3 vN2;
D3DXVec3Cross(&vN2, &vB, &vC);*/
//D3DXVec3Normalize( &vN1, &vN1);
//D3DXVec3Normalize( &vN2, &vN2);
//T Left, Bot Left, T Right, T Right, Bot Left, Bot Right
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex].x, m_pHeightMap[mapIndex].y, m_pHeightMap[mapIndex].z), MAP_COLOUR, D3DXVECTOR3(vN1.x, vN1.y, vN1.z));
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex + m_HeightMapWidth].x, m_pHeightMap[mapIndex + m_HeightMapWidth].y, m_pHeightMap[mapIndex + m_HeightMapWidth].z), MAP_COLOUR, D3DXVECTOR3(vN1.x, vN1.y, vN1.z));
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex+1].x, m_pHeightMap[mapIndex+1].y, m_pHeightMap[mapIndex+1].z), MAP_COLOUR, D3DXVECTOR3(vN1.x, vN1.y, vN1.z));
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex+1].x, m_pHeightMap[mapIndex+1].y, m_pHeightMap[mapIndex+1].z), MAP_COLOUR, D3DXVECTOR3(vN2.x, vN2.y, vN2.z));
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex + m_HeightMapWidth].x, m_pHeightMap[mapIndex + m_HeightMapWidth].y, m_pHeightMap[mapIndex + m_HeightMapWidth].z), MAP_COLOUR, D3DXVECTOR3(vN2.x, vN2.y, vN2.z));
//m_pMapVtxs[i++] = Vertex_Pos3fColour4ubNormal3f(D3DXVECTOR3( m_pHeightMap[mapIndex + m_HeightMapWidth+1].x, m_pHeightMap[mapIndex + m_HeightMapWidth+1].y, m_pHeightMap[mapIndex + m_HeightMapWidth+1].z), MAP_COLOUR, D3DXVECTOR3(vN2.x, vN2.y, vN2.z));
地图索引++;
for循环是我将其更改为条带的主要问题,我已经在纸上绘制了顶点,所以这是我的主要问题,任何见解都非常感谢。