我想在Irrlicht中更改地形大小(宽度+高度),但我没有找到任何功能。我想要一个带有一个纹理的动态地图。我的情况是否使用了错误的模式/类?
目前我有这个:
scene::ITerrainSceneNode* terrain = sceneManager->addTerrainSceneNode("media/terrain-heightmap.bmp", 0, -1,
core::vector3df(0.f, -4.f, 0.f), // position
core::vector3df(0.f, 0.f, 0.f), // rotation
core::vector3df(1.f, 0.f, 1.f), // scale
video::SColor (255, 255, 255, 255), // vertexColor
5, // maxLOD
scene::ETPS_17, // patchSize
4 // smoothFactor
);
terrain->setMaterialFlag(video::EMF_LIGHTING, false);
terrain->setMaterialTexture(0, driver->getTexture("media/terrain-texture.jpg"));
terrain->setMaterialType(video::EMT_DETAIL_MAP);
我试图找到一些用于设置宽度+高度(大小)的setter,但我没有找到任何方法。
答案 0 :(得分:0)
您可以使用setScale更改地形(或任何网格)的比例。
terrain->setScale(vec3df(2.0f, 0.0f, 2.0f));
创建地形时,将比例作为第3个参数传递。因此,调用上面的行将导致您的地形在X轴和Z轴上的大小(拉伸)与您的代码段一样大。请注意,scale参数中的0.0f y值将使您的地形非常平坦,因为它将用于缩放高度贴图中提供的值。