Добрый день. Я занимаюсь web-разработкой и почти всем, что с этим связано.

Бамп, смещение, и карты нормалей

Для детализации поверхности ваших моделей LuxRender поддерживает bump, displacement и microdisplacement.

Важно помнить, какие единицы измерения использует LuxRender. 1 unit в LuxRender равен одному метру. Поэтому, если вам нужен небольшой рельеф, начинайте со значений 0.01 или даже 0.001.

В отличие от диффузных и спекулярных каналов, а также каналов прозрачности, bump и displacement maps просто используют яркость любой текстуры, а не значение цвета. Если ваша текстура имеет переключатель color/float, не забудьте установить его на «float».

Bump Maps

Bump mapping — это процесс локального переопределения затенения поверхности, основанного на текстуре без изменения геометрии. Таким способом можно создавать множество мелких деталей без изменения излишне сложных моделей.

Bump mapping не имеет накладных расходов с точки зрения памяти и производительности, но, так как в действительности не влияет на геометрию поверхности, подходит только для мелких деталей. В противном случае это может выглядеть очевидно поддельно, если смотреть под углом.

При использовании положительных значений карты рельефа среднее значение яркости принимается за базовый уровень поверхности; более светлые оттенки будут формировать выпуклости, а более тёмные — углубления.

Normal Maps (карты нормалей)

Normal maps — это расширенная версия bump maps, которая может деформировать фиктивную поверхность в любом направлении, а не только вверх или вниз, как это делает bump map. Для использования normal maps в LuxRender создаются специальные текстуры «normal map» в канале «bump mapping». При использовании запечённой карты нормалей (например, из высокополигонального меша) необходимо включить опцию "generate tangents" для этого меша.

В настоящий момент LuxRender поддерживает только карты нормалей касательного пространства.

Displacement (смещение)

Displacement похож на bump mapping, но он изменяет реальную геометрию поверхности объекта, основываясь на текстуре. Дополнительно поверхность объекта может быть подразделена, в результате чего получается более детальная форма.

Единицы измерения для смещения идентичны единицам измерения для bump mapping, где 1 единица равна 1 метру. Лучше начинать с небольших значений.

Поскольку displacement обычно требует очень высокого уровня подразделения, оно является требовательным к памяти. Если это является проблемой, вместо этого вы можете использовать microdisplacement.

Microdisplacement

Microdisplacement — это метод смещения поверхности на лету.

Он устраняет необходимость предварительного подразделения сетки и хранения всех дополнительных полигонов в оперативной памяти, но это означает, что расчёт смещения выполняется каждый раз, когда луч падает на поверхность. Это может снизить производительность, иногда радикально, если используется высокий уровень подразделения.

Работа подразделения Microdisplacement отличается от работы обычного подразделения поверхности, используемого для displacement или сглаживания сетки.

Потребуется 5-20 или больше уровней подразделения для достижения приемлемого эффекта.

Microdisplacement

Комментарии