×
Меню
Индекс

Текстурный эффект получение эффекта густого тумана

 
Делаем тот самый густой прегустой туман полностью заливающий модели и главное!
Создающий полное ощущение объемности оного!
 
Примечание.
Надо полагать, что при использовании МВСЕ, этот эффект, можно накладывать на целую игровую сцену, включая игрока и НПС.
Либо использовать в качестве полно экранного эффекта.
Добавив к камере игрока, дополнительный шейп, так же, как это делает тот самый "сплешскрин" урона, заливающий экран красным цветом.
Т.е. эффект можно проецировать, как на сцену, так и на локальный шейп работающий в качестве фильтра только на экране.
Однако, в этом случае, результат будет более "плоский", т.к. не будет учитывать геометрию сцены.
См. здесь. скриншот с клоуном.
 
Но для начала, попробуем создать тестовую сцену в виде локального ниф файла!
 

В качестве подопытного можно взять любую модели и добавить в нее еще несколько новых деталей, дабы вполне ощутить влияние эффекта.
Например, взять модель Кальдерской комнаты и добавить туда; стол, стул и еще по мелочи.
Но можно обойтись и любой простой моделькой, тарелкой например.
Здесь, использовали экспорт объектов  в МАХ, с равным успехом можно использовать Блендер, или обойтись нифскопом, не важно.
Эффект будет добавляться только средствами Нифскопа.
 
Получив желаемую конфигурацию файла, оптимизируем ее!
"Spell->optimise->combine properties", проверяем корень файла, так чтоб в нем была только одна нода.
Т.е. выделив корень файла, niNode0 ->Attach Parrent->NiNode.
Получаем две ноды.
Корень и в нем еще одна, все прочие детали находятся уже в ее составе.
Теперь внедрим еще одну ноду, на которую и наложим текстурный эффект.
ПКМ по корню файла; Node->Attach Node->NiNode.
ПКМ по этой новой ноде; Attach Effect -> niTextureEffect
Все настройки оного (пока что) оставляем по умолчанию.
Далее, указываем номер эффекта в Effect Count 1ой ноды (OldRootNode).
 
Т.е. получаем три ноды, просто для удобства работы.
0 - корень файла.
1 - нода с объектами и на которую будет воздействовать текстурный эффект.
2 - нода в которой эффект находится на правах наследника. Здесь это нода номер 221.

В качестве текстуры эффекта прописать...
Текстуру означенного вида.
- эту текстуру можно взять в архиве файлов к заметкам.
- либо создать самим. Формат .TGA, разрешение выставить 512. Оригинальная текстура 64х64.
- фон прозрачный!
- можно использовать и .DDS формат. DXT5 или ARGBA32. Т.е. градиент должен быть мягким.
Но придется дополнительно подбирать значения для альфа канала.
Так, чтобы текстура была не слишком прозрачной, но и не слишком светлой.
 
.tga
.dds
Цвет выбрать по вкусу, сейчас важно только градиент и его положение "из угла".
 
Т.е. для первого "опыта" с туманом, используем текстуру максимально приближенную к оригиналу, который приводится в справке.
Т.е. создаем текстуру с градиентом прозрачности от угла. 
 
Создав текстуру прописываем ее в настройки текстурного эффекта.
Сохраняем модель.
Идем в редактор, прописываем модель и видим примерно следующее.
Сцена залита "веселеньким" (у нас) розовым фоном.
 
Что же, переходим к сути!
Меняем положение эффекта в сцене.
В этой заметке, будем менять, это, в настройках самого эффекта, а не в его ноде, как было отмечено в данной заметке.
 
В тестовом файле, были использованы следующие настройки:
- положение в сцене + 40 по оси Z
- поворот Y 90*, это сбоку по отношению к модели.
- размер 2.0, это будет влиять на заполнение сцены туманом далее.
- Clamping - CLAMP_S_CLAMP_T (это важно!)
- Type - FOG_MAP (собственно туман, да)
- Coordination - PARALLEL, это создаст более равномерный туман.
*следует учитывать размер сцены, здесь это комната 512х512х256, отчего значения смещения эффекта устанавливаются в ХХ.
*т.е. следует учитывать размер объектов с которыми идет работа.
Уже интереснее, особенно если учесть, как текстура меняет плотность в зависимости от приближения камеры.
Но, то что увидели, конечно занятно, но не этого мы добиваемся!
Об этом было много сказано здесь.
 
