Logo by Dinkydau - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. April 25, 2024, 01:59:03 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1] 2 3   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Buddhabrot R&D Gallery  (Read 3955 times)
0 Members and 1 Guest are viewing this topic.
richardrosenman
Conqueror
*******
Posts: 104



WWW
« on: August 10, 2010, 03:28:49 AM »

I've been doing quite a bit of testing on my Buddhabrot generator with new and unique techniques and I figured this would be a good place to post them.

This first image stemmed from this thread in which cbuchner1 shows is fantastic Buddhabrot spectral renders! http://www.fractalforums.com/images-showcase-(rate-my-fractal)/buddhabrot-reinvented/

I experimented with such a technique but ran into some roadblocks, particularly in the way that my plugin is coded versus his would require quite an overhaul for a similar treatment. However, that led me into trying out HSV spectral coloring techniques and the results turned out nicely. Basically, this involves coloring the Buddhabrot by mapping the orbit length to the Hue channel of HSV color space. As the orbit length increases, the color hue changes therefore using the entire color spectrum to color with. This, in turn, reveals many Buddhabrot features that were previously difficult to see:


  
Most of these images have had levels adjusted for optimal presentation.

-Richard
« Last Edit: August 10, 2010, 03:45:54 AM by richardrosenman » Logged

richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #1 on: August 10, 2010, 03:37:37 AM »

Having had good results with the HSV, I tried Lab color space:



Of course, it all depends on what channel you map it to. In this case, the coloring was mapped to the 'b' color-opponent dimension but it could have been mapped to the 'a', although it didn't yield as nice results. You could also map to both and change the balance between the two for even more unique effects. The 'L' channel in Lab simply controls lightness so it would simply produce somewhat boring luminance-based renders.

-Richard
Logged

richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #2 on: August 10, 2010, 03:39:24 AM »

And another interesting test, this one using the IUV color space and mapped to the 'V' channel (I believe):



-Richard
Logged

kram1032
Fractal Senior
******
Posts: 1863


« Reply #3 on: August 10, 2010, 11:39:04 AM »

If you convert Lab to HSL (just L, radius from whitepoint and relative angle to whitepoint) does that look any different to the HSV one?
Logged
richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #4 on: August 11, 2010, 07:13:26 AM »

If you convert Lab to HSL (just L, radius from whitepoint and relative angle to whitepoint) does that look any different to the HSV one?

Hi Kram1032;

I'm not sure which L you mean (the Lab or HSL) and which component you want to map to... Here's some pseudo code of my process. Maybe you can re-write it to show me what you mean and I'll give it a shot.


h = rgb2hsl (red ,green,blue,0);
s = rgb2hsl (red ,green,blue,1);
l = rgb2hsl (red ,green,blue,2);

pset(x,y,0,hsl2rgb(red,s,l,0));
pset(x,y,1,hsl2rgb(green,s,l,1));
pset(x,y,2,hsl2rgb(blue,s,l,2));
Logged

kram1032
Fractal Senior
******
Posts: 1863


« Reply #5 on: August 11, 2010, 02:32:09 PM »

H = atan2(Lab.b,Lab.a)
S = sqrt(Lab.a²+Lab.b²)
L =  Lab.L

And use those just in the way, you used HSV before.
I hope, that's clear smiley
Logged
richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #6 on: August 12, 2010, 03:09:46 AM »

Hi Kram1032;

Well, here's what I get using this method:



There's definitely some problems with this because it doesn't work in 16 bit mode, only 8. In addition, after some further investigation, here's what I found:


depth=255.0;
red = red*depth;
green = green*depth;
blue = blue*depth;
l = rgb2lab ((int)red ,(int)green,(int)blue,0);
a = rgb2lab ((int)red ,(int)green,(int)blue,1);
b = rgb2lab ((int)red ,(int)green,(int)blue,2);


h = (int)atan2((float)b,(float)a);
s = (int)sqrt((float)a*(float)a+(float)b*(float)b);
l2 = l;


Above, h always returns one which is most likely a problem.


pset((int)x,(int)y,0,hsl2rgb(h,s,l2,0));
pset((int)x,(int)y,1,hsl2rgb(h,s,l2,1));
pset((int)x,(int)y,2,hsl2rgb(h,s,l2,2));


