При использовании lightmap'а откуда берется информация о положении источника света?
Лайтмэпы ведь просто содержат информацию об интенсивности и "цвете" света, верно? Скажем, в пиксельном шейдере из обычной текстуры вытаскивается цвет (пусть будет RGB(0.5, 0.4, 0.3)), затем вытаскивается информация из лайтмэпа (например, RGB(0.7, 0.7, 0.7)), а дальше что? Я знаком только с моделью освещения по Блинну-Фонгу, но, насколько я знаю, всем моделям освещения нужна нормаль и вектор, задающий направление падения света. Откуда этот вектор берется? Или при использовании простых лайтмэпов этим просто пренебрегают? И если да, то что происходит в стандартном шейдере дальше? Значения просто покомпонентно перемножаются?
Я знаю, что есть карты, запекающие directional information, но если они не используются, то как это работает?
Lightmap is a way of generating textures that simulate lighting of your game environment. Lightmaps are baked during compiling (when you build lights) and are overlaid on top of geometry (bsp and custom static meshes) to simulate lighting and shadows.
Короче это тупо текстура. А источники света есть только в редакторе. После запекания лайтмапы их можно удалить.
То есть, грубо говоря, что видишь в редакторе, то и запекается? А зачем тогда нужна обычная текстура ПОСЛЕ создания лайтмэпа? Ведь тогда для определения цвета пикселя будет нужен только лайтмэп? У меня чувство, что я не могу понять что-то очевидное. Например, в статье в Википедии есть лэйтмэп синего куба. Какие-то грани освещены лучше, какие-то хуже. Ну и в лайтмэпе это отображенно, соответственно. Тогда эту карту потом можно использовать для рендера, ведь она содержит инфу и о цвете куба, и об освещении. Вопрос: обычная текстура этого куба после этого может быть выброшена? https://en.m.wikipedia.org/wiki/File:Lightmap_Cube...
arcturgray: В лайтмапах хранится информация только о свете и тенях, оригинальные текстуры не меняются. В шейдере лайтмапы накладываются на текстуру с цветом и получается финальная картинка.