Я много искал, но не нашел решения этой проблемы.
У меня есть окно просмотра, где центр (откуда мы смотрим) всегда находится в (0,0,0). Мы всегда смотрим в направлении (0,0,1). После выполнения всей моей математики, она упростилась до:
Projected X = 3D X Coordinate / 3D Z Coordinate
Projected Y = 3D Y Coordinate / 3D Z Coordinate
И это прекрасно работает. Каждая точка правильно проецируется на плоскость при z = 1. Но есть проблема с глубинами негативов. Я мог бы просто не визуализировать полигоны с отрицательными точками глубины, но что, если у треугольника есть другие вершины, которые достигают области видимости? Я хочу по-прежнему отображать треугольник, потому что вы все еще можете видеть его часть.
Как я могу либо:
A: Найти точку на плоскости просмотра, которая может представлять эту вершину, а затем нарисовать треугольник, используя эту точку?
или
B: Найдите 2 точки и нарисуйте 2 треугольника, чтобы разрезать треугольник пополам где-то между z = 0 и где треугольник входит в усеченный глаз?
РЕДАКТИРОВАТЬ: Хорошо, извините, я думаю, я просто понял, что делать. Я просто установил почти обтравочную панель, чтобы я мог видеть, где линия или треугольник пересекает ее. Он работает правильно для линий, и я собираюсь начать работать с треугольниками.