Is this the algorithm you had in mind? I have a feeling there's a flaw in here somewhere... wink

-Richard
Logged

richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #7 on: August 12, 2010, 03:10:57 AM »

On another note, neat result of the Tricorn using HSL color space mapping:



-Richard
Logged

lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #8 on: August 12, 2010, 02:04:09 PM »

very interesting buddhabrots on display here, you're all making me want to render some of my own *jealous*  grin

great work!
Logged

cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #9 on: August 12, 2010, 02:17:39 PM »

buddhabrots offer nice views of well known formulas, i would love to see more formulas rendered as buddhabrots ( hybrid formulas, any other existing fractal )
and also i would be interested in a 3d version of the buddhabrots made of triplex numbers cheesy

Logged

---

divide and conquer - iterate and rule - chaos is No random!
kram1032
Fractal Senior
******
Posts: 1863


« Reply #10 on: August 12, 2010, 02:33:02 PM »

the H value always returns 1? That definitely should NOT happen....

atan2(y,x) should give the angle (x,0,y) in radians, so the angle that points from the origin to the point in the plane.
As the Lab space is built in this way, it should work perfectly...

Well, allthough it's only red, it looks very nice smiley
And the tricorn of it looks great smiley
Logged
richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #11 on: August 13, 2010, 05:27:01 AM »

the H value always returns 1? That definitely should NOT happen....

atan2(y,x) should give the angle (x,0,y) in radians, so the angle that points from the origin to the point in the plane.

I took a quick look at it tonight and noticed that the result of atan2(b,a) spits out a float between 0 and 1. Since I was converting to integer, it rounded it off to one. For this test, I multiplied that float by the color bit depth and then converted to int. Here's the result:



It's a bit better but not really to my liking. At least you see a lot more detail than the previous one! smiley

-Richard
Logged

richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #12 on: August 13, 2010, 07:33:48 AM »

I let this test go last night and it turned out quite nice. Heading describes the technique:



-Richard


Logged

kram1032
Fractal Senior
******
Posts: 1863


« Reply #13 on: August 13, 2010, 11:54:57 AM »

you multiplied by the colour bit depth?
I think, that's wrong but I'm not sure...

Why not use the float and convert to ints later?
Also the atan2 function in theory should return values from 0 to 2pi or from -pi tp pi...
Oh well, maybe the definition is different for some unknown reason...


The split comples Buddhabrot looks beautiful cheesy
The heading?
Logged
richardrosenman
Conqueror
*******
Posts: 104



WWW
« Reply #14 on: August 15, 2010, 01:46:34 AM »

I did some tests a while back based on Ker2x's interesting Buddhabrot mutations that can be found here:

http://www.fractalforums.com/fractal-programs/a-creative-buddhabrot-rendering/

This first test involves computing a random c-point, and then incrementing xa or ya by 0.0001. Once you reach a million samples, you recompute a new random c-point and do it all over again. By incrementing xa / ya, you produce lines instead of points:



Of course, the problem with this is that the longer you let it iterate, the more it will develop to look like a typical Buddhabrot render so unlike the standard practice, the less time you iterate, the more unique it looks. Iteration time here was only 20 minutes.

-Richard
« Last Edit: August 15, 2010, 01:54:18 AM by richardrosenman » Logged

Pages: [1] 2 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Lines 3D Art titia 0 1508 Last post April 25, 2009, 11:53:17 AM
by titia
Vase Lines Mandelbulb3D Gallery mario837 0 1135 Last post April 07, 2011, 07:01:03 PM
by mario837
Lines of Force Images Showcase (Rate My Fractal) Pauldelbrot 0 1218 Last post August 20, 2011, 06:26:28 AM
by Pauldelbrot
Point to Point Images Showcase (Rate My Fractal) element90 0 1234 Last post September 23, 2011, 03:12:07 PM
by element90
Three Lines Meet Images Showcase (Rate My Fractal) element90 0 986 Last post September 23, 2011, 03:15:46 PM
by element90

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.187 seconds with 27 queries. (Pretty URLs adds 0.013s, 2q)