*.mesh convert to *.3ds file

22 篇文章 2 订阅
5 篇文章 0 订阅

1. ogre 生成mesh的时候,ManualObject 用mHillStone->begin("", Ogre::RenderOperation::OT_TRIANGLE_LIST);用OT_TRIANGLE_TRIPE可能不支持后面操作

多两个点 mHillStone->triangle(2*i - 2, 2*i - 1, 2*i);mHillStone->triangle(2*i - 1, 2*i + 1, 2*i);
添加面的信息,再保存为mesh格式。


2 用OgreCommandLineTools_1.7.2 把mesh 转换为xml文件


3 用3D.Object.Converter.v4.101 加载xml文件,在保存为3ds max binary mesh 格式
。此工具可以显示模型统计信息。


4 再用3ds max 打开,bool运算。

for(int j = 0; j </* 2*/iStack ; j++)
 	{
 		VEC3 *pV1 = pm->GetVertexByStack(j);
 		VEC3 *pV2 = pm->GetVertexByStack(j + 1);
		VEC3 *pN1 = pm->GetNormalByStack(j);
		VEC3 *pN2 = pm->GetNormalByStack(j + 1);
		fTex1X = (float)j / fStack;
		fTex2X = (float)(j + 1) / fStack;
 		mHillStone->begin("", Ogre::RenderOperation::OT_TRIANGLE_LIST);
a b两点
	
 		for(int  i  = 0; i < iCount; i++)
 		{
			fTexY = (float)i / fCount;
			mHillStone->position(pV1[i].x, pV1[i].y, pV1[i].z);
			mHillStone->normal(pN1[i].x, pN1[i].y, pN1[i].z);
			mHillStone->textureCoord(fTex1X, fTexY);

			mHillStone->position(pV2[i].x, pV2[i].y, pV2[i].z);
			mHillStone->normal(pN2[i].x, pN2[i].y, pN2[i].z);
			mHillStone->textureCoord(fTex2X, fTexY);			

新加两个个三角形
			if (i != 0)
			{
				mHillStone->triangle(2*i - 2, 2*i - 1, 2*i);
				mHillStone->triangle(2*i - 1, 2*i + 1, 2*i);
			}		
			
 		}	

 		mHillStone->end();
 	}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值