改变地形大小(宽度+高度)

Irrlicht change terrain size (width + height)

本文关键字:宽度 高度 改变      更新时间:2023-10-16

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

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

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

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

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