• Increase font size
  • Default font size
  • Decrease font size
  • default color
  • cyan color
  • red color
Деформация terrain в режиме реального времени в Unity3D
Автор: Administrator   
19.01.2012 21:37
Real-time Terrain Deformation Screenshot

Несколько недель назад мне пришла мысль. Можно ли деформировать terrain в режиме реального времени? Например, если произошел взрыв, должна ведь быть яма в terrain? Я решил, что это будет хороший проект, чтобы узнать более «продвинутые» функции ландшафтов в Unity.

Кончилось тем, что оказалось все намного сложнее, чем я думал. Использование маленьких хитростей помогло мне в конечном итоге заставить его работать так, как я хотел.
 
Демо работает следующим образом. Сценарий случайно создает "снаряды", которые попадают быстро на землю. Каждая оболочка имеет onTrigger коллайдера. Если снаряд сталкивается с местностью,на котором компонент TerrainDeformer, он сообщает компоненту, его расположение и силу взрыва. Затем создает партикл взрыва, и удаляет себя.
 
TerrainDeformer затем переводит эту позицию в правильное расположение относительно его рельефа. Немного математики используется для поиска всех высот и alphamap позиции в области воздействия.
 
Текстуру, которая появляется в месте где произошел взрыв TerrainDeformer выбирает из списка текстур. В данном примере он установлен в один, поэтому он будет везде один и тот же.
 
При создании собственных территорий необходимо, чтобы высота местности была выше, чем 0, так чтобы ямы могли быть созданы. Я рекомендую глубину не менее 3. Это можно сделать, установив высоту местности выше трех,для этого нажмите Terrain-> Flatten Heightmap и введите число больше 3-х.
 
Для повышения производительности важно сохранить вашу местность небольшой и не большую высоту. В данном примере высота установлена на значение 33.
 
Текущая версия имеет ограничения, как отсутствие обнаружения края terrain и поддержка нескольких terrain. Это подходит больше для примера, чтобы легче можно было потом довести до ума. 
 
Спасибо, Кэлин за создание текстуры грязи.
 
Чтобы посмотерть демо нажмите здесь.
 
Чтобы получить источник (unitypackage) нажмите здесь.
 
Требования: Unity 2.6 и Detonator Framework.
 
Автор перевода:  Поляков Сергей (специально для http://unity3d.vx0.ru)
 
 

Вход на сайт

Онлайн

Сейчас 19 гостей онлайн

Понравился сайт?


Счетчики

Rambler's Top100

Облако тэгов

Joomla Extensions



Карта сайта