|
|
发表于 2008-9-3 11:35:00
|
显示全部楼层
Re:关于场景实现的问题
1、地图基本上有两种,一种是基于terrain的类似三角洲特种部队的大地图。另一种是基于BSP的地图(65中已完全被淘汰)。如果做赛车,建议使用第一种地图。
如果是62\63\65,你得使用高度图(heightmap)来生成三维的地图,然后对地图进行贴图甚至混合操作,最后形成地形与地面贴图甚至光照图。这方面有很多例子可以参考。
2、3D模型一般分两种,一种是mdl\TVA模型(称为actor),一种是.x .3ds \TVM模型(称为mesh),如果你有赛车的.x或.3ds模型,可以直接在场景中载入。
//先建立:
CTVMesh* mesh1;
mesh1=new CTVMesh();
//65同62一样需要从scene建立:
mesn1=scene1->CreateMeshBuilder("name");
//建立出了并没有形体,必须载入
载入的原形为:
65:
mesh1->LoadXFile(const char* sFilename, bool bLoadTextures = true, bool bLoadMaterials = true);
mesh1->LoadTVM(const char* sFilename , bool bLoadTextures = true, bool bLoadMaterials = true);
62\63
mesh1->Load3DSMesh("box05.3ds",tvtrue,tvfalse,tvfalse,tvtrue,tvtrue);
mesh1->LoadXFile("box05.x",tvtrue,tvfalse,tvfalse,tvtrue,tvtrue);
渲染为:
65:
scene1->RenderAllMesh();
62/63:
mesh1->Render(true);
之后在0,0,0点就会出现你所载入的东西。
至于怎样控制运动,可以参考62\63下的[车在山上跑]例子或使用物理引擎控制你的车模。 |
|