Skip to content

Dabzelos/FractalFlame

Repository files navigation

FractalFlame

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


Детали реализации

  • Нелинейные преобразования: В проекте реализованы следующие преобразования:

    • Spherical (Сферическое)
    • Sinusoidal (Синусоидальное)
    • Handkerchief (Платок)
    • Swirl (Вихрь)
    • Horseshoe (Подкова)
    • Polar (Полярное)
    • Disc (Диск)
    • Heart (Сердце)
    • Linear (Линейное)
    • EyeFish (Рыба-глаз)
  • Гамма-коррекция: Применяется для улучшения визуального качества генерируемых фракталов.

  • Симметрия: Проект поддерживает симметрию по осям X и Y для более интересных фрактальных узоров.


Конфигурация

Конфигурация проекта осуществляется через файл config.json, в котором можно настроить параметры генерации фрактала и включить или отключить различные линейные преобразования. Ниже представлен пример конфигурационного файла:

{
  "Application": {
    "width": 1920,
    "height": 1080,
    "startingPoints": 100,
    "singleThread": false,
    "iterations": 100000,
    "gamma": true,
    "horizontalSymmetry": false,
    "verticalSymmetry": false,
    "format": "PNG"
  },
  "LinearTransformations": {
    "Spherical": true,
    "Sinusoidal": true,
    "Handkerchief": true,
    "Swirl": true,
    "Horseshoe": true,
    "Polar": true,
    "Disc": true,
    "Heart": true,
    "Linear": true,
    "EyeFish": true
  }
}

Форматы сохранения

Поддерживаются два формата для сохранения результатов генерации фрактала:

1.PNG — изображение будет сохранено в формате PNG. 2. JPEG — изображение будет сохранено в формате JPG.

Имя файла

Результат генерации будет сохранен под именем FractalFlame. В зависимости от выбранного формата, файл будет иметь соответствующее расширение, например:

  • FractalFlame.png для формата PNG.
  • FractalFlame.jpg для формата JPG.

Результаты Бенчмаркинга

Ниже приведены результаты тестирования производительности для однопоточного и многопоточного рендеринга фрактального пламени.

  • Операционная система: Linux
  • Архитектура: AMD64
  • Процессор: 11-е поколение Intel(R) Core(TM) i7-11800H @ 2.30GHz

Сводка по результатам

Однопоточное рендеринг

Разрешение Начальные точки Время (нс/операция)
1980x1080 100 1,449,227,170
1980x1080 150 2,332,185,897
1980x1080 200 2,798,556,454
2560x1440 100 1,835,697,220
2560x1440 150 3,242,304,475
2560x1440 200 3,186,335,708

Многопоточное рендеринг (8 рабочих потоков)

Разрешение Начальные точки Время (нс/операция)
1980x1080 100 267,605,513
1980x1080 150 363,783,648
1980x1080 200 563,224,390
2560x1440 100 257,659,781
2560x1440 150 393,870,887
2560x1440 200 596,110,542

Многопоточное рендеринг (16 рабочих потоков)

Разрешение Начальные точки Время (нс/операция)
1980x1080 100 186,639,452
1980x1080 150 295,196,018
1980x1080 200 399,623,369
2560x1440 100 227,323,765
2560x1440 150 285,035,736
2560x1440 200 438,077,185

Многопоточное рендеринг (24 рабочих потока)

Разрешение Начальные точки Время (нс/операция)
1980x1080 100 212,044,188
1980x1080 150 316,771,878
1980x1080 200 402,349,632
2560x1440 100 190,885,581
2560x1440 150 329,414,104
2560x1440 200 397,396,392

Примеры изображений:

alt-text alt-text alt-text alt-text alt-text alt-text

About

App that generates beautiful fractal flames

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •