GLSL gl _FragCoord.z ​​Calculation and Setting gl _FragDepth

Итак, у меня есть импостер (реальная геометрия — это куб, возможно обрезанный, а импостерная геометрия — это губка Менгера )и мне нужно вычислить его глубину.

Я могу довольно легко рассчитать величину смещения в мировом пространстве. К сожалению, я потратил часы, не в силах нарушить глубину с его помощью.

Единственные правильные результаты, которые я могу получить, когда я иду:

gl_FragDepth = gl_FragCoord.z

По сути, мне нужно знать, как вычисляется gl _FragCoord.z, чтобы я мог:

  • Выполнить обратное преобразование из gl _FragCoord.z в пространство глаза
  • Добавьте возмущение глубины
  • Преобразуйте эту возмущенную глубину обратно в то же самое пространство, что и исходное gl _FragCoord.z.

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

21
задан genpfault 23 April 2012 в 15:20
поделиться