Logo by jwm-art - 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: Visit the official fractalforums.com Youtube Channel
 
*
Welcome, Guest. Please login or register. April 28, 2024, 03:01:40 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 [4] 5 6 ... 9   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: Implementing MixPinski  (Read 20662 times)
0 Members and 1 Guest are viewing this topic.
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #45 on: November 17, 2016, 08:33:12 PM »

Sabine I don't fail to write a one line formula grin
It is another parameter. It has different effects wink try!
Logged

No sweat, guardian of wisdom!
Sabine
Fractal Fertilizer
*****
Posts: 373



WWW
« Reply #46 on: November 17, 2016, 09:02:55 PM »

@Crist-JRoger: already thought you'd found the free-to-use renderfarm for us all;)
Will check on your rotations after I have solved the reciprocal mystery;) (OR when I know I have failed miserably ;} )

@Dark-beam: Nono, we have only two limiters (and two muls)!
 But in your formula you use 3 limiters?? Lim1, Lim2 and Lim?  grin

First results has the right forms, vaguely... very very vaguely  laugh


* 2.jpg (249.09 KB, 960x540 - viewed 92 times.)
Logged

sabine62.deviantart.com
Crist-JRoger
Fractal Fertilizer
*****
Posts: 389



WWW
« Reply #47 on: November 17, 2016, 09:08:49 PM »

renderfarm yeah )) 
De-Kn based with M Benesi palette: wink


Logged

Sabine
Fractal Fertilizer
*****
Posts: 373



WWW
« Reply #48 on: November 17, 2016, 11:38:16 PM »

@Crist-JRoger: Have looked at your rotations: Very nice!! I Must try and understand how they work though, especially the RotStart, which is iteration-dependent??

Something else, and I am not at all sure about it: This is a 4D-fractal, but you have only rotations for xyz, not w?
Do we Need the w-rotation?

(also a question for

@Dark-beam and
@mclarekin

)

And I think we cannot solve it like this?

Code:
uniform int PreRotStart; slider[0,1,15] 
uniform vec4 PreRotVector; slider[(0,0,0,0),(1,1,1,1),(1,1,1,1)]
uniform float PreRotAngle; slider[0.00,0,180]
uniform int RotStart; slider[0,1,15]
uniform vec4 RotVector; slider[(0,0,0,0),(1,1,1,1),(1,1,1,1)]
uniform float RotAngle; slider[0.00,0,180]
mat3 fracRotation1;
mat3 fracRotation2;
void init() {
fracRotation1 = rotationMatrix3(normalize(PreRotVector), PreRotAngle);
fracRotation2 = rotationMatrix3(normalize(RotVector), RotAngle);
}

The fourth slider Does rotate err.. something...  grin And nothing like the other three sliders rotate. Sorry, I Really am new to this:}
But if we do it like the mb3d-formula we need the whole thing: yz, xz, xy, xw, yw, zw

Ohh and forgot @Crist-JRogers: Great render! A Beer Cup

* MixPinskiRotCJR.frag (4.37 KB - downloaded 59 times.)
« Last Edit: November 17, 2016, 11:57:59 PM by Sabine62 » Logged

sabine62.deviantart.com
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #49 on: November 18, 2016, 12:42:09 AM »

x' = sign(x)(1/Lim1 + 1/lim2 - 1/(abs(m1 * x)+ Lim ) - 1/(m2 * x*x+ Lim2 ) )

Yeah that lim should be Lim1  cry but I no longer remember really
Logged

No sweat, guardian of wisdom!
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #50 on: November 18, 2016, 12:49:10 AM »

We all can make same default now,  afro afro

