- PVSM.RU - https://www.pvsm.ru -

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 1

Данная статья зародилась в моей голове, после того, как нам выдали курсач по мультимедийным технологиям в универе. «Универ… пф-ф-ф...» — так подумает мой читатель. Да только иногда здесь бывают дельные вещи. Вот, почему.

В курсаче предполагается создание виртуального ландшафта в старенькой программе VistaPro. В силу того, что раньше я ни с чем подобным не работал, я не могу сказать, насколько она функциональная. Но её большой плюс заключается в том, что она крайне проста в использовании (а другие террагены подчас довольно нетривиальны, что может вызвать некоторые трудности. Час же работы может не гарантировать успеха, в отличие от моего антиквариата), а освоить её от и до: разобрать весь функционал можно меньше чем за день не зная до этого ровным счётом ничего о ней. Небольшим, но всё-таки плюсом является совсем малый вес (~3 МБ). Разумеется, сейчас есть много подобных террагенов, которые обгоняют по функциональности VistaPro.

Данная статья претендует на описание сего софта, дабы показать возможности творения и помочь разобраться с программулиной людям, кого данная тема интересует, ибо в сети не очень много информации о VistaPro. Помимо этого интересно, что данная вещь представляет собой архаическую субстанцию 90х годов, которая, может быть использована и сейчас вполне себе неплохо.

Я максимально подробно пишу всё, будто я это делаю для школьника 4-5 лет, ибо сам часто сталкиваюсь с тем, что написано очень заумно, в результате приходится тратить много времени на то, чтобы разобрать: а что же всё-таки написано?.. Конечно, мой читатель может сказать, что слишком большое количество деталей читать бывает слишком скучно и утомительно. Но, пока я остановлюсь именно на таком стиле изложения.

Итак, здесь можно будет найти описание функционала VistaPro, а также иллюстрацию работы большинства опций.

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

Кроме того, я поэтапно создам мирок или два для демонстрации возможностей программулины.

Посмотреть то, что может VistaPro можно, например, тут, на видосике:

YouTube [1]

Что же, начнём.

Скачать сей объект можно здеся:

Vista Pro [2]

Creation. Генерация карт

Для начала, стартанём экзешник. Откроется окно в стиле Windows 98. Это немного пугает изначально. Но потом привыкаешь.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 2

Для того, чтобы не засорять пока что голову всякой чешуёй вроде работы с камерой и т.п. Погенерим, прежде всего, ландшафт, чтобы перед глазами постоянно мелькали картиночки. Может быть это слегка заинтересует моего читателя, после чего он захочет потыркать кнопочки программки и сам её поисследовать.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 3

Итак, выполняем следующие действия.

  • Жамкаем Render, который находится в самом низу.
  • Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 4
  • Картинка получается маленькой и скучной. Поменяем разрешение. Зайдём на боковой панели: Image -> Image size -> Выбираем хорошее разрешение.
  • Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 5
  • Но картинка по-прежнему грустная. Пирамида слишком скучно и одиноко стоит в чистом поле. Теперь заходим в раздел Creation. И нажимаем Randomize seed. Уаля. Мы получили интересненькое.
  • Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 6

Теперь, дорогой читатель, ты умеешь делать небольшой финт ушами для перехода от пирамиды к пирамидам(зачеркнуто), хотя слегка и хаотичным.

Итак, мы научились генерить карту. Для чистоты эксперимента, я открою новый файлик, в котором ничего нет, только чистое поле с пирамидкой. Отседова мы начнём попытки получить что-то ещё.

Все названия кнопочек я буду выделять жирным шрифтом.

Seed value

Под Seed value (Seed value будем везде брать равным 0, либо, в редких случаях другому числу. Чаще всего 1) находится магическая чиселка, которая задаёт некоторое начальное число генерации. Оно появляется случайно при нажатии на Randomize seed. Очевидно, что генерируя ландшафт с одинаковым Seed value, получим одинаковые карты, с разными — разные.

При генерации новой карты, можно действовать двумя методами. Либо нажать Randomize seed, либо активировать поле Seed value и нажать клавишу Enter. В первом случае будет сгенерено новое число Seed value, во втором случае значение не поменяется. Так удобно действовать, когда нужно экспериментировать с ландшафтом для получения одинаковых карт.

Feature Size

Идём далее. Feature size. Данная фитча позволяет сказать, насколько ландшафт будет разреженным. Или по-другому: этим свойством можно задать масштаб. Я возьму разные значения Seed value Например, при Feature size = 1 будет выглядеть так (две следующие картинки созданы для Feature size = 1):

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 7
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 8

При Feature size = 8 так (две следующие картинки созданы для Feature size = 8):

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 9
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 10

Разница очевидна. В принципе, некоторыми махинациями можно преобразовать ландшафт из структуры FeatureSize = 1 в структуру FeatureSize = 8. Но об этом позже. Это осуществляется во вкладке Manipulation:

