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);

Я пытался найти некоторые сеттеры для установки ширины + высоты (размера), но я не нашел никаких методов.

-1

Решение

Вы можете изменить масштаб местности (или любой сетки), используя setScale.

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

Когда вы создаете ландшафт, вы передаете масштаб в качестве 3-го параметра. Таким образом, вызов строки выше приведет к тому, что ваш ландшафт будет в два раза больше (растянут) по осям X и Z, чем в вашем фрагменте. Обратите внимание, что y-значение 0.0f в параметре scale сделает вашу местность довольно ровной, поскольку она будет использоваться для масштабирования значений, представленных в вашей карте высот.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]