Минимальное количество точек сетки для формирования куба с двойным контуром? (Вокселей)
Я узнал об алгоритме двойного контура, который полезен, поскольку он позволяет поверхностям содержать как гладкие, так и острые края. Я несколько озадачен тем, как используются входные данные. Я считаю, что я бы лучше понял это, если бы понял, как был определен минимальный острый куб.
Потратив довольно много времени на чтение различных ресурсов, я пришел к выводу, что одна из следующих идей верна, но я не смог определить, какая именно. Чтобы избежать путаницы, давайте назовем поверхность кубом, а любые 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/