Сравните (FeatureSize = 1 и FeatureSize = 8):
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 11
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 12

Отрендеренные для тех же значений соответственно:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 13
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 14

И ещё(FeatureSize = 1 и FeatureSize = 8):
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 15
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 16

Отрендеренные для тех же значений соответственно:
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 17
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 18

Set landscape

Рассмотрим Set landscape size. Эта опция задаёт размер мира. Automatic! — это то же самое, что и Small. Не отличается ничем.

Размер мира влиет на максимальное и минимальное значение координат X и Y.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 19

Mega ( С пяток секунд сидели, тупили. Здесь, при рендеренге, комп слегка подвис, поэтому рендерить я буду только на Small, за редким исключением):

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 20

Small:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 21

Кроме того, размер влияет на чёткость структур (чем больше, тем чётче, т.е. масштаб больше), время генерации. Сравните (Feature size = 8) Mega и Small:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 22
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 23

На данном этапе мы формируем поверхность. Фактически происходит работа тектонических процессов.

Fractal roughness

Как задавать высоту гор? Для этого рассмотрим параметр Fractal roughness. Для Fractal Roughness == 100 мы уже видели (смотрите выше). Возьмём теперь 0. Ответ напрашивается. Высота гор равна нулю, значит их просто нет. Плоскость:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 24
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 25

А при Fractal roughness = 1000 наступает ад. Встречайте Гималаи.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 26
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 27

Остановимся на 100. Далее я буду использовать именно это значение.

Enlarge section

Enlarge section — выделение определённого участка и интерполяция (Interpolate) его на всю карту, либо растяжение (Duplicate) его по всей карте. Выбрать интерполяцию или дублирование можно сразу после того, как будет выбрана область.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 28

Интерполяция подразумевает сглаживание грубых участков карты, а дублирование (или растяжение) это действие не выполняет. Для того, чтобы было понятно, в чём отличие, я поставлю Landscape size == Small. На больших картах, а точнее на карте ландшафта, этого эффекта практически не заметно. Сравните (я взял верхний левый угол):

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 29
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 30

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 31
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 32

Тот же участок, только для большой карты:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 33

Smooth

На примере Enlarge section верхнего левого угла с опцией Duplicate, будет отлично видно, как работает сглаживание (Smooth). После многократного нажатия вот что получим:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 34
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 35

Erode

Теперь продемонстрируем ещё одну опцию — эрозия или старение (Erode). Данный процесс выравнивает ландшафт, делает его однородным. Что это собой представляет? Мы запускаем процесс, после чего на карте чёрным цветом маркируются области с одинаковой высотой. Это происходит итеративно. В зависимости от изначальной ситуации это может происходить быстро (гладкий, изреженный острыми горами ландшафт, т.е. старые горы), либо медленно (ландшафт изрежен острыми горами, т.е. молодые горы). Скорость со временем нарастает: чем старше горы, тем сильнее будут заметны эрозийные процессы. Ландшафт получен после сглаживания (Smooth) из предыдущего. Кстати, на больших картах эрозия работает тоже крайне долго. Устаёшь ждать.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 36
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 37

Если сглаживания не проводить (не жамкаем много раз на кнопочку Smooth), то получим нечто такое:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 38
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 39

Получаются огромные плато в горах.

Сглаживание в отличие от эрозии делает гладкими горы, но не делает никаких плато.

Roughen

Но, постойте… А что если некий Вовочка подошёл и испортил наши офигитительские горы, которые мы получили, подбирая, например, Seed value. Скажем он их очень сильно сгладил. В таком случае можно откатиться (право, не до начального состояния), но всё-таки. Это делается с помощью Roughen. Я ещё раз срендерю ландшафт. После чего его сглажу. Здесь получится практически идентичный вышеприведённой карте ландшафт:

Сглаженный (без Roughen):
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 40

После Roughen:
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 41
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 42

Но данная опция не проявляет себя, если на неё жамкать многократно, как например, на Smooth.

Stretch

Теперь жамкнем Stretch. Эффект получается как от Fractal roughness при генерации:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 43
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 44

Ну, и на последок, картинка с Size landscape = Mega:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 45

А теперь немного про вкладку Camera, окошко с ландшафтом и окошко камеры. Но основной упор я сделаю на это в следующий раз.

Экран VistaPro

В программе практически везде и всегда доступны 4 области: ландшафт, камера, параметры, вкладки.

Ландшафт

