почему glPolygonOffset связан с наклоном полигонов - PullRequest
0 голосов
/ 16 января 2012

Я делаю отображение теней с использованием OpenGL. При сравнении глубины с картой теней возникает проблема с z-боем. Я могу решить проблему, используя glPolygonOffset. Я знаю, что эта функция помогает немного подтолкнуть (или потянуть) полигон, чтобы решить проблему z-борьбы. Но у меня есть вопрос по поводу функции glPolygonOffset. Я не знаю четко, почему наклон многоугольника связан со смещением.

С здесь :

Параметр фактора необходим для обеспечения правильных результатов для заполненных примитивов, которые почти граничат со зрителем. В этом случае разница между значениями Z для одного и того же пикселя, сгенерированного двумя копланарными примитивами, может быть такой же, как максимальный наклон Z в X или Y. Этот наклон Z будет большим для почти примитивных примитивов и почти не существует для лицом примитивов. Параметр factor позволяет добавить этот тип разницы переменных в результирующее смещение глубины.

Здесь я не знаю, почему «разница между значениями Z для одного и того же пикселя, сгенерированного двумя копланарными примитивами, может быть такой же, как максимальный наклон Z в X или Y».

1 Ответ

2 голосов
/ 16 января 2012

Если полигоны имеют наклон Z, то существует разница в координате z между левым и правым краем пикселя.

Таким образом, чтобы поместить что-то впереди, вы должны убедиться, что оно находится впереди, независимо от того, где в пикселе вычисляется координата z.

...