News: Did you know ? you can use LaTex inside Postings on fractalforums.com!

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

 Pages: [1]   Go Down
 Author Topic: Rubies garden  (Read 508 times) Description: 0 Members and 1 Guest are viewing this topic.
Tim Emit
Conqueror

Posts: 111

 « on: January 02, 2017, 12:07:27 PM »

Rubies garden

http://www.fractalforums.com/index.php?action=gallery;sa=view;id=19896

Fragmentarium- From Knighty & jos Leys super new Kleinians frag. Here I upped the its a bit and tried DE-Kn11 ( not properly implemented) .. I see now there is a newer update by Axion so I will check that out..

Finding so many pretty things in there,,thanks so much for putting these frags out there guys ..All the best for 2017

Code:
// Created: Tue Dec 27 22:42:29 2016
#info Kleinian groups
#info Original idea and code by Jos Leys (Dec 2016)
#info Some cosmetic modifications by Naït Merzouk Abdelaziz (A.k.a. Knighty)
#info liscence:  Ask Jos Leys ;-)

//#include "IBL-Raytracer.frag"
#include "DE-Kn2cr11.frag"

#group Kleinian_test
uniform int Box_Iterations;  slider[1,50,200]
//Trace of the transformation a
uniform float KleinR;  slider[1.8,2.0,2.0]
uniform float KleinI;  slider[-0.2,0.0,0.2]
//To really give a kleinian group they must be of the form cos(PI/n) if <1 and any value if >=1
uniform float box_size_z;  slider[0.0,0.5,1.0]
uniform float box_size_x;  slider[0.0,0.5,1.0]
//WIP: Help get better DE?
uniform int Final_Iterations;  slider[0,5,50]
//Want do show the balls
uniform bool ShowBalls; checkbox[true]
//4 generators or 3? apply y translation
uniform bool FourGen; checkbox[false]
//The DE is wilde. It needs some clamping
uniform float Clamp_y;  slider[0.01,1.0,10.0]
uniform float Clamp_DF;    slider[0.0,1.0,10.0]

#group SphInv

//Want do do an inversion
uniform bool DoInversion; checkbox[false]
//Inversion center
uniform vec3 InvCenter; slider[(-1,-1,-1),(0,0,0),(1,1,1)]
//Recenter
uniform vec3 ReCenter; slider[(-5,-5,-5),(0,0,0),(5,5,5)]
uniform float DeltaAngle;    slider[0.0,0.0,6.283185307179586476925286766559]
float dot2(vec3 z){ return dot(z,z);}

vec3 wrap(vec3 x, vec3 a, vec3 s){
x -= s;
return (x-a*floor(x/a)) + s;
}

vec2 wrap(vec2 x, vec2 a, vec2 s){
x -= s;
return (x-a*floor(x/a)) + s;
}

void TransA(inout vec3 z, inout float DF, float a, float b){
float iR = 1. / dot2(z);
z *= -iR;
z.x = -b - z.x; z.y = a + z.y;
DF *= iR;//max(1.,iR);
}

void TransAInv(inout vec3 z, inout float DF, float a, float b){
float iR = 1. / dot2(z + vec3(b,-a,0.));
z.x += b; z.y = a - z.y;
z *= iR;
DF *= iR;//max(1.,iR);
}

float  JosKleinian(vec3 z)
{
vec3 lz=z+vec3(1.), llz=z+vec3(-1.);
float DE=1e10;
float DF = 1.0;
float a = KleinR, b = KleinI;
float f = sign(b) ;
for (int i = 0; i < Box_Iterations ; i++)
{
//if(z.y<0. || z.y>a) break;

z.x=z.x+b/a*z.y;
if (FourGen)
z = wrap(z, vec3(2. * box_size_x, a, 2. * box_size_z), vec3(- box_size_x, 0., - box_size_z));
else
z.xz = wrap(z.xz, vec2(2. * box_size_x, 2. * box_size_z), vec2(- box_size_x, - box_size_z));
z.x=z.x-b/a*z.y;

//If above the separation line, rotate by 180° about (-b/2, a/2)
if  (z.y >= a * (0.5 +  f * 0.25 * sign(z.x + b * 0.5)* (1. - exp( - 3.2 * abs(z.x + b * 0.5)))))
z = vec3(-b, a, 0.) - z;//
//z.xy = vec2(-b, a) - z.xy;//

orbitTrap = min(orbitTrap, abs(vec4(z,dot(z,z))));//For colouring

//Apply transformation a
TransA(z, DF, a, b);

//If the iterated points enters a 2-cycle , bail out.
if(dot2(z-llz) < 1e-12) {
#if 0
orbitTrap =vec4(1./float(i),0.,0.,0.);
#endif
break;
}
//Store prévious iterates
llz=lz; lz=z;
}

//WIP: Push the iterated point left or right depending on the sign of KleinI
for (int i=0;i<Final_Iterations;i++){
float y = ShowBalls ? min(z.y, a-z.y) : z.y;
DE=min(DE,min(y,Clamp_y)/max(DF,Clamp_DF));
TransA(z, DF, a, b);
}
float y = ShowBalls ? min(z.y, a-z.y) : z.y;
DE=min(DE,min(y,Clamp_y)/max(DF,Clamp_DF));

return DE;
}

