Комментарии 14
Да за что минусы то? Вы хоть одну статью покажите, где эта тема освещается.
Я не минусовал, но lightmap'ы были ещё тридцать лет назад в первом Quake
Да и я осветил эту тему, потому что сначала не понимал как это сделать. Самое интересное, что про это никто почти не пишет и я не догадывался насколько это просто в реализации, пока не додумался до этого варианта. Код квейка не изучал и поэтому не знал об этом.
Ладно, спасибо за общение.
Я посмотрел в книге learnopengl по теме lightmap и обнаружил, что lightmap имеется ввиду, когда несколько разных материалов в одной текстуре, а у меня не это. У меня запекание baking texture. Или я опять неправильно понял? Просто в моём варианте можно один раз запечь со светом текстуры и потом без света рисовать текстуры как будто текстура со светом.
Возможно вы ошиблись с терминологией или я просто не понимаю что такое настоящее lightmap. Но вот описание lightmap.

запечь со светом текстуры
Это бесполезная трата огромного количества памяти (и скорее всего производительности, потому что процесс чтения текстур из памяти тоже не бесплатный), поэтому lightmap является отдельной сжатой текстурой
Ну и ещё использование отдельной текстуры позволяет нормально анимировать текстуры без поломки освещения (например, сделать бегущую строку путём сдвига uv-координат) и динамически менять яркость отдельных лампочек без перезапекания
Да один минус-то всего, что так переживать! ) Я поставил плюс, стало по нулям, все норм )
А это типа одна общая текстура, дифуз+свет?
Извините, я не понял вопрос. Объясню немного сначала. Есть оригинальная текстура. Её мы используем для совмещения со светом. Она же и рисуется в другой фреймбуфер. Потом берём эту текстуру и сохраняем в текстуру под другим id и вот эту текстуру, которую мы сохранили, теперь рисуем без просчета каждый раз света и не обращая внимания на нормали.
Таким образом в игре я могу динамически размещать свет в разных местах кофейни и когда поставлю новый свет, то только в этот момент произойдет просчет света. Запекуться текстуры с новыми данными и теперь будет запечённая текстура, которую опять можно рисовать без просчета света.
Так можно и с тенями работать думаю. Один раз прорисовать динамически тени, а потом рисуешь новую текстуру с тенью.
Это позволяет строить домик с освещением (якобы) и наслаждаться картинкой даже на встроенной карте (думаю).
Да, дифуз со светом.
Только пока каждая стеночка и пол отдельные. Но я написал в конце туториала, что буду менять на обычный большой по площади пол.
могу посоветовать, тут на хабре есть обзор Doom3 там есть некоторые концепции, которые по началу могут быть не интересными, но они очень тонкие
Да, если цель другая, то и метод другой понадобиться. У меня в игре всё же в помещении дело происходит и нужно устанавливать в каждой комнате освещение. Световых источников может быть до 20 кажется. Объекты отбрасывающие тень запекаются. Только пока отбрасывание тени у меня не реализовано.
понял вас ну если вы сделаете 2 света с тригерным(я подправил думал не интересно), смотрите, получается вы хотите светить почти как в реале или у вас задумка с тёмнотой? может можно как-то обыграть как в первых версиях вова, тут главное не реалистичное сходство же, или вы хотите гиперреализм? там в зданиях ао может будет нужен кстати вот тут помогут запекания наверно, но с 3д я не вкурсе, я представил как в 2д из пляжа светлой теплой гаммы, перешли в теплое здание с деревянными стенами и теплым светом
я всегда себе представлял, что надо просто придать тон локации и перенести его в здание, ну да могут быть факелы там
тоесть подмешивать частички получается в свет это нагрузно вроде, хотя если рисовать частички на слоях обьектов вроде получаеся, ну да тогда надо смотреть
pythonopengl_game_engine_update_4_reflections/ вот еще что видел
в третьей серии у него четко прям видны тени
Спасибо, я сам сейчас начал осваивать игровой движок и было полезно узнать про такой прием, он в целом нередко раньше встречался в играх, пока не было лучей

Запекаем текстуру в opengl