Обновление 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.
старый вариант тоже рабочий, но этот немного оптимальнее.
ссылки те же.
Мне пришло письмо с вопросом можно ли рисовать 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, поменять несколько параметров и все.