Это происходит из-за порядка отрисовки треугольников. Некоторые треугольники рисуются первыми, они записывают свои значения глубины в текстуру глубины, затем появляется следующий треугольник и проверяет, есть ли что-то перед ним. Если есть, то он не будет отображаться.
Если треугольник, который находится сзади, визуализируется первым, тогда нет проблем, треугольник перед ним смотрит на текстуру глубины, видит, что у него большее значение z, поэтому он правильно визуализируется, это места, где цвет менее прозрачный.
Проблема возникает, когда передний треугольник рендерится первым. Он записывает значение глубины в буфер глубины, затем появляется треугольник сзади, видит, что перед ним уже что-то есть, поэтому он не обрабатывается.
У вас есть несколько способов решить эту проблему, вы можете отключить тестирование глубины, отсортировать треугольники, чтобы они шли по порядку, или использовать алгоритм, такой как очистка глубины. Каждый из этих алгоритмов имеет побочные эффекты или просто очень сложен, поэтому вы не видите слишком большой прозрачности в играх.
person
Bálint
schedule
05.01.2017