UDKЖурнал

Water Flow For UDK

Автор:

Привет.
Последнее время занимался имплементацией фичи Water Flow для UDK.
И вот наконец-то закончил.
Помимо примеров материалов, в документе содержится достаточно обширное описание процесса создания flow map в Houdini.

Видео с демонстрацией финального результата

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Почитать/скачать саму доку можно здесь.

Скачать весь архив с докой и примерами сцен здесь.

Если что, оригинальный пост на Epic Games Forums.

#flow, #UDK

16 февраля 2013 (Обновление: 8 июня 2015)

Комментарии [12]

#1
0:17, 17 фев 2013

Вообще классно выглядит! Сколько старания приложено! Жаль, по-английски плохо понимаю, придется долго разбираться в доке :)

#2
3:35, 17 фев 2013

redbox
Я правильно понимаю, что ты прочитал о том, как работает Water Flow у Valve, немного подглядел у Naughty Dog, и
сделал примерно тоже самое, но на UDK, попутно создавая пошаговое руководство в pdf? Если да, то очень круто.

#3
13:24, 17 фев 2013

ну да, по их подсказкам сделал по сути просто имплементацию для UDK.

#4
14:18, 17 фев 2013

redbox
Can't find file for package 'Snippets' while loading E:\UDK\UDK-2013-02\UDKGame\Content\Maps\UT3\FlowTest.udk

версия UDK февраль 2013

#5
16:07, 17 фев 2013

мда, ошибочка вышла. перезалил.

#6
19:26, 17 фев 2013

redbox
теперь норм, только тормозит у меня на ноуте.

#7
19:29, 17 фев 2013

redbox
Впечатляет pdf'ка.

#8
23:33, 20 фев 2013

обновил файлы, там минорные фиксы с английским, хотя вряд ли он стал лучше, добавил пару картинок, и сделал небольшое описание в readme.txt как исправить потерянные пути к файлам с геометрией в TestMap.hip, для тех кто с Houdini совсем не знаком...

#9
12:22, 21 фев 2013

А зачем было доку в пдфку пихать, когда всем удобнее было бы на сайте это прочитать - написанное нашим человеком и на нашем языке, а не валвовцами на вражеском? )))

Либо непонятно почему называется "туториал" - его-то, получается, нету ))) Просто опубликовал ссылку на чужую доку и видео. Где тут туториал? 8-)

#10
13:22, 21 фев 2013

это моя дока и видео.

а фигачить сюда 80 страниц... ну опубликуйте...

#11
16:41, 15 апр 2013

Обновление 15/04/2013. Наверно теперь это можно обозначить версией 1.0.

- изменена структура документа, добавлено оглавление, дополнительные картинки, описания, формулы, etc. Все разделы теперь расположены в логичной последовательности.
- исправлена проблема с вращением текстур, теперь вращение не влияет на поток.
- добавлено описание создания потоков в Houdini с помощью кривых (см. Appendix A).
- к ассетам приложена сцена с примером по кривым.
- паки и карта UDK пересохранены в версии February 2013 UDK BETA2.
- ВАЖНО! изменен принцип воспроизведения потоков с флоу мапы.
если раньше флоу мапа создавалась по формуле:
($NX*0.5 + 0.5, -$NZ*0.5 + 0.5, 0)
и домножалась на (1; -1) в шейдере,
то теперь формула:
($NX*0.5 + 0.5, $NZ*0.5 + 0.5, 0)
и на -1 домножается FlowPower.
старый вариант тоже рабочий, но этот немного оптимальнее.

ссылки те же.

Прошло более 6 месяцев
#12
13:40, 23 окт 2013

Мне пришло письмо с вопросом можно ли рисовать flowmap с помощью mesh paint.
Выложу ответ здесь, на случай если кому интересна эта тема.

Этот принцип основан на цветовом представлении векторного поля. И в соответствии со схемой, получается что определенный цвет задает определенное направление потока, а точнее искажения UV координат.

Я думал насчет mesh paint, но там есть несколько проблем, из-за которых я отказался от этой идеи.

Во первых в UDK не получится рисовать направление, проводя кистью в нужную сторону. Кисть там просто рисует цвет.
Это в Houdini можно использовать инструмент Comb чтобы наклонять нормали размахивая кистью как захочется.
Конечно, будь исходники редактора, можно было бы написать свою кисть, с блекджеком и блудницами, но увы...

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

Также из-за того что UV искажается, могут проявляться некоторые артефакты и проблемы.

Вообще текстура должна быть:
- Распакована от -1 до 1
- не быть sRGB

Все это легко достигается при помощи компрессии в NormalMap или NormalMapUncompressed.
Последний кстати дает лучший визуальный результат.

А чтобы это работало правильно, нужно в материале использовать для такой текстуры сэмплер Normal.
А вы не можете использовать mesh paint на семплах типа Normal.

То есть чтобы начать рисовать, вам нужна простая текстура, в компрессии Default, с отключенным sRGB, и вам возможно придется распаковывать ее в (-1;1) уже в шейдере, т. к. непонятно как именно будет записываться в нее рисуемый цвет, если поставить (-1;1) в свойствах текстуры.
И, как я уже сказал, пробовать, переделывать, и снова пробовать...

Есть еще вариант с vertex color, но опять же из-за искажения UV и связанными с ним артефактами, нужно достаточно высокое разрешение сетки.
Valve говорят что flowmap "relatively low resolution", всего 4 текселя/метр, но это заявление немного "relatively".
С нормал мапами еще куда ни шло, но на цветных (диффузных) текстурах артефакты искажения ОЧЕНЬ заметны.
Я использовал flowmap по 1024*1024, и не сказал бы что этого достаточно, а т.к. UDK не поддерживает импорт моделей больше 64К треугольников, все что вам максимум светит это сетка 256*256.

В свете всего этого, вариант с использованием Houdini, в котором уже есть эффекты вортексов, отражения и замедления потока, значительно проще и быстрее.
Вам достаточно просто экспортировать сцену, подставить модели в соответствующие узлы Houdini, поменять несколько параметров и все.

UDKЖурнал

Тема в архиве.