Запечка света

· 401 words · 2 minute read

Необходимый плагин: SimpleBake

Оставляем только Special bakes -> Lightmap. Добавляем объект, в который хотим запечь освещение:

Склеивать объекты не обязательно, просто в этом случае я использовал тот же файл, что и для запечки АО - с уже склеенными объектами.

Если объекты не склеены, нужно выбрать вот эту опцию:

Здесь же обязательно нужно выбрать и две другие опции:

  • All internal 32bit float. Убирает грубые лесенки в градиентах
  • Clear existing bake image before bake

Как и в случае с АО, лучше запекать на повышенном разрешении (bake at), и даунскейлить выхлоп (output at).

Lightmap sample count можно оставить довольно низким: 256, 512 и так далее. 4096 не обязательно.

Разрешение и сэмплы сильно влияют на время запечки.

Для денойзера, лучше использовать OptiX:

Import specials materials for editing позволяет настроить шероховатости и нормали для целевого объекта. Например, если хочется сделать очень резкие, стеклоподобные рассеивания света.

Результат сохраняем в sRGB.

Config 🔗

Shader 🔗

Bulbs 🔗

  • ksPerPixelMultiMap_emissive
  • emChannelsMode: 1
  • emMirrorChannel3As4: 1
  • emSkipDiffuseMap
    • 1 если без AO, color_white.dds / chrome.dds
    • 0 если есть AO
  • useDetail: 1
    • color_white.dds / chrome.dds
  • txEmissive
    • color_white.dds - bulbs are fully emissive in all channels

Reflector 🔗

  • ksPerPixelMultiMap_emissive - обязательно при использовании USE_COLORED_BULBS/emChannelsMode, без него не будет получать свет в рефраке
  • emChannelsMode: 1
  • emMirrorChannel3As4: 1
  • emSkipDiffuseMap
    • 1 если без AO, color_white.dds / chrome.dds
    • 0 если есть AO
  • useDetail: 1
    • color_white.dds / chrome.dds
  • txEmissive
    • BAKED_LIGHT.dds
  • txNormalDetail
    • ext_brembo_detail_nm.dds - даёт красивый эффект внутренних бликов на S13 заднице

CSP 🔗

Для правого поворотника: CHANNEL = 4, остальное копируем.

TurningLightsFrontCorner даёт SIMULATE_HEATING=1, который никак не выключить, и ломает мирроринг в рефраке.

Лампочки разделять объектами под каждую фару:

[EMISSIVE_TURNSIGNAL_LEFT_...]
NAME = REFLECTOR_HOUSING
LOCATION = FRONT
CHANNEL = 3
COLOR = 1,1,1, 5
OFF_COLOR = 0, 0, 0, 0
CAST_LIGHT = 1

[EMISSIVE_TURNSIGNAL_LEFT_...]
NAME = INDICATOR_BULB
LOCATION = FRONT
CHANNEL = 3
COLOR = 1,1,1,2
OFF_COLOR = 0, 0, 0, 0
CAST_LIGHT = 0

Важный момент: да, на один и тот же меш можно вешать много разных каналов, и оно будет правильно работать с рефраком.

Цвет CAST_LIGHT ставить отдельно:


[LIGHT_TURNSIGNAL_LEFT_0]
COLOR=1,0.4,0,1.5

[LIGHT_TURNSIGNAL_RIGHT_0]
COLOR=1,0.4,0,1.5

[LIGHT_TURNSIGNAL_LEFT_2]
COLOR=1,0.4,0,1.5

[LIGHT_TURNSIGNAL_RIGHT_2]
COLOR=1,0.4,0,1.5

Рефрак каналы настраивать вручную:

[REFRACTING_HEADLIGHT_...]
SURFACE = NM
INSIDE = REFLECTOR_HOUSING, INDICATOR_BULB

USE_COLORED_BULBS = 1
SYNC_EMISSIVE_AUTO=0
MIRROR_2_AS_5=0
MIRROR_3_AS_4=1
SYNC_EMISSIVE_0=INDICATOR_BULB
SYNC_EMISSIVE_0_CHANNEL_IN = 3, 4
SYNC_EMISSIVE_0_CHANNEL_OUT = 3, 4
SYNC_EMISSIVE_1=REFLECTOR_HOUSING
SYNC_EMISSIVE_1_CHANNEL_IN = 3, 4
SYNC_EMISSIVE_1_CHANNEL_OUT = 3, 4

DIRECTION  = -1, 0, 0
MIRROR_DIR =  1, 0, 0
MIRROR_POS = 0.0, 0.46931, 1.78681
ORIGIN     = 0.8, 0.46931, 1.78681

Остальные параметры в зависимости от желаемого результата для данной фары.