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

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



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

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

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

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

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

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

YouTube

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

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

Vista Pro

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



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



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



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



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

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

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

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




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




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

Сравните (FeatureSize = 1 и FeatureSize = 8):



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




И ещё(FeatureSize = 1 и FeatureSize = 8):



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



Set landscape



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

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



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



Small:



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




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

Fractal roughness



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




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




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

Enlarge section



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



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









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



Smooth



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





Erode



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







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




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

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


Roughen



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


Сглаженный (без Roughen):


После Roughen:



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


Stretch



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





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







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


Экран VistaPro



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

Ландшафт

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



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



Камера



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

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

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




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




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



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



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

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




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




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



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



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

Вкладки



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

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

Комментарии (13)


  1. Hedgehogues
    08.11.2015 11:07

    В следущей части я прикреплю небольшую историю этой программки, а также скажу, зачем эта штука нужна.


    1. AndrewFoma
      08.11.2015 17:38
      +3

      сделайте одолжение, не пишите продолжение, пожалуйста.


      1. Hedgehogues
        08.11.2015 18:18
        -4

        Вам как-то моё продолжение помешает?


      1. Hedgehogues
        08.11.2015 18:25
        -4

        Если Вам не нравится старый софт, который имеет место и вполне юзабелен это же не означает, что он не нравится кому-то ещё?


    1. Lsh
      09.11.2015 14:30

      >зачем эта штука нужна
      Действительно, нафига?


  1. barkalov
    08.11.2015 12:09
    +16

    Такая статья не нужна. По многим причинам. Например:

    • В этом софте с легкостью способен разобраться самостоятельно любой человек, если ему это необходимо. Крутить крутушки и смотреть на изменение картинки — что может быть проще? А читать вашу простыню, приправленную примерами про Вовочек, словами «жмакнем» и прочим разжевыванием очевидных вещей — просто утомительно.
    • «Каждый элемент интерфейса обладает подсказкой. Достаточно подвести к нему курсор, после чего высветится информация в левом нижнем углу», кроме того, у программы есть help.
    • © 1990-1997.

    Скажите, какова целевая аудитория этой статьи? Скольким процентам читателей на GT такая статья может оказаться полезным, по-вашему?

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


    1. Hedgehogues
      08.11.2015 12:20
      -4

      Полагаю, что не очень многим. Но с позволения всемогущего НЛО, я бы попросил разрешения дописать её, ибо в нашем маёвнике это ещё долго продолжаться будет: использование этого софта. А манов по этой проге нет. Так что вполне себе кто-нибудь, да найдётся, либо люди, интересующиеся старыми совтинами. А help, мягко говоря, не очень.

      И потом, люди её кидают в избранное, как я вижу. Значит кому-то она всё-таки нужна!?

      Институт МАИ.


  1. roboq6
    08.11.2015 15:11
    +5

    Судя по «свежести» программы статью следовало назвать «Мертвый друг лучше новых двух.»


  1. Firsto
    09.11.2015 05:02
    +2

    Но ведь есть же куда более современный Terragen.

    Примеры получаемых изображений
    image

    image

    image


    1. Hedgehogues
      09.11.2015 08:15

      Думаю, что данный терраген тоже посмотрю. Но чуть позже.


  1. Corpsemeister
    09.11.2015 13:39

    А еще когда-то была такая программа как Bryce

    UPD. Оказалось, что данный софт скорее жив, чем мертв, не ожидал


  1. Lsh
    09.11.2015 14:28

    Только что читал туториалы про процедурные ландшафты в vue xstream, а затем попал на «это».
    image


  1. Darth_Biomech
    09.11.2015 20:36

    Это конечно интересно посмотреть как генерировали ландшафт в седые времена, но неужели за эти 18 лет (18, Карл!) не нашлось возможности начать изучать что-то… скажем так, посовременнее?