×
Menu

Texture Effect - how to create fake mirrors

 
Играем в вОмпира, или как расширять красоты игры!
 
Тут два метода.
Первый описан тут.
Фактически, можно обойтись и без 3д МАХа, и нифскопа.
Но некоторые объекты могут требовать обработки для получения правильного перевернутого отражения.
 
Собственно, создаем полупрозрачную поверхность, за нее копируем зеркально перевернутые модели.
На поверхность кидаем эффект блеска с картой Бампа и декалей, для создания некоторой потертости по краям, если нужно.
Получится очень живенькое зеркало пола.
Со стенам будет сложнее...
Хотя если использовать капсулы и скрипты, благовременно смещающих капсулу от столкновения с игроком, это вполне возможно уместить и в небольшие помещения.
См. Expedition to Mzelthuand
https://www.nexusmods.com/morrowind/mods/45229?tab=images
Таким образом, в плагине, организовано отражение помещения в окне портала.
При входе в портал, игрок, БЕЗ загрузки области оказывается в увиденном помещении.
Т.е. он перемещается скриптом в приделах текущей локации.
 
Поправка (от 06 2020).
Не прошло и 10 лет с момента тех тестов с отзеркаленными объектами (это был 2014ый осень если что) и создание порталов в Экспедиции в Mzelthuand (2017 осень), как им в помощь пришли свойства трафарета!
Которые позволяют прятать слона посреди комнаты, в прямом смысле.
Т.е. используя трафареты, можно размещать цели для отражение в любом месте сцены.
Игрок не будет видеть их находясь прямо в них!
А SwitchNode позволит проходить через такие объекты, как через воздух.
При этом, скрипты не требуются, только правильно настроенные свойства трафаретов.
Анимированные ворота.
Внушительно отверзаются в удалении...
Если не получается клонировать игрока, то можно скриптом размещать под игрока "тень"!
Всяко лучше чем ничего.
Из минусов:
- некоторая потеря фпс.
- нельзя использовать воду. Т.е. вода не должна закрывать пол, иначе прозрачность теряется.
- невозможно разместить в маленьком объеме. *без свойств трафарета, если они используются, то возможно.
 
 
В теории, также можно добавить и отражение игрока, клонировав его "за стекло".
Попробовать провернуть, это, посредством шаманства со скриптами МВСЕ 2.0 разместив "за стеклом" точную копию игрока, которая будет проигрывать анимации в такт его движениям.
Но только за стену, а не под пол, движок не дает возможности, переворачивать "живые" объекты кверху ногами.
Покрайней мере, нормально перевернуть НПС\Существа не получалось.

Второй метод.
Проще, доступнее и лучше для фпс.
Но не столь "реалистичен".
 
Достаточно повесить на поверхность объекта текстурный эффект, с текстурой полученной из игрового скриншота.
Далее разместить "зеркало" так, чтобы "отражение" максимально совпало со своим "оригиналом".
Это скриншот сделан в редакторе, но не суть.
А так это выглядит на модели.
Немного бампа для эффекта мыла.
Настройки.
 
NiTextureEffect должен быть в режимах:
Texture Filtering -> FILTER_TRILERP (могут быть другие режимы)
Texture Clamping ->WRAP_S_WRAP_T (это важно для правильной проекции изображения!)
Texture Type -> EFFECT_ENVIRONMENT_MAP или EFFECT_FOG_MAP (влияет на заметность эффекта)
Можно использовать и EFFECT_PROJECTED_LIGHT, но для получения хорошего эффекта потребуется поправить:
Unknown Vector = Z -1
А также использовать светлую текстуру на базовом слоте.
Иначе эффект будет неразличим.
Фог и Энвиромент позволяют использовать черный фон.
И самое главное!
Coordinate Generation Type->CG_SPECULAR_CUBE_MAP.
Собственно и вся премудрость.
Берем поверхность, добавляем эффект, меняем Coordinate Generation Type на SPECULAR_CUBE и радуемся.
LIGHT и Clipping Plane = 0
LIGHT и Clipping Plane = 1
Свет выключен.
LIGHT и Clipping Plane = 1
Свет включен.
 
Примечание.
Собственно доступны только два варианта, создания "зеркал", увы.
Более продвинутые техники создания текстурных эффектов, также, в текущей версии движка, нам не доступны.
Не поддерживается в полной мере кубический режим текстурных эффектов, невозможно наложение шейдеров на поверхности через ниф файлы.
Полностью не поддерживает кубические карты текстур.
Равно (по имеющимся данным), движок этой версии, не умеет правильно работать с камерами в ниф файлах. Либо, еще не все раскопали.
Что не позволяет использовать рендерные текстуры в полном объеме.
Впрочем, даже имеющегося арсенала, хватает для создания красивых и выразительных эффектов.