На карте с ландшафтом есть несколько объектов. Жёлтый квадратик — то место, где находится камера, жёлтый крестик — место, куда она направлена (далее, в разделе создания анимации, я скажу об этом моменте отдельно. Это очень важно для удаления эффекта тряски), две красные линии, ограничивающие угол обзора. Есть два слайдера: по оси Х, и по оси Y (выделены красным), которые позволяют осуществлять навигацию по карте — смещение центра карты вверх и вниз. Также есть маркеры "+", "-" и "=", осуществляющие увеличение, уменьшение масштаба и возвращение в исходное, центрированное состояние соответственно. Помимо этого есть ещё две опции: «C» — центрирование относительно положения камеры (относительно жёлтого квадратика) (следует попробовать сдвинуть камеру в строну, а после этого заюзать данную функцию), «T» — центрирвоание относительно фокуса (взгляда) (относительно жёлтого крестика). Для этого стоит сместить фокус, зажав Place target в разделе Camera, пощёлкать по карте ландшафта, после чего нажать «T»

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 46

На карте с ландшафтом можно найти координаты точки. Для этого подводим мышку в нужное место (на скрине мышку не заметно, но поверьте мне, что она есть на карте). Над окном ландшафта появятся координаты X=* Y=* Z=*.

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 47

Камера

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 48

Камера — это окошко в левом углу. Здесь можно увидеть в первом приближении, что будет срендерено. Это очень удобно, так как рендер занимает некоторое время, а здесь можно примерно представить, что будет видно на картинке.

Крестик в центре окна совпадает с крестиком, который тыркнут на ландшафте — это направление камеры. Для понимания того, что происходит, лучше попробовать что-нибудь поделать на карте и с камерой (Для этого будет идеальным сгенерить рандомную карту).

Рендеринг карты можно локализовать, выделив определённую область. Простите Вашего покорного слугу, но я не удержался и взял заготовленный ландшафт. Он чуть интереснее Пирамиды Хеопса. Сравните:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 49
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 50

Для того, чтобы отследить этот эффект, следует нажать клавишу «BB», после чего выделить область на ландшафте:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 51
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 52

После рендеринга получим:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 53

Чтобы убрать данный эффект, нажмите BB ещё разочек:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 54

Кнопочки "+" и "-" около камеры меняют угол обзора, что непосредственно будет отражаться на изображении перед камерой: выпуклое, сжимающиеся в точку изображение или вогнутое соответственно. На ландшафте также происходят изменения (две красные прямые съезжаются и разъезжаются соответственно).

Смотрим в точку:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 55
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 56

А тут смотрим с широким углом обзора:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 57
Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 58

Есть небольшой баг (возьму заготовленный ландшафт): место, куда указывает жёлтый плюсик на ландшафте не соответствует изображению перед камерой при бесконечно малых углах. Особенно хорошо это видно на границе водораздела: выставляем указатель камеры на ландшафте на землю (крутить камеру можно в разделе Camera -> Place target), максимально близко к воде, после чего делаем фокусное расстояние очень большим (1000+ — долго-долго жмём на "+"), после чего замечаем что камера смотрит на воду, а на ландшафте она сфокусирована на земле. Но это, разумеется, мелочи:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 59

Каждый элемент интерфейса обладает подсказкой. Достаточно подвести к нему курсор, после чего высветится информация в левом нижнем углу, на label:

Старый друг лучше новых двух. Генератор ландшафтов. Часть 1 - 60

Внизу, под параметрами есть две кнопочки, которые доступны из любой вкладки: Render и Display. С одной из мы уже знакомы: Render. С помощью неё мы можем сгенерить ландшафт. Есть также Display. С помощью этой кнопочки можно загрузить последний срендереный ландшафт.

Вкладки

Вкладки представляют собой определённый разделы для моделирования мира. Рассмотрим каждый из них в целом, а затем разберём отдельно:

  • Camera
    Данный раздел едва ли нужно пояснять. Здесь всё о положении камеры. Практически всё, что можно сделать с наблюдателем, можно сделать именно отседова.
  • Light
    Свет — аналогичная ситуация. Солнце, солнечные затмения, освещённость и другие приятности можно найти тут.
  • Sky
    Здесь можно завалить или подправить горизонт, включить облака, сделать тучи, добавить луну, а также поразвлекаться с атмосферой так, как хочется.
  • Terrain
    Снег в горах, деревья, палитра текстур гор и многое другое.
  • Water
    Здесь можно утопить свой мир цунами (плохо, право, топится).
  • Tree
    Кэп.
  • Texture
    Добавить свои или подправить родные.
  • Manipulation
    Игры демиургов — здесь находятся кнопочки, позволяющие править мир целиком (видимо, по-другому и нельязя, только всё и сразу).
  • Creation
    Генерим карту.
  • Placement
    Построй свой город.
  • Image
    Шумы, размеры картинки, а также другие параметры.
  • VR Control
    Виртуальная реальность.
  • Path
    Путь передвижения камеры (данная фишка нужна для анимации).
  • Animation
    Создаём своё видео.

Автор: Hedgehogues

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/3d-modelirovanie/102912

Ссылки в тексте:

[1] YouTube: http://www.youtube.com/watch?v=U6gOygLDaww

[2] Vista Pro: http://download.cnet.com/VistaPro-Renderer/3000-6677_4-10062449.html

[3] Источник: http://geektimes.ru/post/265414/