Как вы создаете и визуализируете 3D-фрактал?

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

Мой план состоит в том, чтобы создать трехмерный фрактал, либо отрендеренный и заштрихованный в визуализации с помощью GL, либо представленный посредством пространственного сопоставления выходных данных соответствующих уравнений с точками на кубе и их рисования. Если это объяснение кажется неясным, пожалуйста, проверьте ссылки внизу для изображений. Теперь мне не нужно, чтобы фрактал можно было модифицировать в программе. Мне просто нужно, чтобы он отображал один BufferedImage, который я буду помещать непосредственно в JFrame.

Мой опыт работы с Java в рамках этого проекта немного ограничен. Я уже рисовал фракталы Мандельброта и Юлии, но у меня практически нет опыта рисования/рендеринга объектов в 3D на Java. Это все, что я могу найти и понять самостоятельно, так что нет. здесь беспокоит.

Таким образом, вопрос: Как сопоставить фрактал, который должен находиться во 2-м измерении (например, log(количество разделенных объектов)*log(длина стороны подразделения) = 2) в 3-е измерение (например, log(количество разделенных объектов)*log(длина стороны подразделения) = 3)? Я потерялся, пытаясь вычислить это математически, и я считаю, что есть более организованный подход, чтобы обойти большую часть математики, которая уже существует.

Кроме того, если вы знаете о структурированном подходе к визуализации 2D-фрактала, нарисованного по формуле, и визуализации его в 3D при условии предоставления соответствующей формулы (увеличение мощности), пожалуйста, дайте мне знать. Я слышал о трассировщиках лучей, понятия не имею, что это такое, краткое изложение было бы здорово.

Вот ссылки с картинками результата, который я хочу получить:

http://2008.sub.blue/assets/0000/4575/power8_large.jpg

https://www.youtube.com/watch?v=rK8jhCVlCtU


person Sid G.    schedule 10.10.2015    source источник
comment
Насколько я вижу, изображение, на которое вы ссылаетесь, является Mandelbulb. Если вы еще этого не сделали, вы можете просмотреть связанную статью в Википедии, в которой представлены формулы, которые можно использовать в алгоритмическом подходе.   -  person Lolo    schedule 10.10.2015


Ответы (1)


Похоже, что изображение является примером Mandelbulb. Это аналогичная формула итерации для набора Манделброта, но с использованием трехмерных точек и новой идеи о том, что означает возведение трехмерной точки в степень.

person Salix alba    schedule 10.10.2015
comment
Спасибо за информацию. Я проверил лампочку Мандельба, и это звучит довольно интересно. Формулы в Wiki возвращают набор координат ‹x,y,z› в трех измерениях. Как визуализировать 3D-объект, например, с заданными координатами x, y, z? - person Sid G.; 11.10.2015
comment
Я думаю, вам нужно использовать объемный метод. Как и в случае с набором Мандельброта, вы перебираете все пиксели изображения и решаете, какого цвета оно должно быть. Для лампы Мандельба вы перебираете каждый воксель в трехмерной области. Вы просто захотите использовать воксели на границе. Я сам не рисовал, поэтому не могу рассказать вам больше, чем указано в ссылках из статьи в Википедии. - person Salix alba; 11.10.2015