Минимальное количество точек сетки для формирования куба с двойным контуром? (Вокселей)

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

Потратив довольно много времени на чтение различных ресурсов, я пришел к выводу, что одна из следующих идей верна, но я не смог определить, какая именно. Чтобы избежать путаницы, давайте назовем поверхность кубом, а любые 8 соседних точек сетки ячейкой. Иллюстрации будут очень признательны, чтобы помочь проиллюстрировать конструкцию.

Идея № 1 - Минимальный острый куб определяется сеткой 2x2x2, где каждая точка сетки соответствует углу сформированного куба.

+---+
|   |
+---+
2x2x2 grid points / 1 grid cell

Идея № 2 - Минимальный острый куб определяется сеткой 3x3x3, где каждая ячейка сетки содержит так называемую "характерную точку", и для формирования куба требуется 8 характерных точек.

+---+---+
| . | . |          +---+
+---+---+   ===>   |   |
| . | . |          +---+
+---+---+
3x3x3 grid points / 8 grid cells

Идея № 3 - Минимальный острый куб определяется сеткой 1x1x1, где одна ячейка сетки определенной плотности приводит к образованию минимального острого куба.

+
1x1x1 grid points / 0 grid cells

Вот еще одна ссылка, которая может пригодиться будущим читателям: http://upvoid.com/devblog/2013/05/terrain-engine-part-1-dual-contouring/

0 ответов

Другие вопросы по тегам