Детальная реакция для растительности

Материал из CryWiki Russia

(Различия между версиями)
Перейти к: навигация, поиск
(Викификация. Не правильное определение категории)
 
Строка 20: Строка 20:
Перед тем как мы начнём какие-либо рисования вершин, мы должны убедиться, что у нас имеется mesh с правильной тесселяцией. Как здесь:
Перед тем как мы начнём какие-либо рисования вершин, мы должны убедиться, что у нас имеется mesh с правильной тесселяцией. Как здесь:
-
[[File:Mesh top.jpg|RTENOTITLE]]
+
[[Файл:Mesh top.jpg|RTENOTITLE]]
А вот ниже следующий не правилен. Он хаотичен. Он испортит нам правильное изгибание:
А вот ниже следующий не правилен. Он хаотичен. Он испортит нам правильное изгибание:
-
[[File:Mesh top wrong.jpg|RTENOTITLE]]
+
[[Файл:Mesh top wrong.jpg|RTENOTITLE]]
Перед началом работы посмотрите, как должна выглядеть сцена:
Перед началом работы посмотрите, как должна выглядеть сцена:
Строка 30: Строка 30:
-
[[File:Plant before detailbending creation.jpg|RTENOTITLE]]
+
[[Файл:Plant before detailbending creation.jpg|RTENOTITLE]]
Строка 40: Строка 40:
-
[[File:Vertex cannel display.jpg|RTENOTITLE]]
+
[[Файл:Vertex cannel display.jpg|RTENOTITLE]]
Строка 48: Строка 48:
-
[[File:Blue.jpg|RTENOTITLE]]
+
[[Файл:Blue.jpg|RTENOTITLE]]
Строка 56: Строка 56:
-
[[File:Red.jpg|RTENOTITLE]]
+
[[Файл:Red.jpg|RTENOTITLE]]
Строка 64: Строка 64:
-
[[File:Green.jpg|RTENOTITLE]]
+
[[Файл:Green.jpg|RTENOTITLE]]
Строка 72: Строка 72:
-
[[File:Конечный вид.jpg|RTENOTITLE]]
+
[[Файл:Конечный вид.jpg|RTENOTITLE]]
Строка 83: Строка 83:
;p_draw_helpers 1
;p_draw_helpers 1
-
:Показывает физикализированные сетки.
+
: Показывает физикализированные сетки.
;e_debug_draw 1
;e_debug_draw 1
-
:Показывает используемую вашим объектом память текстур и сетки.
+
: Показывает используемую вашим объектом память текстур и сетки.
Чтобы отключить их, замените 1 на 0.
Чтобы отключить их, замените 1 на 0.
Строка 91: Строка 91:
== См. также ==
== См. также ==
-
*[[Реакция на прикосновение]]
+
* [[Реакция на прикосновение]]
-
*[[Настройка деревьев]]
+
* [[Настройка деревьев]]
-
*[[Использование инструмента Vegetation]]
+
* [[Использование инструмента Vegetation]]
-
*[[Процедурное разрушение 3D-объектов]]
+
* [[Процедурное разрушение 3D-объектов]]
-
<br/>[[Category:Официальная документация:Создание ресурсов:Основы|Официальная_документация:Создание_ресурсов:Основы]] <br/> <br/>
+
<br />[[Категория:Официальная документация:Создание ресурсов:Основы]] <br /> <br />

Текущая версия на 18:52, 10 марта 2012

О статье
АвторAndreyFilantrop.
СложностьСредняя
ТребованияCrysis Mod SDK 1.2; Sandbox 2; 3d max 8.
Дата добавления01/02/11



Содержание

Детальная реакция для растений

Далее по тексту для удобства чтения используется термин «детальный изгиб» и/или сокращение «ДИ».

В статье описывается механизм создания детального изгиба для растительности, который мы замечаем, как реакцию растений в Crysis, случающуюся из-за воздействия на них ветра. Цвет вершин (Vertex) модели контролирует силу влияния на объект ветра. ДИ является специфической шейдерной функцией, доступной в материале модели для шейдера растительности Vegetation. ДИ для вашего растения активируется в редакторе материалов, в свитке Shader Generation Parameters параметром Detail bending.

Обратите внимание, что изгиб автоматически доступен для всех объектов размещенных с помощью инструмента Vegetation которые имеют параметр Bending=1 в своих свойствах, то есть во всех случаях, когда параметр Bending > 0, который находится непосредственно в свойствах самого вашего объекта панели RollUpBar в Sandbox 2. Вы можете размещать такие различные объекты как камни, мебель, дома и так далее с помощью инструмента Vegetation, и они будут деформироваться согласно вектору ветра в Environment->Wind Vector, если вы не установите в их параметрах Bending=0. ДИ — это более красивая, более контролируемая форма изгиба, которая не обязательно деформирует весь объект. Если вы обратите внимание на кусты в Crysis, то увидите, что их движения похожи на движения растений в реальной жизни, то есть их листья колеблются в различной амплитуде, при этом часть ветки, которая ближе к стволу (центру), практически не двигается, в то время как самая дистальная часть веток (кончики веток с листьями), наоборот, колеблются от ветра сильнее всего. Также и сами листья широколистных растений по краям колеблются более, чем центральные линии этих листьев.

Не детальный изгиб.gif
Без детального изгиба
Детальный изгиб.gif
С детальным изгибом


Установка в 3D Studio MAX

