Happy Easter – Version 1.0.2 and something about colors

Hello again. Fract has been released more than two weeks ago and in the meantime I found some annoying bugs. The most important most likely when I was looking for easter eggs in Fract (Is this egg-thing international or just European?). Finally, I found this easter egg but it took some time.

Welcome to Planet Seahorse!

Lovely, right? Kind of shows what is possible with Fract. This image uses a bailout height of “sqrt (1 – sqr point)”, thus it shows a round surface, (and the inverse sine for the projection, but more on that later).

Correct colorization of 3D-Effect

I have to admit, the first version of my easter egg was not pretty at all. Saturated blue on the dark side of the planet etc… The reason for this was a misunderstanding on my side concerning the YUV color model.

A bit more explanation of what I just wrote (you may skip it if you are not interested): There are different color models around. The best-known is the RGB color model in which a color is represented by its red-green-blue value. Yet, mixing colors using the RGB-color-value makes green shades too dominant. This is a problem in particular for color gradients. Thus, Fractview used the LAB-color model, arguably the best color model (definitely the most nerdy one) but also extremely computationally intense. Since Fract should be able to calculate all pixels in real time, LAB is unfortunately not an option because it is too slow (maybe I change my mind on that in the future). Therefore, I use YUV that can be directly converted to RGB. LAB is still there though to calculate the gaps in color palettes.

Please take a break enjoying this phoenix set.

For the 3D-effect it is just basic Phong shading, yet the misunderstanding on my side was that I used the Y-component in the same way in which I would have used the L-component in the LAB-Model and when changing the intensity according to Phong shading I just adapted the Y-component of the color. Yet, that was incorrect, also the U and V-component must be adapted. Well, I am not a computer graphics expert (if that wasn’t obvious…)

Sorry for this lecture, anyways, let’s get to the point: For easter I give you an update, Version 1.0.2, currently in beta, full release within 1-2 days.

Inverse Functions

Now that the 3D-effect of my easter egg was fine, I needed to project points onto a sphere and for this purpose I needed the inverse sine function. Yes, it is possible to express it using the complex logarithm but this is complicated. Therefore, I added “asin”, “acos” and also the inverse of the hyperbolic functions “asinh” and “acosh” (note to self: Add them to the function list).

New Parameter Set for “Aggregate”

There is furthermore a new parameter set for Aggregate Samples that allows branching for bound (eg Newton and Nova fractals) and unbound (like the Mandelbrot Set) fractals. Here is my all-time favorite Newton Sinh with Branching for Aggregate.

Hint: To mix multiple Samples, use a long-click on a sample and parameters will be merged.

Newton Sinh mixed with Branching Aggregate

You find these three images here on my google drive. They require version 1.0.2, at least the easter egg because it requires the “asin”-function!

Others

Finally, two more things:

  • I think I did not release the “Set to Center”-context menu for parameters that contain complex numbers. I used it in the videos though. Now it should be included, sorry for the inconvenience 🙂
  • “Save Image to Gallery” now saves images as PNG, therefore, the background of Planet Seahorse is transparent (this happens if the result of a pixel is ‘Not a Number’).

Again, Happy Easter, stay safe and healthy and thank you for using my app.

— Karl

Leave a comment

Design a site like this with WordPress.com
Get started