IT-словарь › Программирование › Кэш поверхностей

Кэш поверхностей

Программирование Svenska → Обновлено: 2026-10-26

Способ Quake получить освещённые стены в программном рендерере: заранее запечь текстуру и лайтмап в готовые поверхности, кэшировать их и оставить внутреннему циклу одно лишь копирование.

В Quake (1996) было мягкое предрассчитанное освещение в лайтмапах, но подмешивать свет в текстуру для каждого пикселя каждого кадра Pentium был не в силах. Джон Кармак и Майкл Абраш вывернули задачу наизнанку: каждая видимая поверхность строилась один раз как освещённый растр на том мип-уровне, который требовало расстояние, и хранилась в кэше. Растеризация превращалась в обычное текстурирование вообще без вычислений освещения.

Расплатой стали память и подтормаживания, когда сразу появлялось много новых поверхностей, например после резкого поворота. GLQuake заменил схему многопроходным смешиванием на 3D-ускорителях. Идея живёт в новом обличье: Lumen в Unreal Engine 5 тоже строит кэш поверхностей — теперь для глобального освещения.

← Назад к словарю