[HL2/CSS] Env_cubemap
По причине многочисленно задаваемых вопросов про env_cubemap, решил написать эту статью.
Итак, первое - что это такое?
Env_cubemap полностью назыается environmental cubical map. Техника environmental маппинга прежде всего используется для симуляции отражения на неровных обьектах. Если быть точнее, то она использует предрассчитанную информацию для более быстрого рендеринга отражающих поверхностей по сравнению с рендерингом на лету.
Основная идея envmap в том, что если отражающий обьект мал по сравнению с расстояниями до окружения и если окружение включая источники света статично, то все отражения могут быть успешно предрассчитаны и сохранены в текстуру. Эта техника широко используется в трехмерной графике, но в играх это заняло ключевую роль для рендеринга отражающих поверхностей, потому как позволяет значительно сократить время на рендеринг одного кадра по сравнению с реалтаймовыми расчетами.
Существуют сферические, кубические и параболические энвмапы, но в играх используются именно кубические, так как они более гибкие, в частноти при просчете текстурных координат.
Кубмапа состоит из шести независимых изображений, которые, как можно догадаться, являются гранями воображаемого куба. поставленного в определенную точку сцены\карты .
Эти шесть изображений отображают вид с соответствующей грани и проецируются на поверхности, в материалах которой прописано использование кубмапа в качестве envmap ($envmap "env_cubemap"). После того как карта скомпилирована, а самое главное - просчитано освещение, мы можем приступить к расчету кубмапов. Как многие уже наверное замечали, если кубмапы не построены, то мы наблюдаем эмо шашку в снайперских прицелах или намазанных маслом НПЦ
Ежели на вашей карте вовсе нет кубмапов, но вы их все же посторили, то будет использоваться стандартный кубмап, который выглядит так :
Его вы видите в редакторе на отражающих поверхностях и воде.
Если вы поняли принцип работы кубмапа, то теперь стоит сделать несколько замечаний по поводу их использования.
1) Выставляйте разрешение кубмапы в зависимости от размера поверхности, на которую он будет проецироваться. Разрешение кубмапы может быть от 32х32 до 256х256 по степеням двойки. Т.е если кубмап предназначен для двух метровой стены, а не для линзы прицела, то не ставьте его разрешение 32х32.
2)Ставьте кубмапы только там где они нужны и в нужном количестве. Один кубмап на одо закрытое помещение вполне достаточне для отражения на оружиях.
3)Если ваша карта компилтся с HDR, то кубмапы нужно просчитывать как с включенным так и выключенным эффектом
Вот собственно и все. Если есть какие-то замечания - пишите, дополним или исправим
По причине многочисленно задаваемых вопросов про env_cubemap, решил написать эту статью.
Итак, первое - что это такое?
Env_cubemap полностью назыается environmental cubical map. Техника environmental маппинга прежде всего используется для симуляции отражения на неровных обьектах. Если быть точнее, то она использует предрассчитанную информацию для более быстрого рендеринга отражающих поверхностей по сравнению с рендерингом на лету.
Основная идея envmap в том, что если отражающий обьект мал по сравнению с расстояниями до окружения и если окружение включая источники света статично, то все отражения могут быть успешно предрассчитаны и сохранены в текстуру. Эта техника широко используется в трехмерной графике, но в играх это заняло ключевую роль для рендеринга отражающих поверхностей, потому как позволяет значительно сократить время на рендеринг одного кадра по сравнению с реалтаймовыми расчетами.
Существуют сферические, кубические и параболические энвмапы, но в играх используются именно кубические, так как они более гибкие, в частноти при просчете текстурных координат.
Кубмапа состоит из шести независимых изображений, которые, как можно догадаться, являются гранями воображаемого куба. поставленного в определенную точку сцены\карты .
Эти шесть изображений отображают вид с соответствующей грани и проецируются на поверхности, в материалах которой прописано использование кубмапа в качестве envmap ($envmap "env_cubemap"). После того как карта скомпилирована, а самое главное - просчитано освещение, мы можем приступить к расчету кубмапов. Как многие уже наверное замечали, если кубмапы не построены, то мы наблюдаем эмо шашку в снайперских прицелах или намазанных маслом НПЦ
Ежели на вашей карте вовсе нет кубмапов, но вы их все же посторили, то будет использоваться стандартный кубмап, который выглядит так :
Его вы видите в редакторе на отражающих поверхностях и воде.
Если вы поняли принцип работы кубмапа, то теперь стоит сделать несколько замечаний по поводу их использования.
1) Выставляйте разрешение кубмапы в зависимости от размера поверхности, на которую он будет проецироваться. Разрешение кубмапы может быть от 32х32 до 256х256 по степеням двойки. Т.е если кубмап предназначен для двух метровой стены, а не для линзы прицела, то не ставьте его разрешение 32х32.
2)Ставьте кубмапы только там где они нужны и в нужном количестве. Один кубмап на одо закрытое помещение вполне достаточне для отражения на оружиях.
3)Если ваша карта компилтся с HDR, то кубмапы нужно просчитывать как с включенным так и выключенным эффектом
Вот собственно и все. Если есть какие-то замечания - пишите, дополним или исправим
Последнее редактирование:
спалил
