Got my first #Vulkan triangle oh my god
Got my first vertex-indexed rectangle.
Got my first #Vulkan #Mandelbrot set

Love is in the output.

#Vulkan #Mandelbrot #devlog

I didn't think integrating Imgui into it would be so easy.
Output is inside a #DearImGui window βœ…
Need to figure out where these ugly spec violations happen.

Deeper #Mandelbrot zooming with #perturbation βœ…

#devlog

codeberg.org/Microfractal/Bultom
Here is it. Unforunately not really usable, not cross platform, has some vulkan validation errors & no coloring options at the moment. I just made it public, so you can see and perhaps understand how perturbation and linear acceleration works.πŸ₯΄
Ah and it has linear approximation as mentioned before βœ…

Some progress:
Separated computation into a map stage (iterations, distance estimates..)
and an image stage (RGBA), so image recoloring does not need to recompute the fractal again βœ…
Wrapped DearImGui input scalars βœ…
Custom DearImGui-like color editor βœ…
Wrapped Vulkan compute shader into a structure βœ…

#DevLog #cpp #Graphics #Mandelbrot #Fractal #DearImgui

TODO:
Higher quality by averaging multiple images (made out of sightly randomized map pixels), formula must be something like
newColor = Lerp(oldColor, newColor, 1.0 / weight)
Saving images as png βœ…

#FractalFriday

Finally got FloatExp numbers to work. A FloatExp datatype is a real-valued struct, which contain a floating point number and an extra integer, which holds the exponent.

Then, a real number {mantissa, exponent} can be represented using mantissaΓ—2^exponent.

Using this method, numbers far beyond the range of single and double precision floating point numbers can be represented.

This image is computed using a 32+32 bit floatexp (32 bit mantissa and 32 bit exponent). Plain 32 bit floats are not enough. Of course, perturbation and linear acceleration is also used.

#Devlog #Fractal #Mandelbrot #DeepZoom #FloatingPoint #FloatExp

A very basic GLSL example which shows the FloatExp datatype used to zoom into \(0+i\) of the Mandelbrot set (perturbation): https://www.shadertoy.com/view/tcjyWV

Heck yes!

Fixed some FloatExp bugs, computing some of my older deep #mandelbrot #fractal zooms is now possible.

30s to render using Bultom, original (https://www.deviantart.com/microfractal/art/Mandelbrot-Deep-Julia-Morphing-31-895133397) was completed in about an hour using MandelMachine (Abandonware for a decade)

Added progress reporting. Getting the numerator & denominator is done using lambdas.

#DevLog #DearImGui #MandelbrotSet #Graphics

Got something like waypoint coloring to work, currenty hardcoded as static arrays in the shader.

#DevLog

Added the "extend" modes mirror and clamp.

Here's one example that uses a mirrored colormap. Coordinates found by @mathr "millionaires 8": https://mathr.co.uk/web/millionaires.html#008

#Mandelbrot #MandelbrotSet #Fractal #DeepZoom #JuliaMorphing #MathArt

Finally got a working GUI to edit a colormap. I'm still not 100% satisfied but much better than the other attempts.

#Devlog #Graphics #RGBA #Colormap #Colorgradient

I finally got exchange of colormap data between host and shader to work.

#Mandelbrot #Fractal #GUI #DearImGui #Colors #Devlog

Currently rewriting some of the #Vulkan initialization code. Main part is done, using the C++ Vulkan wrapper reduces the mess in some blocks.
Now my colormap editor has a more nice looking appearance. Notice the cosine interpolation between all the points.
@Microfractal
Very nice! What platform?

@dancingtreefrog

OS: Linux, Fedora 42
IDE: VSCodium (a VSCode fork)
My program: Bultom (Renderer: Vulkan, Base UI: DearImgui)