Skip to content

V1.1.0 - Tile-based rendering and major performance improvements

Latest

Choose a tag to compare

@PottierLoic PottierLoic released this 14 Dec 13:55

This is likely the biggest release since the beginning of Fractouille.
This version brings massive performance improvements with a new rendering system and a lot of quality-of-life tweaks.

Performance improvements

  • The rendering system has been completely rewritten to use a tile-based approach.
    (See this page for more information)
  • The mandelbrot set has been made faster to compute by skipping iterations in points located within the main cardioid and the period-2 bulb.

Recording

  • The record command was previously rendering frames supposed to be merged using ffmpeg.
    This is now automatically done without saving every frame, saving a lot of disk space and time.
    The downside is that ffmpeg is now required to run this command.
  • A new record_julia command is also available, allowing to record an animation (not zoom) of the julia set.
  • A progress popup is now displayed while recording.

Palettes

The whole palette system has been rewritten to allow for more flexibility:

  • Different interpolation methods are now available, and palettes can now be modified or created on the fly.
    Interpolation modes are linear, cosine, hsv and hsv cyclic.
  • The new commands are palette use <i>, palette create <r> <g> <b> ..., palette remove <i> and palette mode <interpolation mode>.

Commands

  • Some commands have been tweaked to be more intuitive.
  • Typing the first letter of a command now shows the most likely completion.
  • Pressing Tab will complete the command using the most likely completion.

Under the hood

A large portion of the code has been reorganized and modularized in dedicated modules.
This will make it easier to extend Fractouille in the future.

What's next?

  • Border tracing: this is the next big optimization that will replace the tile-based approach.
  • Arbitrary precision: for now Fractouille cannot zoom beyond Rust's f64 precision limit. This will change in the future.
  • More color palettes and interpolation modes (LHC, HSL).
  • More fractal types.