Что касается Marching Cubes, у меня есть некоторые сомнения относительно его алгоритма и реализации. Я прочитал прекрасную статью Пола Бурка о Marching Cubes, а также доступный исходный код на сайте, но все же столкнулся с некоторыми проблемами с точки зрения понимания, а также того, как реализовать алгоритм по-своему. Вопросы следующие:
Размер сетки — я читал, что размер сетки влияет на качество создаваемой 3D-модели. Например, если у меня есть набор рентгеновских изображений с размером (200 * 200 * 200), поэтому плита ячеек сетки будет построена из 2 соседних фрагментов изображения. Таким образом, общее количество ячеек сетки в плите будет (200-1)*(200-1), причем каждый угол ячейки сетки соответствует значению/плотности пикселя изображения. Это правильно?? Кроме того, как нам реализовать различный размер для gridcell??
Размер вокселя. Я прочитал несколько ссылок на Marching Cubes и, похоже, не могу найти, как в алгоритме учитывается размер вокселя. Пожалуйста, поправьте меня, если я ошибаюсь, в моем случае зазор между соседним слоем изображений составляет 1 мил; таким образом, как мне позаботиться о тех, кто находится в алгоритме Marching Cubes, или это тупик ?? Учитывается ли это как размер Gridcell ?? (Предположение: размер одного пикселя по координате xy составляет 19 микрон, а длина gap/z составляет 25,4 микрона/1 мил)
Координаты угла сетки (координаты вершин куба) - я пытаюсь назначить координаты углов ячеек сетки с индексом i j k путем вложенного цикла размера набора изображений (200 * 200 * 200). Это правильно?? Есть ли способ сделать это быстрее??
Примечание: я видел реализацию MC в VTK, но мне довольно сложно ее переварить, так как она зависит от некоторых других классов VTK.