Вы не авторизованы.

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Программирование, относящееся к генерации фрактальных изображений

ТЕМА: Программирование недоБуддаброта - Брахмаброт

Программирование недоБуддаброта - Брахмаброт 3 года 11 мес. назад #1072

  • Alef
  • Alef аватар
  • Вне сайта
  • Фракталю потихоньку
  • Сообщений: 133
  • Сказали Отлично!: 153
  • Репутация: 14
Первая;)
Как то решил воплотить свой Буддаброт, да и так чтоб был примером для создателей разного ужасного Буддаброт софта, модулярно, чтоб проще менять разные элементы, и чтоб было с разными формулами и цветами. А то смысл всё время одного z=z^2+c генерировать. Ну и желательно по ходу изобрести что то новое. главная тема

Буддаброт по сути как астрофотография, только вместо лучей света на виртуальную фотоплату падают орбиты чисел, исходящие от фрактала. Да и цвета генерируется точно так же как у космических фотографий НАСА, высокие значение итерации - синий цвет, а низкие - красный. Если выбрать орбиты входящие в множество мандельброта, то достаточно быстро получится простая картинка, называемая антибуддабротом, а если выбрать орбиты убегающие от мандельброта, то по долгу будет рендерится призрачная картина буддаброт.

Выдрал ИМХО лучший вариант буддаброта на Ультра Фрактале. Но долго как то, старый комп, да и на УФ все буддаброты используют градиент и как то плоско. Вообще Буддаброт еще медленнее 3D. Так что сначало выкинул разделение на орбит и всё пошло быстрее. Но не так красиво, в основном по долгу крутятся внутренные орбиты мандельброта, а самые красивые быстро улетают на безконечность. По этому к обычному байлауту добавил и байлаут невтоновских фракталов, удалающий внутренних, медленно менюющийся точек. Внутренний цикл : while ( (|z| < 16) && (|zold-z| >0.000001 ) && (iter < @maxIter) ) Так мандельброт приобрёл форму луны.

Ждать пока на каждый пиксель упадёт достаточно цифровых лучей достаточно долго, и решил заменить алгоритм генерации цвета на подобие exponent smoothing, только без експонентов, а то экспоненты медленные. Экспонент смутинг щитает общую сумму z наподобие 1/2 + 1/3 + 1/4 + 1/5, только немного сложнее, тобишь сумма всегда меньше 1. Под рукой был Wave Trichrome, переделанный вариант цветовой формулы Fractal Explorer - orbit counting (где то можно найти исходники). После того, как пощиталась формула, на каждый пиксель идёт цикл, считающий цвет:
colourcnt=colourcnt+1
        increaser=recip(sqrt(colourcnt))
         dataR =  (dataR + increaser )/( @scalarR + abs(pixR[x, y])*antilightR)
         dataG =  (dataG + increaser )/( @scalarG + abs(pixG[x, y])*antilightG)
         dataB =  (dataB + increaser )/( @scalarB + abs(pixB[x, y])*antilightB)
 
            pixR[x, y] = pixR[x, y] + dataR
            pixG[x, y] = pixG[x, y] + dataG
            pixB[x, y] = pixB[x, y] + dataB


Сначало было вот так негламурно:


Правда, уже не совсем понимаю, как всё это вместе работает, но главное, что начальное значение цвета желательно не 0. Получился уже и не Буддаброт, та что решил назвать по новому, хотя вообще то вариант разпечатки орбит.

Но при (относительно) глубоком зуме картинка приобретала как бы текстуру отпечаток пальцев. Тут пришёл к тому, что генератор случайных чисел генерирует уже недостаточно качественных случайных чисел, которые кучкуются вместе. Кроме случайных чисел, которые, конечно, не как не случайны, компютер не может создать полную случайность, в википедии нашёл другое, квази-случайных чисел, которые уже не притворяются, что они случайны, а вместо того они стараются обеспечивать самое равное распределенние цифр. В теме обещали, что эти числа могут зделать рендеринг Буддаброта чут ли не 10 раз быстрее.
en.wikipedia.org/wiki/Halton_sequence
Halton sequences, в цыкле, мож пригодятся:
haltonX = 0
form = 0.5
cycle = cnt+34
WHILE (cycle > 0)
haltonX = haltonX + form * (cycle % 2)
cycle = floor(cycle *0.5)
form = form *0.5
ENDWHILE
 
haltonY = 0
form = 0.2
cycle = cnt+34
WHILE (cycle > 0)
haltonY = haltonY + form * (cycle % 5)
cycle = floor(cycle *0.2)
form = form *0.2
ENDWHILE

На деле не так хорошо, как описано. Картинка начала получатся только, минимум, с 4 рядами халтонов. За то халтон + рандом себья показало очень хорошо, не только ищезли артефакты при зуме но и картинка стала более чёткая и ищезло большинство красных точек. Добавление ряда халтона лиш незначительно замедлило рендеринг. Кстати, при том же зуме и оператор деление начал давать артефакты.
irandX1 = seed = random(seed)
    irandY1 = seed = random(seed)
 