and your images are looking good.  The MinPinski4 is a bit more tricky to convert than most M3D formulas. Converting  the M3D _transforms rather than the formulas is easier because in most cases we do not have to think about DE.
(
orientation of default may depend on how the main program is set up. Like Mandelbulber V1.21OpenCL version produces the image upside down compared to MandelbulberV2 T(he direction of the z axis was reversed)


rotation will be 4D when I get back to finishing off coding the 4D rotation. 3D is temporary.  There could be a .frag somewhere with 4D rotation already coded ?? This is where I was before I got sidetracked.
Code:
		// 4D r0t
/*
* mat4 rotationXY  ( float angle )
{
mat4 rot;
rot[0] = CVector4(cos(angle), sin(angle), 0.0, 0.0);
rot[1] = CVector4(-sin(angle), cos(angle), 0.0, 0.0);
rot[2] = CVector4(0.0, 0.0, 1.0, 0.0);
rot[3] = CVector4(0.0, 0.0, 0.0, 1.0);
return rot;
}

mat4 rotationYZ  ( float angle )
{
mat4 rot;
rot[0] = CVector4(1.0, 0.0, 0.0, 0.0);
rot[1] = CVector4(0.0, cos(angle), sin(angle), 0.0);
rot[2] = CVector4(0.0, -sin(angle), cos(angle), 0.0);
rot[3] = CVector4(0.0, 0.0, 0.0, 1.0);
return rot;
}

mat4 rotationXZ  ( float angle )
{
mat4 rot;
rot[0] = CVector4(cos(angle), 0.0, -sin(angle), 0.0);
rot[1] = CVector4(0.0, 1.0, 0.0, 0.0);
rot[2] = CVector4(sin(angle), 0.0, cos(angle), 0.0);
rot[3] = CVector4(0.0, 0.0, 0.0, 1.0);
return rot;
}


mat4 rotationXW  ( float angle )
{
mat4 rot;
rot[0] = CVector4(cos(angle), 0.0, 0.0, sin(angle));
rot[1] = CVector4(0.0, 1.0, 0.0, 0.0);
rot[2] = CVector4(0.0, 0.0, 1.0, 0.0);
rot[3] = CVector4(-sin(angle), 0.0, 0.0, cos(angle));
return rot;
}

mat4 rotationYW  ( float angle )
{
mat4 rot;
rot[0] = CVector4(1.0, 0.0, 0.0, 0.0);
rot[1] = CVector4(0.0, cos(angle), 0.0, -sin(angle));
rot[2] = CVector4(0.0, 0.0, 1.0, 0.0);
rot[3] = CVector4(0.0, sin(angle), 0.0, cos(angle));
return rot;
}

mat4 rotationZW  ( float angle )
{
mat4 rot;
rot[0] = CVector4(1.0, 0.0, 0.0, 0.0);
rot[1] = CVector4(0.0, 1.0, 0.0, 0.0);
rot[2] = CVector4(0.0, 0.0, cos(angle), -sin(angle));
rot[3] = CVector4(0.0, 0.0, sin(angle), cos(angle));
return rot;
}

mat4 scale  ( CVector4scale4 )
{
mat4 rot;
rot[0] = CVector4(scale4.x, 0.0, 0.0, 0.0);
rot[1] = CVector4(0.0, scale4.y, 0.0, 0.0);
rot[2] = CVector4(0.0, 0.0, scale4.z, 0.0);
rot[3] = CVector4(0.0, 0.0, 0.0, scale4.w);
return rot;
}*/

offsetD is just an experimental thing for me to investigate.  Distance Esimate is an "estimate", and we can tweak the estimate to try and get it closer to the real distance.  You  can be removed from the .frag

This is reciprocal3 for the x axis (I have yet to get my sign(z.x) function working so this is longer than it needs to be)
Code:
float3 tempZ  = z;
if (RecX_enabled)
tempZ.x = (1.0 / Limit.x) - 1.0 / (abs(z.x) + Limit.x); //

tempZ.x += abs(z.x) * Slope.x; // function slope default 0.0

if (z.x > 0.0)
{
z.x = tempZ.x;
}
else
{
z.x = -tempZ.x;
}

 grin





Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #51 on: November 18, 2016, 12:56:11 AM »

For mclarekin:
If you use the standard quaternion maths, a 4d rotation should simply be a quaternonic mult by a 4d number of norm 1. Else it is a scaling plus rotating. To set norm=1 you multiply the vector by 1/sqrt(x2+y2+z2+w2) but if magnitude is 0... do nothing wink
Too bad this is far less user friendly than the pretty angles notation ...
Plus I made many formulas that offset rotations! Very interesting results if you do this;

P = p + offset;
P = p * rotmatrix;
P = p - offset;

You will get fractals of a *new* type because this is a particular combination of things cheesy be careful if offset is too big the rotation can sometimes kill the fractal sad
This idea is reported in the original kifs thread in this Sierpinski forum section alien
« Last Edit: November 18, 2016, 01:05:13 AM by DarkBeam » Logged

No sweat, guardian of wisdom!
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #52 on: November 18, 2016, 02:23:54 AM »

Random thoughts on Fragmentarium and M3D code.

You could have a section in Fragmentarium called "M3D formulas" or better a specific one for "DrakBeam's codes", (and Knighty, Msltoe, Benesi etc). MixPinski could be the first post in the Darkbeam part. Choose some more you want to convert, and together we can do it.

It is a good feeling when you get them working grin. Plus you learn and then start to experiment.

For example, by default I always initially install start / stop iteration controls for the individual transforms within the formula ( and then later decide what to keep).  With some transforms you will learn that they can be stopped earlier than others in a formula, and hence you can save some render maths time. And every late start and/or early stop setup can produce a variation of the default fractal,  they are each a separate conditional mode. But as usual the more you add and tweak the greater the chance that the DE calc will become less accurate.(but not always it can get better).


I like the .frag setup as a standard format for a formula/transform "bank" for people to view the maths.
Logged
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #53 on: November 18, 2016, 03:54:10 AM »

@ DarkBeam.  Thanks for maths advice.

@ Crist & sarbine
The following is a good example of how a lot of fractals work.   Convert(map) p, do some maths, then map p back,. Then repeat for each iteration until termination.

P = p + offset;
P = p * rotmatrix;
P = p - offset;

Rotate folding=      rotate P, do some maths, rotate back

Benesi Mag Transforms=         magFold  forward, do some maths, magFold back


Mbulb=   Convert to polar , do some  maths, covert back to Cartesian.
Logged
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #54 on: November 18, 2016, 04:20:29 AM »

Random thoughts on Fragmentarium and M3D code.

You could have a section in Fragmentarium called "M3D formulas" or better a specific one for "DrakBeam's codes", (and Knighty, Msltoe, Benesi etc). MixPinski could be the first post in the Darkbeam part. Choose some more you want to convert, and together we can do it.

It is a good feeling when you get them working grin. Plus you learn and then start to experiment.

...

I like the .frag setup as a standard format for a formula/transform "bank" for people to view the maths.

The current list of top level Examples folders...

2D Systems
Benesi
DarkBeam
eiffieGI2
Experimental         
Historical 3D Fractals
Kaleidoscopic IFS
Kali's Creations
Knighty Collection
Theory   
Tutorials

... contains 209 frag files
I think an online repository would be great cheesy
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #55 on: November 18, 2016, 04:30:32 AM »

@ 3dickulus. It is already partly set-up.,  good  afro  (i should have looked)

Probably the only main one missing is Msltoe,  then we also have Makin, Aexion, Trafassel etc.

If there are no msltoe Juliabulbs then we need to code one quickly  grin

Logged
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #56 on: November 18, 2016, 04:41:47 AM »

...my personal collection, 838, contains msltoe.frag dated Jan 28  2016 Msltoes Julia Bulb Distance Estimator ?

I recall asking a few members if I could/should include their frags in the distribution but it was a mixed yes/no result at the time so I left it as is,
there is currently an Examples.zip on my website that is just the Examples folder, it would be easy to create a repo on github or sourceforge cheesy
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #57 on: November 18, 2016, 05:15:15 AM »

I guess realistically, this will take a lot of time, what I personally would like is an easy to find location for recently converted fractal codes.  So whenever we go though the process of converting ,there is a central place for this work in one format.  Trawling the achieves is interesting ( for me) , but it takes a lot of time  figuring things out, and you can miss important offshoot posts.

I am often guilty of posting code in random obscure places, very hard to find again.  Lazy habits are hard to break. smiley
Logged
Sabine
Fractal Fertilizer
*****
Posts: 373



WWW
« Reply #58 on: November 18, 2016, 09:36:45 AM »

Just a shout in between:
Quote
Random thoughts on Fragmentarium and M3D code.
From a newbie point of view: A online repository would be wonderful!
And also: there are many little routines that are already written, there are certain standard ways f.i. to get the colorpalette.frag working, that are easy if you only know how and where to put them into the frag. Maybe in the repository we could also have a place for subroutines and their how-to-'s? Then, if we need a 4D-rotation and it's already been done we can look there instead of going through hundreds of frags on our HD?wink

@mclarekin Will have a closer look at this p-thing, thank you very much for the tip, might get back to you for a bit more info... (like what is p?  embarrass) But I might find out on my own with some luck;)
@DarkBeam Thank you! And no wonder you forgot, you have coded so many! smiley
Logged