float DE(vec3 p) {
if(DoInversion){

p=p-InvCenter-ReCenter;
float r=length(p);
float r2=r*r;

float an=atan(p.y,p.x)+DeltaAngle;
float ra=sqrt(p.y*p.y+p.x*p.x);
p.x=cos(an)*ra;
p.y=sin(an)*ra;
float de=JosKleinian(p);
return de;
}
else return JosKleinian(p);
}

#preset RubiesGarden
FOV = 1.120924
Eye = -2.527125,3.97412,-3.779549
Target = 35.74057,-6.525935,8.185241
Up = -0.0416062,-0.2448129,-0.0817712
Gamma = 0.952876
ToneMapping = 4
Exposure = 0.8436846
Brightness = 0.9943978
Contrast = 0.9888579
Saturation = 0.9838936
GaussianWeight = 0.9032258
AntiAliasScale = 0.2916074
Detail = -3.710435
FudgeFactor = 0.9964714
Dither = 1
NormalBackStep = 1
CamLight = 0.8352941,0.5058824,0.1803922,1.939266
BaseColor = 0.3882353,0.04705882,0.06666667
OrbitStrength = 0.4509116
X = 0,1,0.164706,0.9255172
Y = 1,0.533333,0,-0.0289655
Z = 0.603922,0.164706,0.776471,-0.5186207
R = 1,0.8235294,0.2862745,0.8274672
BackgroundColor = 0,0,0
CycleColors = true
Cycles = 7.447354
EnableFloor = true NotLocked
FloorNormal = -0.487072,-0.6883298,-0.5555556
FloorHeight = -0.4082345
FloorColor = 0.227451,0.3803922,0.5647059
UpLock = false
FocalPlane = 16.15737
Aperture = 0
InFocusAWidth = 0.7743772
DofCorrect = true
ApertureNbrSides = 7
ApertureRot = 0
ApStarShaped = false
Bloom = true
BloomIntensity = 0.6353945
BloomPow = 3.307584
BloomTaps = 2
BloomStrong = 1.013456
RefineSteps = 16
MaxRaySteps = 1356
MaxDistance = 120
DetailAO = -0.1403873
coneApertureAO = 0.5
maxIterAO = 20
FudgeAO = 1
AO_ambient = 1.981856
AO_camlight = 1.988827
AO_pointlight = 1.976174
AoCorrect = 0
Specular = 0.0220538
SpecularExp = 100
AmbiantLight = 0.627451,0.9333333,1,1.981402
Reflection = 0.2980392,0.254902,0.1333333
ReflectionsNumber = 1
SpotGlow = true
SpotLight = 1,0.8431373,0.4392157,10
LightPos = -2.969188,3.669468,-2.240896
LightSize = 0.2172702
LightFallOff = 0.0323261
LightGlowExp = 0.7991513
perf = false
SSS = true
sss1 = 1
sss2 = 0.9622512
HF_Fallof = 1.479274
HF_Const = 0.0096886
HF_Intensity = 0.7804196
HF_Dir = 0.3763736,-0.0576923,-0.9134615
HF_Offset = -0.7402235
HF_Color = 0.9882353,0.945098,0.7254902,2.150424
HF_Scatter = 0
HF_Anisotropy = 0,0,0
HF_FogIter = 1
EnCloudsDir = true NotLocked
Clouds_Dir = 0,0,1 NotLocked
CloudScale = 1
CloudFlatness = 0 NotLocked
CloudTops = 1
CloudBase = -1
CloudDensity = 1
CloudRoughness = 1
CloudContrast = 1
CloudColor = 0.65,0.68,0.7
CloudColor2 = 0.07,0.17,0.24 NotLocked
SunLightColor = 0.7,0.5,0.3
Cloudvar1 = 0.99 NotLocked
Cloudvar2 = 1 NotLocked
CloudIter = 5 NotLocked
CloudBgMix = 1 NotLocked
KleinR = 1.914832
KleinI = 0.0331053
box_size_z = 0.6254343
box_size_x = 0.988178
ShowBalls = true
FourGen = true
Clamp_y = 0.0445675
Clamp_DF = 0.2086231
DoInversion = true
InvCenter = -0.0076442,0.9263377,0.1285615
ReCenter = -1.158114,-0.665742,-0.0554785
DeltaAngle = 3.678281
reciprocalX3b = false
reciprocalX3bVar1 = false
reciprocalY3b = false
reciprocalY3bVar1 = false
reciprocalZ3b = false
reciprocalZ3bVar1 = false
Limiter1 = 0.67
Limiter2 = 0.67
mul1 = 1
mul2 = 1
Box_Iterations = 134
Final_Iterations = 25
#endpreset
 Logged
 Pages: [1]   Go Down