Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Вклады
                Кубы - Структура Блочного Мира
                    Инструменты
                        Карта высот

Карта высот

Опубликованно: 25.06.2017, 20:26
Последняя редакция, Andry: 25.06.2017 20:49

Большинство из вас узнают термин «карта высот» — это изображения (обычно градиент серого), которые описывают ландшафт. Каждый пиксель является точкой на поверхности: чем ярче пиксель, тем выше рельеф в этом месте. Легко, да?

«Кубы предлагают способ загрузки этих карт высот для создания вашего блочного мира. Вы указываете изображение, фреймворк загружает его и добавляют блоки, которые соответствуют ему.

Загрузка карт высот

При задании карты высот вы указываете фреймворку, где нужно установить блоки и как их масштабировать. Например, давайте перестроим Австралию в нашем блочном мире:

//Создадим блочный ландшафт (куски 7x1x7)
BlockTerrainControl blockTerrain = new BlockTerrainControl(new Vector3Int(7, 1, 7));

//Укажите расположение, пути к карте высот, максимальную высоту и класс блока
//(См. Карту высот справа)
blockTerrain.setBlocksFromHeightmap(new Vector3Int(0, 1, 0), "Textures/cubes/heightmap_australia.jpg", 10, CubesTestAssets.BLOCK_GRASS);

//Добавление блока рельефа к узлу
Node terrainNode = new Node();
terrainNode.addControl(blockTerrain);
rootNode.attachChild(terrainNode);

После запуска этого кода (и добавления хороших эффектов воды и теней :P) вы должны увидеть следующее:

test_australia

Важные заметки

  • Размер вашей карты высот определяет, насколько велика (X, Z) ландшафта (1px = 1 блок)
  • Самый высокий блок будет на высоте (StarrY + MaximumHeight)
  • Черные пиксели (R|G|B = 0|0|0) означают, что ни один блок не будет установлен

Дальнейшие улучшения

  • Вы также сможете масштабировать загруженные блоки по оси X и Z
  • Можно будет указать загрузчик, который выбирает «подходящий тип блока, зависящий от местоположения

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.