Буфер глубины в 2D

Я работаю над 2D-игрой с реалистичным отложенным освещением. Поскольку я визуализирую источники света после визуализации сцены, мне нужен способ отсеять расчеты освещения, если есть объект, например дерево, препятствующий освещению области. После некоторого чтения я лучше всего для отложенного рендеринга использую буфер глубины. Я искал в Интернете способы получить буфер глубины с 2D-графикой, но на самом деле не нашел ничего полезного. Я нашел glPolygonOffset, но понятия не имею, хочу ли я этого или есть другой способ установить значение z для многоугольников. Спасибо за любую помощь


person rcapote    schedule 15.01.2012    source источник


Ответы (1)


Ваше заблуждение заключается в том, что вы думаете «3D == перспектива». Для создания буфера глубины вашей сцене нужна глубина. Но это не проблема. То, что вы называете «2D», вероятно, просто означает отсутствие перспективы. Таким образом, используя орто-проекцию и размещая объекты на слоях с разной глубиной, вы можете создать буфер глубины с данными, полезными для отложенного освещения.

person datenwolf    schedule 15.01.2012
comment
Регулируя координату z многоугольников? - person rcapote; 15.01.2012
comment
Он имеет в виду, что независимо от значения z, это не меняет внешнего вида, потому что нет перспективы. Вы можете перемещать объекты дальше по экрану или ближе к камере, и они будут выглядеть одинаково, если не слишком далеко в любом направлении. - person fabspro; 15.01.2012
comment
А слишком далеко это означает, что объем отсечения изображения выходит за рамки просмотра, границы которого вы можете установить. И в отличие от перспективной проекции, в ортопроекции значения глубины зависят от Z линейно. - person datenwolf; 15.01.2012