Как мне избежать рисования "задней" сферы над "передней"? - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь нарисовать (очевидно 3D) сферу на своем 2D-холсте.

Для этого я конвертирую целые числа от 0 до 20 для каждой широты и долготы в сферу, используя полярные координаты. Затем я использую треугольные полоски, чтобы «заполнить» внешнюю часть сферы. Я использую матрицы вращения / проекции, чтобы вращать и проецировать сферу. Однако, поскольку существует установленный порядок, в котором точки / треугольники рисуются, как только я поворачиваю сферу вокруг оси, задняя сторона (часть, наиболее удаленная от камеры) отрисовывается после более близких частей, что приводит к странный эффект.

Как мне избежать этого?

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...