2012-01-15 2 views
0

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

ответ

4

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

+0

Регулировка координаты z полигонов? – rcapote

+1

То, что он имеет в виду, независимо от значения z, не меняет внешний вид, потому что нет перспективы. Вы можете перемещать вещи дальше на экран или ближе к камере, и она будет выглядеть так же, пока она не слишком далеко в любом направлении. – fabspro

+1

И с «слишком далеко», что означает вне объема отсечения для просмотра, из которых можно установить ограничения. И в отличие от проекции перспективы, в ортопроекции значения глубины зависят от Z линейно. – datenwolf