sabine62.deviantart.com
mclarekin
Fractal Senior
******
Posts: 1739



« Reply #59 on: November 18, 2016, 10:10:05 AM »

@sabi, This is my view. vect3 p is pixel,position, or point or something like that. Maybe short for pixel positioning point. When I come across it in formula code I generally change  it to z, which i have to do for MandelbulberV2 code. But p is perfect, it goes well with notation p.xyz whereas  z.xyz looks  confusing.

In reading posts and  code you can get confused between z the vector, and z the axis. p is by far preferable.

attached image is using the sierpinski part, once at iteration #3 in a  hybrid


* mixPinski aac5a 800.jpg (239.3 KB, 800x800 - viewed 92 times.)
Logged
Pages: 1 2 3 [4] 5 6 ... 9   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Help about implementing the perturbation theory Programming « 1 2 » CFJH 23 2412 Last post May 14, 2015, 06:40:57 PM
by therror
mixPinski 1600 Mandelbulber Gallery mclarekin 3 998 Last post November 19, 2016, 02:54:00 AM
by paigan0
mixPinski sphFold Mandelbulber Gallery mclarekin 0 1201 Last post November 19, 2016, 10:27:57 AM
by mclarekin
Implementing ABoxModKaliEiffie Amazing Box, Amazing Surf and variations « 1 2 3 » mclarekin 30 10842 Last post November 27, 2016, 11:52:55 AM
by Sabine
Implementing Menger Sponge 45 rot Sierpinski Gasket mclarekin 9 3633 Last post December 04, 2016, 10:49:35 PM
by DarkBeam

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.204 seconds with 25 queries. (Pretty URLs adds 0.025s, 2q)