Едем дальше!
- добавим смещение по X -220, это передвинет эффект из угла комнаты, где он находился сначала.
- повысим Scale, именно это отвечает за плотность тумана, в данном случае.
- Model Projection Transform 1.0, 0.5, 0.5
X - дает смещение вперед назад.
Y - повысит рассеивание по высоте...
Z - здесь никак себя особенно не проявляет.
Если выставить Model Projection Transform Y 3.0 туман рассеется еще сильнее.
Scale очень сильно влияет на плотность тумана!
При этом, поворот и позиция будут влиять на область заполнения туманом!
CG_WORLD_PERSPECTIVE "заметно" изменило результат, теперь придется заново подбирать параметры поворота и положения.
Впрочем... не об этом сейчас речь.
 
Ах да, конечно же эффект можно (и здесь это будет работать) упаковать в Billboard ноду.
Другой вопрос, насколько хорошим будет результат.
А в этом случае, билборд нода, не дает эффекта, что "интересно".
 
 
Что же, перейдем к тонким настройкам эффекта?
Для этого прочитать вот этот раздел и внести означенные, вот здесь, правки.
 
Т.е. смотрим на что примерно влияет матрицы эффекта и каким правки нужны для Nif.xml, чтобы правильно увидеть и отредактировать.
Теперь у нас появилась возможность повлиять на матрицу проекции эффекта более тонко, чем это возможно без редактирования Ниф.хмл файла.
 
Меняя значения матрицы на более низкие, можно добиться большей локализации эффекта.
 
Примечание.
Здесь, также внесены дополнительные изменения в разделы Scale, translation и Rotation.
Что позволило придать еще большую глубину эффекту тумана.
 
Примечание.
В основном используется только два значения матрицы.
X1 и Y2
Z3 - не определено на что воздействует.
При этом, чем ниже значение, тем точнее эффект.
 
Примечание.
Дефолтный вид матрицы:
1.000
0.000
0.000
0.000
1.000
0.000
0.000
0.000
1.000
 
 
Примечание.
Получить значения матрицы отличные от дефолтных, можно через фонарики МАХа. Spot и Direct.
Для direct, также, всегда активируется раздел Model Projection Transform.
Нормальный масштаб, изменены значения в матрице.
Это общий вид на эффект.
Стены и пол комнаты были увеличены на Scale 45.
Дабы видеть общий вид эффекта, так сказать.
Т.е. смещение данного значение, позволит (в данном случае) подрезать проекцию тумана снизу.
Обрежет эффект на половину.
В сочетании с Y1, даст поворот срезу по диагонали.
Т.е. игра со значениями матрицы, может привести к "неожиданным" результатам.
 
Примечание.
Сама "игра", довольно очевидна, сменили значение поглядели в редакторе, снова сменили.
И так далее, до достижения желаемого результат.
 
Влияет на поворот или на плотность?
Результат действительно "странный"...
 
Т.е. влияние масштаба текстуры на проекцию.
 
 
Не определено, на что влияют эти параметры матрицы и Трансформации.
Это вариант с использованием в основном, только матрицы.
Т.е. можно (в принципе) использовать только матрицу и не менять положение эффекта в разделе translation rotation.
 
Здесь изменена только текстура.
С .Tga, на .DDS ARGBA32. Эффект стал более разреженным за счет более темного Альфа канала.
 
Освещение выключено.
Добавление еще одного эффекта текстурного в режиме LIGHT, показало не лучший результат.
Проступили полигоны на ветках елки, где использовались альфа свойства.
Но, это можно обойти, через добавление дарк, или декаль карт.
Текстура заменена на обычный градиент с нижнего края, а не из угла.
 
Финальный вид с фиолетовой текстурой тумана.
 
Как-то так, можно получить рассоверный густой туман непосредственно в ниф файлах. ^-^