обязательна ли глубина буфера - PullRequest
0 голосов
/ 26 апреля 2010

Я просто пытаюсь лучше понять конвейер DirectX. Просто любопытно, являются ли буферы глубины обязательными для того, чтобы все заработало. Или это просто буфер, который вам нужен, если вы хотите, чтобы объекты появлялись друг за другом.

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Буфер глубины не является обязательным. Например, в 2D-игре это обычно не требуется.

Вам нужен буфер глубины, если вы хотите, чтобы объекты появлялись друг за другом, но при этом вы хотите иметь возможность рисовать их в произвольном порядке.

Если вы рисуете все треугольники сзади и спереди, и ни один из них не пересекается, то вы можете обойтись без буфера глубины. Однако, как правило, проще покончить с сортировкой по глубине и просто использовать буфер глубины.

0 голосов
/ 26 апреля 2010

Буферы глубины не обязательны. Они просто решают следующую проблему: предположим, у вас есть объект рядом с камерой, которая рисуется первой. Затем, после того, как это уже нарисовано, вы хотите нарисовать объект, который находится далеко, но на той же позиции, что и соседний объект на экране. Без буферов глубины он рисуется сверху, что выглядит неправильно. С буферами глубины это скрыто, потому что графический процессор вычисляет позади чего-то еще, что уже было нарисовано.

Вы можете отключить их и справиться с этим, например. рисуя задом наперед (но у этого есть другие проблемы, решаемые буферизацией глубины), что легко в 2D играх. В качестве альтернативы по какой-то причине вам может потребоваться этот оверрейт как какой-то эффект. Но это не обязательно для базового рендеринга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...