LevaLeva (levaleva) wrote,
LevaLeva
levaleva

Она вертится! Реалтайм-отражения во вьюпорте.

 Часто возникает вопрос, можно ли настроить отражения на объекте так, как надо, вращая сам объект или камеру и именно во вьюпорте, не дожидаясь рендера, пусть даже самого быстрого чернового. На это есть решения в виде real-time (RT) рендеров, типа VRay RT. Нерационально. Тем более, что есть стандратный максовский способ: применить DirectX материал к объекту с нужной картой отражения. Затруднение состояло в получнеии такой карты, которая применялась бы в этом материале. И с подачи очередных озадачившихся на 3дцентре, нашлось решение, как преобразовать нужную HDRIшку в DirectX формат.

реалтайм отражения во вьюпорте
 
Для этого понадобятся HDRI в раскладке "крест". Если ХДРИшка панорамная (****LL.hdr), то нужно преобразовать в вертикальный крест (Vertical Cross). Проще всего с помощью HDRshop. Крест это таже кубическая панорама, что и требуемая, но расположенная по-другому.
 
Для экспорта в DDS понадобится плагин к фотошопу: NVIDIA Plug-ins for Adobe Photoshop.

Для экспериментя я взял свою некогда созданную "ХДРИшку" (а на деле банальный JPEG) — панорамную картинку. 
реалтайм отражения во вьюпорте 
 Из нее и сделаем кубическую панораму в формате DirectX. Для начала преобразуем в вертикальный крест в HDRIshop'е (Image\Panorama\Pan.Tranfsormations). Далее собираем из креста горизонтальную шестиквадратку, соотношение 1:6 по следущему принципу:
 
реалтайм отражения во вьюпорте 
реалтайм отражения во вьюпорте
(квадрат 6 перевернуть на 180°) 
 
Сохраняем в формат DDS в режиме RGB.
реалтайм отражения во вьюпорте 
 
Не будучи специалистом в форматах DirectX, при выборе формата сохранения я ориентировался по битности. Кокретно эту сохранил в "5.5.5 RGB 16 bpp | unsigned". Внимание! Файл должен быть строго пропорции 1:6, иначе будет выдавать ошибку.
Далее в максе создаем новый материал DirectX Shader, тип StandardFX.fx и в слот Reflection (не забудьте включить!) кидаем нашу карту DDS. Назначем на объект и наслаждаемся реалтайм-отражениями! 
 реалтайм отражения во вьюпорте 


Опускаю проблемы перевода 16-32 битного диапазона яркостей ХДРИ в 8-битный.
Сохранить 16-32 бита в DDS можно, но бесполезно в этом случае, ибо прелести ХДРИ во вьюпорте не нужны.
Возможны другие решения, о них расскажут программисты DirectX.
Очевидно, что мною изобретен велосипед.
Спасибо участникам ветки http://3dcenter.ru/forum/index.php?showtopic=102018 за мысли и направления.

Файлы: max2008+карта "ll_env01.dds"
Tags: 3d, tips&tricks
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments