Title: MixPinsky4ex reciprocalX3b Post by: Sabine on November 20, 2016, 05:21:04 PM Fragmentarium MixPinsky4ex reciprocalX3b
(http://nocache-nocookies.digitalgott.com/gallery/19/10093_20_11_16_5_21_04.png) http://www.fractalforums.com/index.php?action=gallery;sa=view;id=19779 88) Mixpinski4ex/reciprocalX3b? 88) Title: Re: MixPinsky4ex reciprocalX3b? Post by: DarkBeam on November 20, 2016, 10:11:00 PM I like! And also you can do some var swizzle like this right after the recip (or before)
p.xyzw = p.yxwz; There are lots of combines to be tried, but is effettive until you miss the 4d rotation :) Title: Re: MixPinsky4ex reciprocalX3b? Post by: Sabine on November 20, 2016, 11:04:21 PM (http://st.deviantart.net/emoticons/w/worships.gif) Thank you, Luca! :happy:
Will try the swizzle thingy :} But what do you mean with it being effective until I miss 4d rotation? It won't work with 4d rotation? Or it will be more effective with 4d rotation? Title: Re: MixPinsky4ex reciprocalX3b? Post by: mclarekin on November 21, 2016, 01:56:08 AM My two cents. :)
4D swizzling combined with 3D rotations, misses out a layer of combinations (those involving rot.w) The extent of the combinations becomes infinitely more infinte, when the extra three rotations input variables (we now have six infinity rot inputs). The formula without any rotations is very limited when comparing different layers of infinity. With the other parameters we are moving out or in from the origin (changing the vector length), with rotations we are maintaining the vector length. BTW When you apply two abs() formulas in a loop, what better than a rotation in between them, to map some points back to neg values Title: Re: MixPinsky4ex reciprocalX3b? Post by: mclarekin on November 21, 2016, 04:43:54 AM if(Zw) r2=z.x*z.x+z.y*z.y+z.z*z.z + z.w * z.w; // bailout criteria, and I added in the z.w part to see if it necessary else r2=z.x*z.x+z.y*z.y+z.z*z.z; if(i>=RotStart) z.xyz*=fracRotation2; if(reciprocalX3b) z.x = sign(z.x) * (1/Limiter1) + (1/Limiter2) - (1/(abs(mul1*z.x)+ Limiter1)) + (1/(mul2 z.x*z.x+ Limiter2)); Comments In a "standard" sort of loop. r2 = z.x*z.x+z.y*z.y+z.z*z.z; is the last function before if( r> bailout stop). That means we are tesing the vect length after the final mapping of z. However you can have it anywhere, and have more than one bailout check in a loop. The number of bailout checks and their placement is yet another "variable parameter" in finding new variations. The reciprocalX3b if(reciprocalX3b) z.x = sign(z.x) * (1/Limiter1) + (1/Limiter2) - (1/(abs(mul1*z.x)+ Limiter1)) + (1/(mul2 * z.x*z.x+ Limiter2)); anthing goes if it works. I would have expected z.x =sign(z.x) * ( all the sub-functions); if so (all the sub functions ) = (number/number + number/number + 1/ (abs etc ... ) + a scaled inverse squared plus offset) You can: float sabi = (number/number + number/number ) in the initial conditions before the loop and save recalculating it with every iteration. or I would probably just replace (number/number + number/number ) with a single float number slide (-5,0,5) and work it that way Title: Re: MixPinsky4ex reciprocalX3b? Post by: Sabine on November 21, 2016, 08:01:09 AM @mclarekin You really make my poor brain creek on this morning:} Thank you for that! :)
Please pardon me, as I do not understand all yet (but I think I get the general idea), so much to learn so little time;) First the zwizzle thing: It is an existing term! Really thought maybe Luca had it made up, such a wonderful word ;D I was presuming we'd (well ok, you and Luca, and Crist-JRoger, (still way too intimidating yet for me ;D)) get the 4d-rotation properly going some day, then w will be playing along nicely, won't it? The usefulness rotation between two abs()-formulas in a loop I get, I hope I will remember! Then the reciprocal: I have already last night added another transform (_invcylindrical) into the mix (a very popular combination in mb3d, gives nice 'rooms', though in Fragm the lighting inside objects (not the proper fractalish 'inside' but outside surfaces inside the fractal is a drama ;D Placing the two transforms before the loop will let them behave like pre-transforms. To be proper transforms the need to be placed within the loop, I always thought? Quote a scaled inverse squared plus offset Of the whole thing? Or one of the numbers.. or whatever I want? ;DJust for fun I have already changed things within the code of the line, as you say: anything goes, and it is really behaving quite nicely when altered a bit here and there. BTW had the thumbs-up from Luca, it's a proper reciprocalX3b :joy: Title: Re: MixPinsky4ex reciprocalX3b? Post by: mclarekin on November 21, 2016, 09:22:13 AM My wording is not always the best :), so understand what you can, but always feel free to ask for more clarification.
The std 4D rot is just a matter of dedicating some time, but I get sidetracked and have been doing some exploring. _invCylindrical is amazing, I have yet to really test it out, but I was getting interesting stuff with both linear and bulb_type formulas. I updated the Benesi T1 Pinetree by including it as the last transform in the loop. One way that I construct a loop is by having Iter 0 - formula1 iter 1 - formula2 iter 2 to termination - formula 3 (or a sequence of formulas.) so in OpenCL i often move the initial single iteration formulas into initial conditions and are a pretransform. swizzle is a word i read here, so it may be a forum only word ;D part of the secret language of fractal coders :) but it aptly describes axis swapping. @ crist. The inverse 3D heading to infinity is a weird place compared to normal fractal space, I have not learnt much about it Title: Re: MixPinsky4ex reciprocalX3b? Post by: DarkBeam on November 21, 2016, 09:56:55 AM https://www.opengl.org/wiki/GLSL_Optimizations#Use_Swizzle
How dare you not trusting me :evil1: :angry: :-* Title: Re: MixPinsky4ex reciprocalX3b Post by: Sabine on November 21, 2016, 07:16:03 PM @Luca (http://st.deviantart.net/emoticons/r/rofl.gif) :-*
I now also read in that URL about "Get MAD". Is this next step for me? :} @mclarekin Reading Luca's link about GLSL-optimizations together with what you wrote, something begins to dawn on me... slowly ;) Will have to really dive into this to fully understand and be able to apply, but thanks again! Title: Re: MixPinsky4ex reciprocalX3b Post by: Madman on November 21, 2016, 09:14:56 PM "Get MAD". You wish... That's not something easily achievable for just anyone :fiery:. It take years of training! :dink: Title: Re: MixPinsky4ex reciprocalX3b Post by: Sabine on November 21, 2016, 09:29:24 PM @Madman I read the how-to and indeed, how disappointing, no soft-padded white cells before the 8th semester! ;D
Title: Re: MixPinsky4ex reciprocalX3b Post by: DarkBeam on November 21, 2016, 10:38:49 PM Also @mclarekin when you use reciprocals the only rotations that don't result in fuzzy stuff are multiples of 90° essentially those can always be obtained swizzling and changing signs (if desired) :) try!
Title: Re: MixPinsky4ex reciprocalX3b Post by: mclarekin on November 22, 2016, 02:19:40 AM @ Professor Dark. Will try in openCL, (MandelbulberV2 maths has yet to include swizzlablity functions :sad1:) The other optimisations are good too, - mad, mix & dot. @ madman, In New Zealand, madness is a result of generations of careful selective breeding, and now I find in Europe you can become mad by simply attending a university. I can picture your diploma. a "masters in Madness, 1st degree honours" ( I am assuming you would have been top of the class.) |