УДАЛЕНИЕ НЕВИДИМЫХ ЧАСТЕЙ
3.5. Z-отсечение
Необходимость в этой процедуре возникает, когда, в конце концов, оказывается, что надо нарисовать грань, у которой часть вершин лежит перед камерой, а часть - за камерой. То есть грань, пересекающуюся с экраном. Сама по себе она правильно не нарисуется.
Поскольку камера видит только то, что перед ней находится, все те точки, для которых z < -dist, рисовать не надо. То есть, каждую грань надо обрезать плоскостью z = -dist. Принципиально различных случаев расположения грани относительно этой плоскости может быть всего четыре; когда перед камерой находятся соответственно 0, 1, 2 или 3 вершины. Первый и последний случаи тривиальны - если перед камерой находится 0 вершин, то грань просто не видна и рисовать ее не надо; если 3 вершины, то грань видна целиком и полностью и ее достаточно просто взять и нарисовать. Рассмотрим оставшиеся два случая.
Случай первый, когда перед камерой находится только одна вершина:
В этом случае перед камерой находится только треугольник CDE. Его и надо будет нарисовать вместо грани.
Случай второй, когда перед камерой находятся две вершины:
Здесь уже надо будет нарисовать трапецию DABE; она разбивается на два треугольника, DAB и DBE.