-1

我想更改 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);

我试图找到一些设置宽度+高度(大小)的设置器,但我没有找到任何方法。

4

1 回答 1

0

您可以使用 setScale 更改地形(或任何网格)的比例。

terrain->setScale(vec3df(2.0f, 0.0f, 2.0f));

创建地形时,将比例作为第三个参数传递。因此,调用上面的行将导致您的地形在 X 和 Z 轴上的大小(拉伸)是片段中的两倍。请注意,比例参数中的 0.0f y 值将使您的地形非常平坦,因为它将用于缩放高度图中提供的值。

于 2013-10-09T01:57:59.403 回答