Jump to content

Фрактальное пламя

(Перенаправлено из Пламенных фракталов )
Фрактальное пламя, созданное компьютерным проектом Electric Sheep .
Фрактальное пламя, созданное в Апофизе .

Фрактальное пламя является членом системы итерированных функций. класса [1] фракталов , созданных Скоттом Дрейвсом в 1992 году. [2] Открытый исходный код Дравса позже был перенесен в Adobe After Effects . графическое программное обеспечение [3] и переведен в редактор фрактального пламени Apophys . [2]

Фрактальное пламя отличается от обычных систем итерированных функций тремя способами:

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

Алгоритм

[ редактировать ]

Алгоритм состоит из двух этапов: создание гистограммы и последующий ее рендеринг.

Создание гистограммы

[ редактировать ]
Фрактальное пламя.

Сначала выполняется итерация набора функций, начиная со случайно выбранной точки P = (Px,Py,Pc) , где третья координата указывает текущий цвет точки.

Набор функций пламени:

На каждой итерации выберите одну из приведенных выше функций, где вероятность F j выбора равна p j . Затем вычисляется следующая итерация P, применяя F j к (Px,Py) .

Каждая отдельная функция имеет следующий вид:

параметр wk Vk весом вариации где . называется Дравс предлагает [4] это все :s неотрицательны и в сумме равны единице, но такие реализации, как Apophys, не накладывают этого ограничения.

Функции V k представляют собой набор предопределенных функций. Несколько примеров [4] являются

  • V 0 ( Икс , y ) = ( Икс , y ) (Линейный)
  • V 1 ( x , y ) = (sin x ,sin y ) (синусоидальный)
  • V 2 ( Икс , y ) знак равно ( Икс , y )/( Икс 2 + и 2 ) (Сферический)

Цвет Pc точки связанным с последней примененной функцией Fj смешивается с цветом , :

Pc := (Pc + (F j ) цвет ) / 2

После каждой итерации гистограмма обновляется в точке, соответствующей (Px,Py) . Это делается следующим образом:

histogram[x][y][FREQUENCY] := histogram[x][y][FREQUENCY]+1
histogram[x][y][COLOR] := (histogram[x][y][COLOR] + P.c)/2

Таким образом, цвета изображения будут отражать, какие функции использовались для доступа к этой части изображения.

Рендеринг изображения

[ редактировать ]

Чтобы повысить качество изображения, можно использовать суперсэмплинг для уменьшения шума. Это предполагает создание гистограммы большего размера, чем изображение, чтобы каждый пиксель имел несколько точек данных для извлечения. Например, создайте гистограмму с ячейками 300×300, чтобы нарисовать изображение размером 100×100 пикселей; каждый пиксель будет использовать группу сегментов гистограммы 3×3 для расчета своего значения.

Для каждого пикселя (x,y) конечного изображения выполните следующие вычисления:

frequency_avg[x][y]  := average_of_histogram_cells_frequency(x,y);
color_avg[x][y] := average_of_histogram_cells_color(x,y);

alpha[x][y] := log(frequency_avg[x][y]) / log(frequency_max);  
//frequency_max is the maximal number of iterations that hit a cell in the histogram.

final_pixel_color[x][y] := color_avg[x][y] * alpha[x][y]^(1/gamma); //gamma is a value greater than 1.

Приведенный выше алгоритм использует гамма-коррекцию , чтобы цвета выглядели ярче. Это реализовано, например, в программном обеспечении Apophys.

Чтобы еще больше повысить качество, можно использовать гамма-коррекцию для каждого отдельного цветового канала, но это очень тяжелые вычисления, поскольку функция журнала работает медленно.

Упрощенный алгоритм заключается в том, чтобы позволить яркости линейно зависеть от частоты:

final_pixel_color[x][y] := color_avg[x][y] * frequency_avg[x][y]/frequency_max;

но это приведет к тому, что некоторые части фрактала потеряют детализацию, что нежелательно. [4]

Оценка плотности

[ редактировать ]

Алгоритм пламени похож на симуляцию Монте-Карло , при этом качество пламени прямо пропорционально количеству итераций симуляции. Шум, возникающий в результате такой стохастической выборки, можно уменьшить путем размытия изображения, чтобы получить более плавный результат за меньшее время. Однако нежелательно терять разрешение в тех частях изображения, которые получают много выборок и поэтому имеют мало шума.

Эту проблему можно решить с помощью адаптивной оценки плотности , чтобы повысить качество изображения, сводя к минимуму время рендеринга. FLAM3 использует упрощение методов, представленных в *Адаптивная фильтрация для прогрессивного рендеринга изображений Монте-Карло*, документе, представленном на WSCG 2000 Фрэнком Суйкенсом и Ивом Д. Виллемсом. Идея состоит в том, чтобы изменять ширину фильтра обратно пропорционально количеству доступных выборок.

В результате области с небольшим количеством сэмплов и высоким уровнем шума становятся размытыми и сглаженными, а области с большим количеством семплов и низким уровнем шума остаются незатронутыми. [5]

Не все реализации Flame используют оценку плотности.

См. также

[ редактировать ]
  1. ^ Митчелл Уайтлоу (2004). Метатворение: искусство и искусственная жизнь . МТИ Пресс . стр. 155.
  2. ^ Jump up to: а б «Информация о программном обеспечении Апофиз» . Архивировано из оригинала 13 сентября 2008 г. Проверено 11 марта 2008 г.
  3. ^ Крис Геман и Стив Рейнке (2005). Самый острый момент: анимация в конце кино . Книги YYZ. стр. 269.
  4. ^ Jump up to: а б с «Алгоритм фрактального пламени» (PDF) .   (22,5 МБ)
  5. ^ См . https://github.com/scottdraves/flam3/wiki/Density-Estimation .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a8b3ceba164b3d8fd5cb11d8f41bcba1__1713911760
URL1:https://arc.ask3.ru/arc/aa/a8/a1/a8b3ceba164b3d8fd5cb11d8f41bcba1.html
Заголовок, (Title) документа по адресу, URL1:
Fractal flame - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)