kram1032
|
|
« Reply #15 on: December 05, 2012, 12:55:19 PM » |
|
I can't recall what exact bailout settings I used and such. It's very likely that I simply used a circular region of big radius. Not the typical radius 2 but more like radius 32 or something. I wonder what would be the "actual" formula for it. Note, though, that what you see is a fairly low-quality image that is relatively heavily post-processed to recduce noise and such. Furthermore, it's an antibuddhabrot.
I noticed in later experiments that you can significantly change the results by discarding values that are inappropriate for the given render. It may very well be that, if you have a different bailout strategy, you get quite a different result. I'd love to see more experimentation with that MSet. I already noticed that it essentially includes features of polynomial MSets of every order. Likely a result of the tangens being a exponential and rational function.
A proper bailout area likely is relatively complex, since tan repeats infinitely and thus there are infinitely many regions outside of any given circle that would still converge. (notably all the points where x tan x = 0 , which happens where ever tan x = 0)
That being said, I'd love to see your versions for comparison.
|
|
|
Logged
|
|
|
|
Alef
|
|
« Reply #16 on: December 05, 2012, 05:29:50 PM » |
|
I 'stolen' some of your formulas so will try out what will happen;) Especialy cos there are spirals.
If you have simple polynomial probably bailout value don't have so much role, if modulus is larger than 4, it don't go back to screen coordinates. So I kept it low, so to reduce calculations. With tan it is a bitt different, orbits goes back to screen even if they are larger than 4.
Mine pic don't have any postprocess, I posted as they were. However my version is not proper buddhabrot or antibuddhabrot, it's more like (calculation) optimised version, as it don't checks for insides or outsides. Insides iterates longer so it looks more like antibuddhabrot. But it's antibuddhabrot which correspondents to logistic map like mandelbrot set do.
|
|
|
Logged
|
fractal catalisator
|
|
|
|
Ryan D
|
|
« Reply #18 on: December 05, 2012, 11:22:31 PM » |
|
Here's a collection of "exploding Buddhabrots", again using Fractint. Fractint has a number of hard-coded fractal types that allow for function switching once an intermediate bailout value is reached. In this case, I switched from the Buddhabrot (z squared + c) to one of the 26 function variants (for example, sin(z) +c, log(z) + c, acosh(z) + c, etc). The individual animation segments all start with an immediate switch to the function variant, and over time the intermediate bailout increases logarithmically from 0 to some arbitrarily large number, 888 or something like that. Some of the function variants look quite unusual when the iteration is started at these more-or-less random initial points. http://vimeo.com/moogaloop.swf?clip_id=49909314&server=vimeo.com&fullscreen=1In order, the function variants are: SIN COS TAN COTAN SINH COSH TANH COTANH EXP LOG RECIP IDENT ZERO ONE CONJ FLIP COSXX ASIN ASINH ACOS ACOSH ATAN ATANH SQRT ABS CABS Ryan
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #19 on: December 05, 2012, 11:52:37 PM » |
|
good animation but far too fast i like that you plot the complex transform, but it is far far far too fast dude!! how much differs a triplex brot ... buddhas in 3d ... i think someone did it before, but no time to search #
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
Ryan D
|
|
« Reply #20 on: December 06, 2012, 12:53:07 AM » |
|
|
|
|
Logged
|
|
|
|
Alef
|
|
« Reply #21 on: December 06, 2012, 10:03:54 AM » |
|
If you calculate buddhabrot proper you pick random points, iterate, and throw out non escaping orbits and picture builts up very slowly. If you iterate and throw out escaping orbits, you have antibuddhabrot, and picture builts much faster, but still some orbits are iterated but not used. So I didn't throw out any orbits, what saves some calculation time, but it's not quite an buddhabrot or antibuddhabrot;). Alsou if you iterate point twice as described in original buddhabrot algorithm, it makes it slow. And probably alsou colour calculation by 3 iteration lenghts makes it 3x slower. This one is reasonably fast even on my very old old pentium 2. Tested some formulas and picked what looked best. ;Royal Imagination z=sqr(real(z))- sqr(sqr(imag(z))) + flip( 2*real(z)*imag(z) ) +c (x->x2-y4+x0 y->2xy+y0) In switch I named this Royal Mbrot. Royals must be obese. Here ambient light is negative, and colour value is added to it. Then colours are by absolute value. ;Swirl Mbrot z=(e^flip(cabs(z)+atan2(z))*z )^3 +c abs(x+yi)*ei(abs(x+yi)+arg(x+yi)) squared +c didn't wanted to generate simmetric picture, but with real modulus it become simmetric. Inverted and switched channels. ;Tangentbrot z=tan(z)*z+c With basic values it were too pixelate, but with slightly less colours and more ambient light there are less pixels. Oops, after it rendered I slightly moved picture (I renered this in Chaos pro), so it cutted of the bottom. So while eating breakfest I rendered tangentbrot is smaller resolution. Maybe too much ambient light. This needs bitt tweaking or contrast.
|
|
|
Logged
|
fractal catalisator
|
|
|
kram1032
|
|
« Reply #22 on: December 06, 2012, 11:25:37 AM » |
|
I'm not calculating colors three times. Rather I "cut them off", e.g. I do: "Once 200 is reached, save results into blue channel." "Once 2000 is reached, save results into green channel." "Once 20000 is reached, sace results into red channel and stop." So at the very least it's efficient in this way. I really love the swirl transform I crafted. (I really crafted it. I recall finding out about gravity waves back then and there was a Wikipedia image of two neutron stars orbiting each other, generating swirly waves, so I tried to find a way to make such waves myself.) The squared Version wasn't symmetric, you say? Weird... i think there might be some nice variants of it, if you fiddle with the frequencies. Try something like where f and g would be frequency factors. An increase in f would mean more frequent ripples along the radius, while an increase in g would mean more turns. Also interesting might be which should make the ripples along the radius be dependend on the logarithmic distance rather than the linear one, so the spiral becomes logarithmic instead of Archimedean. Note, what ever formula you try, the described swirl transforms should simply replace your typical z, rather than the entire equation. So I see you liked my naming of that later one.
|
|
« Last Edit: December 06, 2012, 11:27:48 AM by kram1032 »
|
Logged
|
|
|
|
Alef
|
|
« Reply #23 on: December 07, 2012, 10:19:19 AM » |
|
Shame that on office PC I can't watch videos;) I really love the swirl transform I crafted. (I really crafted it. I recall finding out about gravity waves back then and there was a Wikipedia image of two neutron stars orbiting each other, generating swirly waves, so I tried to find a way to make such waves myself.) The squared Version wasn't symmetric, you say? Weird... Swirl transform worked corectly. Just that in ultrafractal abs(z) is not the modulus of z. in UF cabs(z) = (x^2 + y^2)^1/2, but abs(z) returns complex positive value, so its different function. And in UF flip(x) switches real and imaginary values. But z=(e^flip(cabs(z)+atan2(z))*z )^@power +c had more features than z=(e^flip(cabs(z)+atan2(z))*cabs(z) )^@power +c . A bitt faster z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power +c Nice transform. So far they didn't found graviational waves, but relativity is convincing so probably they will found. "Once 20000 is reached, sace results into red channel and stop." I used 200 as maximum iterations. Probably this is real reason for speed differences. With my colour calculation method colours alredy are generated at low iterations, and larger maximum iterations just increases contrast of final picture. ;Swirl Mbrot z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power +c with power =2 it is simmetric. Red is becouse of sin transfer function. ;SummonerEye z=(z + c) / ( conj(z)- c+ @talisadd ) With talisadd =1 Modified formula from The summoner. SMooth colours are becouse of sin(colour). ;Gavarun z=cabs(z)^( @talisadd + flip(atan2(z) ) ) +c With talisadd=1 Pretty cool transform, this didn't needed additional squaring. Looking at this I remembered russian cartoon parrot who were able to fly in space. p.s. This is stupid, but just can't decide, how to call this: http://www.fractalforums.com/fractal-programs/poll-about-neigbouring-thread/
|
|
« Last Edit: December 07, 2012, 10:24:57 AM by Alef »
|
Logged
|
fractal catalisator
|
|
|
kram1032
|
|
« Reply #24 on: December 07, 2012, 01:20:11 PM » |
|
I know they didn't find them yet. But they illustrated the expected waves in a gif. That's what I was aiming for with my transform. To get to that from my version, you just need to normalize the wave heigth, mess a bit with the frequencies and add in a time dependency and possibly, to get to a more generic form, a phase. By the way, the Summoner and the Daemon of Circles both do not require squaring. The formulae I wrote down were the full thing. No powers used. There might also be a nice triplex version to this... The swirl transform would then be something like: x=r cos(phi + r) sin(theta + r) y=r cos(phi + r) cos(theta + r) z=r sin(phi +r) or some corresponding variant of that... For the logarithmic version, just use log(r) in the sin and cos instead of r. You might also want to mess around with prefactors to further control frequencies and phases of the ripples. The bailout values you mention were an example by me. While often do use 200,2000,20000, it's not always the case. Some of the transforms I used in fact need less to even show anything.
|
|
« Last Edit: December 07, 2012, 02:03:29 PM by kram1032 »
|
Logged
|
|
|
|
Alef
|
|
« Reply #25 on: December 07, 2012, 05:23:10 PM » |
|
In M3D there are some rotation modifications, just haven't looked are they different or alredy the same. Kali seems to used some e^ %^#&*^ rotations. But as far as I know, there aren't 3D version of this: With this one can put 1 as coeffitient. It somewhat hearth like. I had read a lott about a gravitation waves. Of all undetected physical phenomen, they seems to be the most probable, much moreso than dark energy. Finnaly uploaded this version of Buddhabrot in Ultra Fractal database (in EM.ucl) and in Chaos Pro. But with the name BRAHMABROT. IMHO it is enought different to have special name;)http://www.chaospro.de/formulas/display.php?fileid=238
|
|
« Last Edit: December 07, 2012, 05:32:43 PM by Alef »
|
Logged
|
fractal catalisator
|
|
|
cKleinhuis
|
|
« Reply #26 on: December 07, 2012, 05:29:28 PM » |
|
what is the red dots in the image, me dont like ... can you remove them ?!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
Alef
|
|
« Reply #27 on: December 10, 2012, 08:05:51 AM » |
|
Slightly improved my Brahmabrot technique. To the normal mandelbrot bailout added newton bailout conditions. So bailout is: ( (cabs(z) < 4) && (cabs(zold-z) >0.001 ) && (iter < @maxIter) ) This is more like magnet bailout, it reveals more features as it don't allows non escaping orbits to iterate too long so filling everything with white. But it alsou means slight loss of speed. Realy it is much better now. With new bailout and zold variable now I can make Magnet and Manowar buddhas, but tangent formula somewhat dissapeared. Probably more easy for exploring formulas would be to have class switch, but then with my own classes. Alsou tweeked parameters, so that there are less dots. Decreasing bailout value for unknown reason decreased number of dots a lot. Dots alsou depend on colour parameters. Red dots should be some special orbits, they somewhat depends on random seed. I kind of liked spirals and owerall imperfect looks, but when they are not too much;) In UF ducks fractal uses rotation like this: z = exp(1i*parameter/pi*180)*z And in Mandelbulb3D rotation is by sines and cosines: SinCos(Iteration_multiplier * rho * Pid180, s, c) x' = x * c + y * s y' = y * c - x * s So gravitation waves inspired Swirlbrot rotation (exp( 1i*(cabs(z)+atan2(z) ) ) *z ) indeed are novel way in fractal world:) I tested it as escape time formula, nice one, it's like rotated LKM's rotated mandelbrot;) Here is final quality parameter file. It woun't render fast and you 'll see nothing before completion, throught. On my ancient PC it took 2 hours. Fractal1 { fractal: title="Fractal1" width=800 height=600 layers=1 credits="Asdam;12/8/2012" layer: caption="Background" opacity=100 transparent=yes mapping: center=0/0 magn=1 formula: maxiter=100 filename="Standard.ufm" entry="Pixel" inside: transfer=none outside: transfer=linear filename="em.ucl" entry="Brahmabrot" p_sampleDensity=10000 p_maxiter=200 p_seedinput=-8 p_formula=Mandelbrot p_power=2 p_starpower=7 p_unitvector=-0.5 p_talisadd=1 p_quadfactor=2.5 p_sizescaling=1 p_srcWidth=5 p_srcHeight=4 p_palette="Direct Colouring" p_switchRGB=None p_ambient=0.12 p_postfn="0- None" p_lightR=0.38 p_scalarR=0.7 p_lightG=0.98 p_scalarG=1.6 p_lightB=0.14 p_scalarB=0.3 gradient: smooth=yes index=0 color=8716288 index=100 color=16121855 index=200 color=46591 index=300 color=156 opacity: smooth=no index=0 opacity=255 } If someone are interested in UF code, here it is, throught Chaos Pro have more normal C style language and complex numbers generated in more usual way like complex(n ,m) instead of n + flip(m): Brahmabrot { ; This is different from standart Buddhabrot in that ; colours are calculated from progressive curves ; using Wave Trichrome method, who are inspired by RGB Buddhabrots but needs fewer iterations. ; As it don't tests for insdes or outsides of fractal, but mixes buddhabrot and antibuddhabrot. ; Alsou it used both mandelbrot and newton bailout. ; source code for this mostly is taken from Susan D. Chambless buddhabrot. ; and one more loop. ; Some formulas like Swirl transform, Royal, SummonerEye, Gavarun are by Kram1032. ;By Edgar Malinovsky 02.12.2012.
;http://www.fractalforums.com/fractal-programs/problems-with-implementing-budhabrot-in-uf/ ;08.12.2012 ; Added newton bailout revealing more features. ; Tweeking of parameters, so that there are less dots. ; Changed some formulas for another.
; You may redistribute this algorithm, modify, derivate or use comercialy as you wish as long as you give proper credits.
$DEFINE DIRECT global: float increaser=0 float antilightR=1/@lightR float antilightG=1/@lightG float antilightB=1/@lightB int seed = @seedinput float dataR=1 float dataG=1 float dataB=1
int pwid = trunc(#width) int phgt = trunc(#height)
;3 arrays for RGB float pixR[trunc(#width),trunc(#height)] ; offscreen image float pixG[trunc(#width),trunc(#height)] ; offscreen image float pixB[trunc(#width),trunc(#height)] ; offscreen image
;calculate buddha loop many times int superloop=1 int slcounter =0
complex locations[@maxiter] ; collect locations int cnt = 0 ; Loop counters float colourcnt = 0 ;colourcounter int x = 0, int y = 0 ; Loop counters & integer coords float xc = real(#center) ; Scaling constants float yc = -imag(#center)
float srcMinX = - (@srcWidth * 0.5) float srcMinY = - (@srcHeight * 0.5) float scale = (#height * #magn) / 3*(@sizescaling) float nsamples =0 int irandX1 =0 int irandY1 =0 float srcX1 =0 float srcY1 =0 complex z =0 complex c =0 complex zold=1 int iter =0 int locindex =0 float dx =0 float dy =0
; Initialize arrays of RGB pixels with neutral colour. while x < #width y = 0 while y < #height pixR[x, y] = @ambient pixG[x, y] = @ambient pixB[x, y] = @ambient y = y + 1 endwhile x = x + 1 endwhile
; Main buddha iteration loop nsamples = round(#width * #height* #magn) cnt = 0
;if sample number is too large, divide single ;loop in many small. 12 divides better than 10, so multiples of 12 is used. IF @sampleDensity > 497664 nsamples = trunc(nsamples/3456) superloop=3456 ELSEIF @sampleDensity > 41472 nsamples = trunc(nsamples/288) superloop=288 ELSEIF @sampleDensity > 3456 nsamples = trunc(nsamples/24) superloop=24 ELSE nsamples = trunc(nsamples/4) superloop=4 ENDIF
nsamples = nsamples * @sampleDensity
while slcounter < superloop ; superloop
while cnt < nsamples ;main buddha loop ; generate random integers (-#randomrange to #randomrange) irandX1 = seed = random(seed) irandY1 = seed = random(seed)
; convert to random float numbers srcX1 = (abs(irandX1) / #randomrange)*@srcWidth + srcMinX srcY1 = (abs(irandY1) / #randomrange)*@srcHeight + srcMinY
; Mbrot set with random c value z = 0 c = srcX1 + flip(srcY1) zold=1 ; iteration count and modulus, this don't need large bailout iter = 0 while ( (cabs(z) < 4) && (cabs(zold-z) >0.001 ) && (iter < @maxIter) ) ;fractal formula loop
zold=z IF (@formula ==0) ;Mandelbrot z= z^@power +c ELSEIF (@formula ==1) ;Talis z= z^@power/(z^(@power-1) + @talisadd) +c ELSEIF (@formula ==2) ;Starbrot z= z*0.5 - z^@starpower + c ELSEIF (@formula ==3) ;Tricorn z= conj(z^@power)+c ELSEIF (@formula ==4) ;BurningSihp z=abs(z^@power)+c ELSEIF (@formula ==5) ;8th modulus Mbrot z=sqr(z) z=(z^8+z^8)^0.125+c ELSEIF (@formula ==6) ;Unit Vector - Mbrot z=z^@power+c z= z/cabs(z)*@unitvector +z ELSEIF (@formula ==7) ;Quadratic General z= sqr(real(z)) + sqr(imag(z))+ flip(real(z)*imag(z)*@quadfactor) + c ELSEIF (@formula ==8) ;Celtic Mandelbrot z = z^@power z = z - real(z) + abs(real(z)) - c ELSEIF (@formula ==9) ;Rotated Mandelbrot z=z^@power+c z=sqr(z)/cabs(z) ELSEIF (@formula ==10) ;Chebyshev4Axolotl z = (sqr(z)*(35 * sqr(z) - 30) + 3) / 8 + c ELSEIF (@formula ==11) ;Mbrot*iters z=z^@power*iter*0.05 +c ELSEIF (@formula ==12) ;Talis*iters z=z^@power*(z^(@power-1)+iter*0.05)+c ELSEIF (@formula ==13) ;Tricorn*iters z= conj(z^@power*iter*0.05)+c ELSEIF (@formula ==14) ;BurningShip*iters z= abs(z^@power*iter*0.05)+c ELSEIF (@formula ==15) ;QuadGen*iters z= (sqr(real(z)) + sqr(imag(z))+ flip(real(z)*imag(z)*@quadfactor) )*iter*0.05 + c ELSEIF (@formula ==16) ;Manowar z = z^2 + zold + c ELSEIF (@formula ==17) ;Multipowerbrot Odd z= ((((z^3*c+1i)^3)+1i)^3)+1i ELSEIF (@formula ==18) ;MagnetII z=sqr((z*z*z+3*z*(c-1)+(c-1)*(c-2))/(sqr(z)*3+3*(c-2)*z+(c-1)*(c-2)+1)) ELSEIF (@formula ==19) ;ChebyshevT4 z = c*(sqr(z)*(sqr(z)*8+8)+1) ELSEIF (@formula ==20) ;PerpendicularMbrot z=sqr(real(z)) - sqr(imag(z)) -flip(2*imag(z)*abs(real(z))) + c ELSEIF (@formula==21) ;Royal Imagination z=sqr(real(z))- sqr(sqr(imag(z))) + flip( 2*real(z)*imag(z) ) +c ELSEIF (@formula ==22) ;Swirl Mbrot z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power +c ELSEIF (@formula ==23) ;ConjugateBeholder z=(z + c) / ( conj(z)- c+ @talisadd ) ELSEIF (@formula ==24) ;Gavarun z=(cabs(z))^(@talisadd + flip(atan2(z) ) ) +c ELSEIF (@formula ==25) ;MalinovskyDeco z=sinh(z)*z^(@power-1) - c^@power ELSEIF (@formula ==26) ;Multipowerbrot Even z= sqr( ( sqr( z*z*c +1 )) -1 ) -1 ENDIF
locations[iter] = z iter = iter + 1
endwhile ;end fractal formula loop
locindex = 1 ;for background contrast starts with 1.
while( locIndex < iter ) ;colour loop cnt = cnt+1
dx = real( locations[locIndex] ) - xc dy = imag( locations[locIndex] ) - yc
; Scale to image x = round(dx*scale + pwid*0.5) y = round(dy*scale + phgt*0.5)
; Plot the point only if inside image if x >= 0 && x < pwid && y >= 0 && y < phgt
;colours calculated as RGB curves colourcnt=colourcnt+1 increaser=recip(sqrt(colourcnt)) dataR = (dataR + increaser )/( @scalarR + abs(pixR[x, y])*antilightR) dataG = (dataG + increaser )/( @scalarG + abs(pixG[x, y])*antilightG) dataB = (dataB + increaser )/( @scalarB + abs(pixB[x, y])*antilightB)
pixR[x, y] = pixR[x, y] + dataR pixG[x, y] = pixG[x, y] + dataG pixB[x, y] = pixB[x, y] + dataB
endif locIndex = locIndex + 1
endwhile ;end colour loop
endwhile ;end main buddha loop
;change random seed, increase superloop counter, ;set main loop to 0 and go throught next cycle. cnt=0 slcounter = slcounter+1 seed = @seedinput + slcounter endwhile ;end superloop
;now formula will go throught pixels by fractal generator. init: int xcrd = 0 int ycrd = 0 float resultR = 0 float resultG = 0 float resultB = 0 float resultAlpha=0
final: xcrd = #x ycrd = #y resultR = abs(pixR[xcrd, ycrd]) resultG = abs(pixG[xcrd, ycrd]) resultB = abs(pixB[xcrd, ycrd])
IF (@postfn==0) ;nothing
ELSEIF (@postfn==1) resultR=sin(resultR) resultG=sin(resultG) resultB=sin(resultB)
ELSEIF (@postfn==2) resultR=1- resultR resultG=1- resultG resultB=1- resultB
ELSEIF (@postfn==3) resultR=sqr(resultR) resultG=sqr(resultG) resultB=sqr(resultB)
ELSEIF (@postfn==4) resultR=1-sin(resultR) resultG=1-sin(resultG) resultB=1-sin(resultB)
ELSEIF (@postfn==5) float sumR = resultR float sumG = resultG float sumB = resultB resultR=abs(resultR -sqrt(sumG*sumB)*0.5) resultG=abs(resultG -sqrt(sumR*sumB)*0.5) resultB=abs(resultB -sqrt(sumR*sumG)*0.5) ELSEIF (@postfn==6) resultR= abs( resultR -round(resultR) ) resultG= abs( resultG -round(resultG) ) resultB= abs( resultB -round(resultB) )
ELSEIF (@postfn==7) resultR=tanh(resultR) resultG=tanh(resultG) resultB=tanh(resultB)
ELSEIF (@postfn==8) resultR=sin((resultR) )*cos((resultG)) resultG=sin((resultG) )*cos((resultR)) resultB=sin((resultB) )*cos((resultR)) ELSEIF (@postfn==9) resultR=sqr(sin(#pi*resultR)) resultG=sqr(sin(#pi*resultG)) resultB=sqr(sin(#pi*resultB)) ENDIF
; switching colour channels. IF (@switchRGB==0) ;nothing ELSEIF (@switchRGB==1) resultAlpha=resultG resultG=resultR resultR=resultAlpha ELSEIF (@switchRGB==2) resultAlpha=resultB resultB=resultR resultR=resultAlpha ELSEIF (@switchRGB==3) resultAlpha=resultB resultB=resultG resultG=resultAlpha ENDIF
;colour mode: direct, using palette, or mixed. IF (@palette==0)
#color = rgb(resultR, resultG, resultB)
ELSEIF (@palette==1) #color = gradient(resultG)
ELSEIF (@palette==2) ;gradient is by arithmetic mean of RGB color gradcolor=gradient( (resultR+resultG+resultB)*0.333333333333333 ) ;harmonic of gradient and RGB resultR=2/( recip (red(gradcolor))+ recip(resultR) ) resultG=2/( recip (green(gradcolor))+ recip(resultG) ) resultB=2/( recip (blue(gradcolor))+ recip(resultB) ) resultAlpha=alpha(gradcolor) #color = rgba(resultR, resultG, resultB,resultAlpha)
ELSEIF (@palette==3) ; colour mode like of Fractal Explorer. ; uses pallete, but each chanell is calculated seperately. resultR=red(gradient(resultR)) resultG=green(gradient(resultG)) resultB=blue(gradient(resultB)) resultAlpha=alpha(gradient( resultG))
#color = rgba(resultR, resultG, resultB, resultAlpha)
ELSEIF (@palette==4) ;all waves included. #color=gradient(3/(recip(resultR) + recip(resultG) + recip(resultB) ) ) ENDIF
default: title = "Brahmabrot" render = false
heading caption = "Use with Pixel aka No Formula." endheading
heading caption = "Buddha Block" endheading
int param sampleDensity caption = "Sample density/incrse" default = 100 hint="Main variable. The larger value, the more points hits image, the more detailed will be image. Put relatively small value for fast first calculation, then increase for smooth pic." endparam
int param maxiter caption = "Max Iterations" default = 200 hint = "Maxiter for fractal. Long orbits will stay in certain alredy dense region, but small maxiter will make this too blury." endparam
int param seedinput caption = "Lucky Number" default = -8 hint="Random seed used to calculate random numbers who realy aren't that random. Different seeds marks different firstfound orbits." endparam
heading caption = "Formula Block" endheading
param formula caption="Fractal Formula" default=0 enum= "Mandelbrot" "Talis" "Starbrot" "Tricorn" "BurningSihp" "8th modulus Mbrot" "Unit Vector - Mbrot" "Quadratic General" "Celtic Mandelbrot" "Rotated Mandelbrot" "ChebyshevAxolotl" "Mbrot*iters" "Talis+iters" "Tricorn*iters" "BurningShip*iters" "QuadGen*iters" "Manowar" "Multipowerbrot Odd" "MagnetII" "ChebyshevT4" "PerpendicularMbrot" "Royal Mbrot" "Swirl Mbrot" "SummonerEye" "Gavarun" "MalinovskyDeco" "Multipowerbrot Even" hint= "Fractal formula used for calculation. Mbrot here stands fro Mandelbrot." endparam
float param power caption="Power" default=2 visible = (@formula == 0||@formula == 1||@formula == 3||@formula == 4||@formula == 6||@formula == 8||@formula == 9||@formula == 11||@formula == 12||@formula == 13||@formula == 14||@formula == 22||@formula == 25) hint="Degree of formula." endparam
int param starpower caption="Star Power" default=7 hint="Star sides = power-1" visible = (@formula == 2) endparam
float param unitvector caption="Unit vector amount" default=-0.5 hint="Coefficient N for z=z+N*z/|z|" visible = (@formula == 6) endparam
float param talisadd caption="Talis addition" default=1 hint="In Talis adds value to z z=z^2/(z+add). In another fomulas adds value in respective places. In Gavarun it is real part of complex power." visible = (@formula == 1||@formula ==23||@formula ==24) endparam
float param quadfactor caption="Factor of x*y" default=2.5 hint="2 is very celtic and 2 is very cosmic." visible = (@formula == 7||@formula ==15) endparam
heading caption = "Pixel input Block" endheading
float param sizescaling caption = "Size Scale" default = 1 hint="Scaling here works as zooming in or out." endparam
float param srcWidth caption = "Pixel source Width" default = 5.0 hint="Input pixel area depends on width and height. Too much is waste of PC resources, not enough will mean that some fractal parts will dissapear. " endparam float param srcHeight caption = "Pixel source Height" default = 4.0 endparam
heading caption = "Colour Block" endheading
param palette caption = "Colour Mode" enum= "Direct Colouring" "Gradient Based" "Mixed Harmonic" "Fractal Explorer like" "Gradient by Harmonic" default=0 hint= "Gradient Based is gradient calculated from green channel, gradient harmonic is gradient calc from mean of all channels. Mixed is harmonic mean between gradient colour (by mean of RGB) and RGB channels. Fractal Explorer like is RGB values calculated seperately from gradient. All exept direct colouring uses gradient and alpha channel." endparam
param switchRGB caption = "Switch Colours" enum ="None" "Switch Red and Green" "Switch Red and Blue" "Switch Green and Blue" default=0 hint= "Switch colour channels to change image tones in direct mode, so that don't need to change light and scalar of RGB." endparam
float param ambient caption = "Ambient Light" default = 0.12 hint="Greyscale colour value of uniterated pixel. Result then is added / substracted from this." endparam
param postfn caption = "Transfer Function" enum = "0- None" "1- Sin (periodic)" "2- Inverted" "3- Square Power (sharper)" "4- SinInverted (periodic)" "5- Accentuate RGB" "6- Solarisation (periodic)" "7- Hyperbolic Tangent" "8- SineCosineMix (periodic)" "9- Haversine (periodic)" default = 0 hint="The same as UF, but applied before colour mode, and works with direct colour. Periodic will colour white regions." endparam
heading caption = "Info" text = "Version of Buddhabrot. Use with pixel aka no formula and wait. To increase render quality increase sample density. Difference from standart Buddhabrot is that this version don't test for escaping or non escaping orbits so it is mix of Buddhabrot and Antibuddhabrot, it have mixed mandelbrot and newton bailout and that RGB colours are calculated by Wave Trichrome method. It is alsou faster than most Buddhabrots. It is s suposed to work with plain direct colouring. If with large sample density it becomes too white try periodic transfer funtions. If with very large sample density and resolution it ceases to render, it's becouse fractal exceeded upper limit of integer numbers. http://www.fractalforums.com/fractal-programs/problems-with-implementing-budhabrot-in-uf/" endheading
heading caption = "RGB block" endheading
float param lightR caption = "Red light" default = 0.38 endparam
float param scalarR caption = "Red scalar" default = 0.7 endparam
float param lightG caption = "Green light" default = 0.98 endparam
float param scalarG caption = "Green scalar" default = 1.6 endparam
float param lightB caption = "Blue light" default = 0.14 endparam
float param scalarB caption = "Blue scalar" default = 0.3 endparam } Alsou, here is good Buddhabrot links. Goolge search almoust allways gives fractalforums. This one by ker2x looks great. Throught probably some post processing with reducing image size were used: http://www.fractalforums.com/programming/some-buddhabrot-questions-techniques/A 3D buddhabrot verson: http://www.fractalforums.com/images-showcase-(rate-my-fractal)/orbits-inside/ A nova buddhabrot and good discussion about weak point of buddhabrots: http://www.fractalforums.com/images-showcase-(rate-my-fractal)/orbit-plotted-nova/
|
|
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #28 on: December 10, 2012, 08:08:53 AM » |
|
Some pics of mentioned. A mandelbrot set with new bailout settings: And closer with sine transfer. Blue are most dense areas: Magnet2 buddha. Very complex throught not very dense: Cubed Mandelbrot double turtle: Quadratic General. x=z^2+y^2+cx; y=2*x*y+cy: Swirlbrot. The same settings as above but magnets's bailout: Talis. Fracmonks Even Multipowerbrot: z=(((((z^2*c) +1 )^2) -1 )^2)
|
|
|
Logged
|
fractal catalisator
|
|
|
kram1032
|
|
« Reply #29 on: December 10, 2012, 09:05:59 AM » |
|
really nice stuff The "quadratic general" interestingly looks a lot like "the attic", based on dual numbers. (x+ye where e²=0 but e!=0) ((x+ye)²=x²+2xye) The triplex variant I gave is simply the same basic naive approach to a triplex form that also gave rise to the original first triplex MSet, the original square MBulb as well as eventually all its later installments.
|
|
« Last Edit: December 10, 2012, 09:11:22 AM by kram1032 »
|
Logged
|
|
|
|
|