首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

mesh世界变换后顶点不变的有关问题

2013-01-06 
求助mesh世界变换后顶点不变的问题大家好1、我用D3DXCreateText创建的一个文字Mesh:m_pTextMesh//创建三维

求助mesh世界变换后顶点不变的问题
大家好

1、我用D3DXCreateText创建的一个文字Mesh:m_pTextMesh

//创建三维文本网格模型
 if( FAILED( D3DXCreateText( g_pd3dDevice, hdc, strVal, 0.0f, fExtrusion, &m_pTextMesh, NULL, NULL)))
 {
  return FALSE;
 }


2、想通过mesh的最大、最小的x,y,z值,来画包围盒。



3、通过世界变换来改变了文字的位置和尺寸,用下面代码重新获得最大、最小的x,y,z值为什么和一开始没有世界变换的mesh顶点坐标相同,求助大家。不知道为什么,有什么方法能得到变换后的mesh最大、最小的x,y,z值。谢谢

VERTEX * pVerts;
 m_pFVFTextMesh->LockVertexBuffer(0, (void**)&pVerts);

 float fxMin = INFINITY,fxMax = -INFINITY;
 float fyMin = INFINITY,fyMax = -INFINITY;
 float fzMin = INFINITY,fzMax = -INFINITY;
 int numVerts = m_pFVFTextMesh->GetNumVertices();

 for (int i =0; i < numVerts; ++i)        
 {            
  D3DXVECTOR3 v = pVerts->pos;
  fxMin = MinFloat(v.x,fxMin);
  fxMax = MaxFloat(v.x,fxMax);

  fyMin = MinFloat(v.y,fyMin);
  fyMax = MaxFloat(v.y,fyMax);

  fzMin = MinFloat(v.z,fzMin);
  fzMax = MaxFloat(v.z,fzMax);

  ++pVerts;     
 }
 m_pFVFTextMesh->UnlockVertexBuffer();

 m_bounding_box.m_min.x = fxMin;
 m_bounding_box.m_max.x = fxMax;
 m_bounding_box.m_min.y = fyMin;
 m_bounding_box.m_max.y = fyMax;
 m_bounding_box.m_min.z = fzMin;
 m_bounding_box.m_max.z = fzMax;

[解决办法]
世界变换矩阵不会改变Mesh中顶点的坐标,绘制的时候才会通过矩阵变换坐标

热点排行