用3DXI导出顶点数据的代码段

这段代码展示了如何从3DXI文件中导出顶点的位置、法向量、纹理坐标和皮肤信息。通过遍历面和顶点,获取每个顶点的相关属性,并转换为所需格式。对于多纹理的情况,遍历所有纹理地图,计算每个纹理的坐标。同时处理skinned mesh,获取骨骼ID和权重。
摘要由CSDN通过智能技术生成

 for each face....

  FaceEx *pFaceEx = pGameMesh->GetFace(faceId);

 // 得到位置
 int vertexId = pFaceEx->vert[faceVertexId];
 Point3 vertex;
 if( pGameMesh->GetVertex(vertexId, vertex) )
  pVertexData->m_position = vertex;

 // 得到法向量
 int normId = pFaceEx->norm[faceVertexId];
 Point3 normal;
 if( pGameMesh->GetNormal(normId, normal) )
  pVertexData->m_normal = normal;

 // 得到纹理坐标
 // mapchannel代表一层纹理坐标, 如果mapchannel个数为1,则直接使用GetTexVertex()函数
 // 否则就遍历所有的TextureMap,计算本TextureMap的纹理坐标
 if( pGameMesh->GetActiveMapChannelNum().Count() == 1 )
 {
  int texCoordId = pFaceEx->texCoord[faceVertexId];
  Point2 texCoord;
  if( pGameMesh->GetTexVertex(texCoordId, texCoord) )
   pVertexData->AddTextureCoordinate( texCoord.x, 1.f - texCoord.y );
 }
 else
 {
  IGameMaterial *pGameMaterial =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值