2017-01-05 3 views
0

Я хочу нарисовать прозрачный полигон (например, пирамида). Некоторые лица кажутся прозрачными, когда некоторые лица кажутся непрозрачными.GL_TRIANGLE_STRIP и проблемы с прозрачностью

Im рисунок с использованием GL_TRIANGLE_STRIP.

У меня включен режим наложения, но вам не повезло.

Пожалуйста, смотрите прикрепленное изображение,


enter image description here

ответ

1

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

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

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

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

+0

Работы по отключению глубины. Большое вам спасибо за помощь. – vaishak

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