dwsel
Forums Freshman
Posts: 14
|
|
« Reply #15 on: July 01, 2011, 09:57:16 PM » |
|
@yv3: Thanks for your comment... I'm don't have too much math knowledge either, but I'm always borrowing it from the guys here who really have some "Boxfold" is what you just did: if(x>m_CustomRange4) x=m_CustomRange3-x; if(y>m_CustomRange4) y=m_CustomRange3-y; But other values instead of >1 and 2- produces discontinuities, at least with the values I tried. If you plot a graph of this function and substitute with values other than 1 and 2- it's very likely that you'll not choose 'correct' values and you get discontinuity, but... if you try my method instead and treat formula with: 1. absolute value 2. translation 3. mirror by x axis (f(x) = -x) 4. repeat 1-3 how many times you like for multiple folds then you should never get discontinuity. On the other side note that function won't be differentiable, what might be important for calculating 3d Mandel (I don't know math standing behind it). I'm waiting for your results P.S. Sorry for my mathematical english - it's pretty bad. Please point out when I write something unclear or unintentionally exchange math terms. P.P.S. I'll try to implement thing in ChaosPro instead of Tierazon. Just imagine these slowly rendering, kilometre long formulas where abs(x) is for example calculated as ((real(z)^2)^0.5)
|
|
« Last Edit: July 01, 2011, 10:03:13 PM by dwsel »
|
Logged
|
|
|
|
dwsel
Forums Freshman
Posts: 14
|
|
« Reply #16 on: July 02, 2011, 01:02:45 AM » |
|
Img 1 -abs(x-1.5)+1.5; Img 2 -abs(x-1.25)+1.25; Img 3 if (x>1.8) x=2-x; else x=x; Img 4. From lightest to darkest green, plot of functions used in Img 1, Img 2, -abs(x-1)+1, and in Img 3 (shows discontinuity at 1.8 )
|
|
« Last Edit: July 02, 2011, 01:05:34 AM by dwsel »
|
Logged
|
|
|
|
Kali
|
|
« Reply #17 on: July 02, 2011, 02:24:06 AM » |
|
Now I see it clearer, dwsel. It's very good, indeed. I just realized also that I did something like that in this "mandelbrot-tricorn-combo" image some days ago: I used abs and translations, but I was stupid enough to not realizing it's similar to a "boxfold" I will try more things later using your idea. Thanks! P.S.:Good renders! and your english is better than mine, for sure!
|
|
« Last Edit: July 02, 2011, 03:53:11 AM by Kali »
|
Logged
|
|
|
|
Kali
|
|
« Reply #18 on: July 02, 2011, 07:39:45 AM » |
|
This is complex-number kaliset using this formula, based on dwsel's suggestion: z=1/(abs(z+t)-t)+c t=(1.00,1.00) t=(0.75,0.25) t=(5.00,1.00) And a Julia I picked from the last one: @dwsel: One thing I forgot to mention, is that "full" boxfold is, i.e. for x axis: if x>1 x=2-x elseif x<1 x=-2-x endif I tried to do the same with nested abs's but I couldn't, maybe you can find the way to do it?
|
|
|
Logged
|
|
|
|
Kali
|
|
« Reply #19 on: July 02, 2011, 08:24:23 AM » |
|
An intrincate pattern of trees:
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #20 on: July 02, 2011, 09:37:05 AM » |
|
@dwsel: One thing I forgot to mention, is that "full" boxfold is, i.e. for x axis: if x>1 x=2-x elseif x<1 x=-2-x endif I tried to do the same with nested abs's but I couldn't, maybe you can find the way to do it? You should take a look at Rrrola's clever Mandelbox implementation in Boxplorer: // box folding: if (p>1) p = 2-p; else if (p<-1) p = -2-p; // p.xyz = abs(1.0+p.xyz) - p.xyz - abs(1.0-p.xyz); // add;add;abs.add;abs.add (130.4%) // p.xyz = clamp(p.xyz*0.5+0.5, 0.0, 1.0) * 4.0 - 2.0 - p.xyz; // mad.sat;mad;add (102.3%) p.xyz = clamp(p.xyz, -1.0, 1.0) * 2.0 - p.xyz; // min;max;mad
// sphere folding: if (r2 < minRad2) p /= minRad2; else if (r2 < 1.0) p /= r2; float r2 = dot(p.xyz, p.xyz); p *= clamp(max(minRad2/r2, minRad2), 0.0, 1.0); // dp3,div,max.sat,mul
Using a clamp-operator is 30% faster (on a GPU), but if you haven't got one, there is still the 'abs' version in line 2.
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #21 on: July 02, 2011, 11:12:17 AM » |
|
This is complex-number kaliset using this formula, based on dwsel's suggestion: z=1/(abs(z+t)-t)+c t=(1.00,1.00) <Quoted Image Removed> t=(0.75,0.25) <Quoted Image Removed> t=(5.00,1.00) <Quoted Image Removed> And a Julia I picked from the last one: <Quoted Image Removed> @dwsel: One thing I forgot to mention, is that "full" boxfold is, i.e. for x axis: if x>1 x=2-x elseif x<1 x=-2-x endif I tried to do the same with nested abs's but I couldn't, maybe you can find the way to do it? dwsel meant fold-abs(+fold -abs(x)) (else, you are losing your 1st abs! ) If you simply read Jesse's formulas you will find the abs version of folding; x = abs(x+Fold) - abs(x-Fold) - x Anyway, if I do a unrestricted sphere inversion I don't see anything good in Mandelbulb A good compromise is to make normal conditional inversions. Anyway "my" fractal still looks very different from yours, I really don't know why there is no possible sign error! EDIT. I remember this happened for other fractal formulas too. Maybe Jesse uses "windows screen axis orientation", rather than the "mathematical correct" one - this should explain everything. Well well! : :
|
|
« Last Edit: July 02, 2011, 12:05:55 PM by DarkBeam »
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
Kali
|
|
« Reply #22 on: July 02, 2011, 01:57:33 PM » |
|
@Syntopia: I will try that, thanks! @Luca: dwsel meant fold-abs(+fold -abs(x)) (else, you are losing your 1st abs! ) If you simply read Jesse's formulas you will find the abs version of folding; About dwsel suggestion, sorry but I don't see where she's using two abs like that Thanks for the solution, and yeah, I know I should read more other people's work, but I like to figure out things by myself when I can. I tried but I was tired last night so I stopped (my mathematical mind was already sleeping ). Anyway I was doing some interesting things with just abs(z+t)-t About the 3D version you made, is not bad at all, what about the Julias?
|
|
|
Logged
|
|
|
|
Kali
|
|
« Reply #23 on: July 02, 2011, 04:37:23 PM » |
|
Currently playing with asymmetrical folding z=1/(abs(z+0.25+0.50i)-abs(z-0.50-1.00i)-z)-1.50-1.50i = Full moon
|
|
|
Logged
|
|
|
|
dwsel
Forums Freshman
Posts: 14
|
|
« Reply #24 on: July 02, 2011, 05:16:33 PM » |
|
dwsel meant fold-abs(+fold -abs(x)) (else, you are losing your 1st abs! ) If you simply read Jesse's formulas you will find the abs version of folding; x = abs(x+Fold) - abs(x-Fold) - x I've suggested sth like: -abs(-abs(-abs(x-a)+b)-c)+d) and so on... i.e. abs(-abs(x-1.5)+1.5)-0.2 - light green function or -abs(-abs(x-0.5)+1.25)-0.75 - dark green and so far haven't worked out a rule where to use + and - I think that if you use - abs then you should use + parameter and accordingly [don't know which edit it is ] I know already - before applying abs() function have to cross x axis Articles http://home.windstream.net/okrebs/page43.html and http://www.abac.edu/gclement/MATH1111/Resources/Symmetry.pdf are reflecting roughly what I base my reaserch on. You should take a look at Rrrola's clever Mandelbox implementation in Boxplorer: // box folding: if (p>1) p = 2-p; else if (p<-1) p = -2-p; // p.xyz = abs(1.0+p.xyz) - p.xyz - abs(1.0-p.xyz); // add;add;abs.add;abs.add (130.4%) // p.xyz = clamp(p.xyz*0.5+0.5, 0.0, 1.0) * 4.0 - 2.0 - p.xyz; // mad.sat;mad;add (102.3%) p.xyz = clamp(p.xyz, -1.0, 1.0) * 2.0 - p.xyz; // min;max;mad
// sphere folding: if (r2 < minRad2) p /= minRad2; else if (r2 < 1.0) p /= r2; float r2 = dot(p.xyz, p.xyz); p *= clamp(max(minRad2/r2, minRad2), 0.0, 1.0); // dp3,div,max.sat,mul
then full boxfold is as far as I understand (red function): if (p>1) p = 2-p; else if (p<-1) p = -2-p; Blue function is something as ugly as (I hope it can be simplified): (abs((x/2-0,5)-(2*floor(x/4-0,25))-1)-0,5)*2 and have even infinite number of folds Each of functions using abs (green ones) has odd number of folds while original boxfold has only 2 folds as well as (0,0) symmetry which I don't know how to achieve here.
|
|
« Last Edit: July 02, 2011, 05:33:43 PM by dwsel »
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #25 on: July 02, 2011, 05:39:58 PM » |
|
I am uploading this formula version Scale = Scale + Scale_vary*(abs(Scale)-1) x = Fold-abs(abs(x+FoldXM)-Fold)-FoldXM y = Fold-abs(abs(y+FoldYM)-Fold)-FoldYM z = Fold-abs(abs(z+FoldZM)-Fold)-FoldZM rr = pow(x*x + y*y + z*z + w*w, R_power) if rr < sqr(Min_R) then m = Scale/sqr(Min_R) else if rr < 1 then m = Scale/rr else m = Scale x = x * m + Cy y = y * m + Cx z = z * m + Cz Gives lots of interesting julias, so much to explore. The "unconditional" formula is troubleful, as many other Kali works... For now take a look at it. Going to upload it then post some "photos" herrrre
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #26 on: July 02, 2011, 06:00:15 PM » |
|
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
Kali
|
|
« Reply #27 on: July 02, 2011, 06:28:36 PM » |
|
@dwsel: I'm definitely going to try that foldings later, will post some images but maybe I will open a new thread because this one was hijacked by Darkbeam and his boring 3D stuff I was trying first the full boxfold using weird values, I like how it works and the less symmetric images... see this one The "unconditional" formula is troubleful, as many other Kali works... For now take a look at it. Going to upload it then post some "photos" herrrre Yeah, troubleful for 3D, but anyway nobody are interested in 3D fractals lately The main problem with my all-inside formulas in 3D is that they are designed for 4D beings who have real 3D vision, not 2D stereo like we humans Besides the jokes, your images look very interesting!
|
|
|
Logged
|
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #28 on: July 02, 2011, 06:48:59 PM » |
|
Heh thanks... for dwsel. can you make me a graphic of this function? (when x1=x-2*round(x/2); round(0.49999)=0 and round(0.5)=1 ) y=abs(x1+1) - abs(x1-1) - x1 In assembly I don't have floor() and ceil() functions, only it, but I can easily combine functions to get complex results the graphic of y should be the infinite folding
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #29 on: July 02, 2011, 07:01:25 PM » |
|
Heh thanks... for dwsel. can you make me a graphic of this function? (when x1=x-4*round(x/4); round(0.49999)=0 and round(0.5)=1 ) y=abs(x1+1) - abs(x1-1) - x1 In assembly I don't have floor() and ceil() functions, only it, but I can easily combine functions to get complex results the graphic of y should be the infinite foldingCorrected; this is the correct one! I will do some functions with it soon
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
|