Отображение скрытой и видимой поверхности в javascript путем наложения цветов - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь реализовать алгоритм определения скрытой поверхности в моем 3D-рендерере. Я нашел очень хорошие подходы, такие как алгоритм Z-Buffer или Warnock. Однако они чрезвычайно ресурсоемки. Поэтому я удивлялся: почему бы не использовать непрозрачные перекрывающиеся цвета, с помощью которых я мог бы получить такие же визуальные результаты? Я хотел бы получить некоторые отзывы и мнения, прежде чем идти дальше, и в случае, если это окажется хорошим решением, конечно, использовать этот пост как способ поделиться им с сообществом. Метод в основном сводится к следующему: 1) упорядочение всех многоугольников в сцене по их координате Z; 2) рендеринг всех по порядку с использованием непрозрачных цветов. Изображение / вид / визуальный эффект будут такими же, без необходимости прибегать к дорогостоящим процессам пиксель за пикселем. (Пример: скажем, у меня есть два пересекающихся многоугольника (P1, P2). Учитывая, что ближайшая координата Z зрителя равна 0, если P1z = 10 и P2z = 3, то порядок рендеринга будет: P2> P1. При рисовании цвет P2 охватит края и цвета P1, помещенные в пересечение 2D-XY между двумя полигонами) Как вы думаете, какие это могут быть недостатки? Вы думаете, что этого будет достаточно для проблемы? PS: я не использую полигональные сетки, обрабатываемые 3D-объекты - это простые выпуклые и вогнутые фигуры.

1 Ответ

0 голосов
/ 12 апреля 2020

Полигоны могут пересекаться (даже частично) и определять, какая часть одного полигона находится перед другим, это очень дорогое вычисление.

...