Вам необходимо подразделить ваши треугольники так, чтобы они все были примерно одинакового размера - независимо от того, выполняете ли вы сортировку самостоятельно или используете z-буфер.Если, конечно, алгоритм z-буфера также разбивает для вас длинные тонкие треугольники.
Проблема в том, что если у вас есть несколько маленьких компактных треугольников и несколько длинных тонких (например), алгоритмБудут пропускать классифицировать длинные худые чаще, чем нет.Если вы используете среднюю точку треугольника, будут точки обзора, где он будет рассматриваться как «перед» более компактного, хотя на самом деле, если он действительно находится позади.Возьмите этот вид сверху вниз, где +
представляет среднюю точку.
o
-+- 1
-----+------ 2
-+- 3
*
Если смотреть от *
до o
, большой треугольник (2) можно интерпретировать как находящийся перед маленьким треугольником (3) и, следовательно, быть нарисованным поверх него.
Если (2) разбить на 3 или 4 меньших треугольника, то z-буферизация будет работать чаще.