2016-02-07 4 views
1

Я пытаюсь реализовать Z-буфер (буфер глубины) для алгоритма растеризации многоугольника. Все мои полигоны являются треугольниками, и я понимаю, что три точки (x, y, z), составляющие треугольник, также образуют плоскость. Если у меня есть значения (x, y, z) верфей, как бы я вычислил глубину каждой позиции на лицевой стороне треугольника?Как я могу рассчитать значение Z треугольников?

ответ

1

В OpenGl или WebGl z-буфер применяется сразу после rasterization i.e для каждого пикселя, а не для каждой вершины треугольника. В этом случае вам нужно сохранить значение z для каждого пикселя, а затем просто получить пиксель этого максимального значения z. Это делается автоматически в pipeline.

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

Также проверьте это link для получения дополнительной информации.

Смежные вопросы