srcX1 = (abs(irandX1) / #randomrange +haltonX)*0.5*@srcWidth + srcMinX
srcY1 = (abs(irandY1) / #randomrange +haltonY)*0.5*@srcHeight + srcMinY[

А с некоторыми формулами картинка немного поменялась, так и не понял почему, но вроде в сторону правильности. К слову похожее использует и великий и ужасный Мандельбульб3Д, последняя версия бульба имеет рендеринг методом Монте Карло с применением ряда халтона, что обсуждалось на теме к бета тестингу низ и дальше.
Короче, ряд халтона вещ доситаточно малоизвестное, но полезное.


Manowar formula (z = z^2 + zold + c)


Видео


Короче, весь код можно увидеть на сайте Chaos Pro .
Ultra Fractal как фрактал выбрать Pixel, внешная окраска EM.ucl -> z Brahmabrot, или в Chaos Pro buddhabrot.ccl -> Brahmabrot.

Потом я еще свьязалья с авторшей Буддаброт фракталов, и она весьма одобрила результат, правда сказала, что без разделение орбит на убегающие и не убегающие это нельзя признать буддабротом. Единственное, на внешных программах как Chaos Pro и Ultra Fractal нельзя создать постепенно появляющуюсь картинку. ИМХО, доволно интересно наблюдать, как постепенно на черном экране падают точки и появляется буддаброт.

Дальше много картинок и параметры
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Последнее редактирование: 3 года 11 мес. назад от Alef.
Администратор запретил публиковать записи гостям.
Отлично! сказали: androceus, SCORPION, Ballista Cheng

Программирование недоБуддаброта - Брахмаброт 3 года 11 мес. назад #1203

  • Alef
  • Alef аватар
  • Вне сайта
  • Фракталю потихоньку
  • Сообщений: 133
  • Сказали Отлично!: 153
  • Репутация: 14
С постом вернулсья к Брахмаброту (рендеры выше относительно старые). Надо бы добавить индикатор рендеринга или кое что, вообще бы как программу, правда это уже не смогу сделать.





Параметры UF под катом.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
Отлично! сказали: adminus, androceus, AquaLena

Программирование недоБуддаброта - Брахмаброт 1 год 4 мес. назад #4174

  • Alef
  • Alef аватар
  • Вне сайта
  • Фракталю потихоньку
  • Сообщений: 133
  • Сказали Отлично!: 153
  • Репутация: 14
По долгу нечего не рендерил. И записал в гугле название моего канала. Самым первы сплыл брахмаброт (а не некторые особо весёлые песни, некоторые из которых удалены цензурой.) И решил опьять что нибудь наанимировать. С немного более мощным компом можно зделат по больше, это рендерилось 4,5 раз. А еще пару гигагерц и гигабайт, мож космосс получился.



Видео что то не видно, да и проблемы с браузером.

и тут ссылка на видео

А парамкетри Ультра в этой теме.

Головы некоторых индийских многоголовых богов так и выглядят. Они как бы фрактальны. Мож когда нибудь выложу. Они весьма симпатичны (особо Кали, украшённая цветочками гибискуса и головами), и как то удивительно напоминает наши народные мотивы. Только не в этой теме.

Это выглядит как космосс, что не удивительно, буддхаброт был создан использую алгорифм НАСА, как они окрашивают галактики. А тут просто сначало хотел на Ультрике зделать как бы примерную формулу буддхаброта, как пример для софта. Где всё было как надо, разделёную на модули, где был бы сам буддхаброт алгорифм, а потом разные формулы, цветы и так далее. Только буддхаброт был таким медленым, что тут же бросил эту затею, и зделал что нибудь по быстрее - это.
Последнее редактирование: 1 год 4 мес. назад от Alef.
Администратор запретил публиковать записи гостям.

Программирование недоБуддаброта - Брахмаброт 1 год 4 мес. назад #4175

  • Alef
  • Alef аватар
  • Вне сайта
  • Фракталю потихоньку
  • Сообщений: 133
  • Сказали Отлично!: 153
  • Репутация: 14
Зарендерил такое.
Большая картинка

И маленькая:


И кто то на западе создал кое что такое, только рендерится в окне браузера:
http://www.stefanbion.de/fraktal-generator/z-orbits/dots/
Администратор запретил публиковать записи гостям.
Отлично! сказали: AquaLena

Программирование недоБуддаброта - Брахмаброт 1 год 4 мес. назад #4178

  • AquaLena
  • AquaLena аватар
  • Вне сайта
  • Модератор я...
  • Сообщений: 696
  • Сказали Отлично!: 629
  • Репутация: 19
Alef, аплодирую Вашему оптимизму в поисках нового! Получились очень интересные и красивые образы! :gvrs:
моя любовь к фракталам бесконечна)
Последнее редактирование: 1 год 4 мес. назад от AquaLena.
Администратор запретил публиковать записи гостям.

Программирование недоБуддаброта - Брахмаброт 1 год 4 мес. назад #4181

  • Alef
  • Alef аватар
  • Вне сайта
  • Фракталю потихоньку
  • Сообщений: 133
  • Сказали Отлично!: 153
  • Репутация: 14
Спасибо!

Начал с фракталов, а потом переключился в социальные и исторические инноавции;) Мож даже на них и научился.

Зделал еще один видео, как фрактал меняется с изменением максимальных итераций. И как появляются точки, которые постепенно приближается к границе. Эти точки, говорят, связаны с деривативами формулы фрактала. Типа с университета, что учили.
Администратор запретил публиковать записи гостям.
Отлично! сказали: AquaLena
Время создания страницы: 3.003 секунд
1. Erik_Wollo-Blue_Radiance Play
2. Astropilot_Solar Walk IV Play
3. GERMIND _ Cosmicleaf Records Series Vol.14 Play
4. Kyoto_-_Bodhisattva_(Original_Mix) Play
5. Play