Предполагается, что вы попали на эту страницу, когда у вас уже имеется сделанная в 3 d max модель и применен один из UV модификаторов, то есть модель растения готова к экспорту в Sandbox 2.

Перед тем как мы начнём какие-либо рисования вершин, мы должны убедиться, что у нас имеется mesh с правильной тесселяцией. Как здесь:

RTENOTITLE

А вот ниже следующий не правилен. Он хаотичен. Он испортит нам правильное изгибание:

RTENOTITLE

Перед началом работы посмотрите, как должна выглядеть сцена:


RTENOTITLE


На ней имеется маленькое (у меня почему-то синее)  ущербное в центре — это моё растение (его геометрическая часть, которая видна в игре), зеленый бокс — это proxy_bending прокси, о котором пойдет речь в статье про изгибы от прикосновений, красный бокс — это obstruct_Ai прокси, о котором упоминается в статье про базовый экспорт растительности. Оба эти прокси естественно входят в состав ОДНОГО ЕДИНСТВЕННОГО объекта, который у меня называется zelenaya_botva.Однако перед началом работы с ДИ, отщепите от модели эти два бокса и спрячте (ну я так делаю), чтоб в сцене осталось только сама геометрия растения с материалом (у меня нет текстур — потому что я поступаю плохо, но у вас они уже должны быть наложены). Оба бокса по окончанию нашей работы с ДИ надо будет прикрепить обратно.

Когда всё готово, нам нужно обратиться к Vertex Channel Display в свойствах объекта Object Properties, то есть в Object Properties/General/установить галочку в Vertex Channel Display. Теперь наш объект выглядит, как будто у него нет затенений. Чтобы видеть только цвет вершин, мы устанавливаем белый материал:


RTENOTITLE


Теперь мы назначаем первый vertex color modifier (модификатор цвета вершин как на рисунке) модификатор и красим целый объект черным. Первый модификатор для движений каждого листа вверх и вниз. Для этого мы используем чистый синий цвет. Очень важно чтобы у нас был 100 % чисто синий без примеси красного или зеленого. 255 синий означает, что здесь у нас нет изгибания. 0 синий означает самое сильное изгибание. Таким образом, для этого объекта мы можем выбрать средние вершины vertexes и перейти к плавному выделению soft selection в vertex paint меню. Мы выбираем значение таким образом, чтоб у нас было плавное выделение soft selection вдоль всего объекта за счет выбора только центральных вершин vertexes. Теперь мы добавляем 255 синий к этому выделению и получаем такой результат:


RTENOTITLE


Теперь мы назначаем ВТОРОЙ (а не заменяем старый!) модификатор vertex color modifier который представляет нерегулярное изгибание краёв каждого листа. Сначала мы разрисовываем всё черным. Потом мы выбираем наружные вершины каждого листа и красим их 255 красным, что означает здесь максимальное изгибание. Потом мы берем вершины на один ряд ближе к центру и даём им 128 красный для более слабого изгибания. Для получения нескольких более разнообразных вариаций в этом изгибании мы можем взять некоторые наружные вершины и назначить им 220 красный. Наиболее важная вещь здесь, это оставить срединную линию абсолютно черной и использовать для покрашенных вершин только чисто красный.


RTENOTITLE


Наш последний цвет — зеленый. Мы назначаем третий модификатор vertex color modifier (не удаляйте два предыдущих) и переходим в element режим в модификаторе. Теперь мы выделяем наш первый лист и красим его 255 зелёным (снова только зелёным, никакой примеси красного или синего). Затем рисуем следующий лист 220 зеленым, следующий 190 зелёным, следующий 170 и т. д. Не важно иметь точные значения, просто контролируйте, чтоб использовалось много разных зелёных. Этот цвет говорит листьям начинать изгибаться в разное время, короче чтоб не все одновременно наклонялись то вниз то, вверх.


RTENOTITLE


Если это сделано, мы устанавливаем красный и зеленый модификаторы в режим «add» («добавить» — прим.переводчика) в vertex paint диалоге. Для получения этого результата (когда программа будет запрашивать «Are you sure you want to continue?» скажите «так а зачем ещё я вообще-то столько времени тогда здесь парился по твоему!?, конечно хочу!» и нажмите Hold/Yes):


RTENOTITLE


Последний шаг в 3D Studio MAX это сохранить нашу работу и экспортировать файл. Убедитесь, что у вас имеется куча backup файлов, которые автоматически генерируются в одной из ваших папок в директории 3 D max, или скиньте куда-нибудь отдельно сами, перед тем, как вы collapse (сворачиваете) стек, чтобы вы смогли изменить что-либо если что-то не правильно в цветах вершин. Когда все свернёте, нажав правой кнопкой мыши collapse all, а затем в этом окне Hold/yes на одном из трёх модификаторов, растение останется разноцветным. Выньте из небытия ранее спрятанные оба прокси элемента и присоедините к основной геометрии. Оба прокси вдруг побелеют. У меня так по крайней мере. Чтоб удобнее было, поставьте в свойствах properties объекта see-through. Потом переходите, если конечно вам это необходимо, к непосредственно экспорту или созданию реакции изгибания растения при прикосновении (это в другой статье).

Отладка

Эти консольные команды вы можете использовать для отладки ваших ресурсов в редакторе:

p_draw_helpers 1
Показывает физикализированные сетки.
e_debug_draw 1
Показывает используемую вашим объектом память текстур и сетки.

Чтобы отключить их, замените 1 на 0.

См. также