all-gender restroom signStation 9MuET #3
Station 9
Previous Image | Next Image
Description: Rendered with a test version (one of many) of Multi-Func-Hybrid.frag

Code: [Select]
// Output generated from file: Fractals/My_Params/Multi-Func-Hybrid.frag
// Created: Sat Aug 24 15:30:21 2013

#info Multi Function
#include "MathUtils.frag"
#include "DE-Kn2cr11.frag"

#group Routines
// Use when iter < MN
uniform bool BoxfoldOneA; checkbox[true]
// Use when iter < MN
uniform bool BoxfoldTwoA; checkbox[false]
// Use when iter < MN
uniform bool SpherefoldA; checkbox[true]
// Use when iter < MN
uniform bool MengerfoldA; checkbox[false]
// Use when iter < MN
uniform bool OctoA; checkbox[false]

// Used when iter > MN
uniform bool BoxfoldOneB; checkbox[false]
// Used when iter > MN
uniform bool BoxfoldTwoB; checkbox[false]
// Used when iter > MN
uniform bool SpherefoldB; checkbox[false]
// Used when iter > MN
uniform bool MengerfoldB; checkbox[false]
// Used when iter > MN
uniform bool OctoB; checkbox[true]


#group Hybrid

// Inspired by the Spudsville systems

uniform float Scale; slider[-5.00,2.0,4.00]
uniform float Scale2; slider[0.00,2,4.00]

// Scaling center
uniform vec3 Offset; slider[(0,0,0),(1,1,1),(5,5,5)]
uniform vec3 Offset2; slider[(0,0,0),(1,0,0),(1,1,1)]

uniform float fixedRadius2; slider[0.1,1.0,2.3]
uniform float minRadius2; slider[0.0,0.25,2.3]

uniform float foldingValue; slider[0.0,2.0,5.0]
uniform float foldingLimit; slider[0.0,1.0,5.0]
uniform float foldingLimit2; slider[0.0,1.0,5.0]

uniform float Power; slider[0.1,8.0,12.3]
uniform float ZMUL; slider[-140.0,1,10]
uniform int MN; slider[0,5,50]
uniform bool Analytic; checkbox[true]
uniform float DetailGrad;slider[-7,-2.8,7];
// mermelada's tweak Derivative bias
uniform float DerivativeBias; slider[0,1,2]

mat3 rot;
uniform float time;

void sphereFold(inout vec3 z, inout float dz) {
float r2 = dot(z,z);
if (r2< minRadius2) {
float temp = (fixedRadius2/minRadius2);
z*= temp;
dz*=temp;
} else if (r2<fixedRadius2) {
float temp =(fixedRadius2/r2);
z*=temp;
dz*=temp;
}
}

void boxFold(inout vec3 z, inout float dz) {
z = clamp(z, -foldingLimit, foldingLimit) * 2.0 - z;
}

void boxFold2(inout vec3 z, inout float dz) {
z = clamp(z, -foldingLimit2,foldingLimit2) * 2.0 - z;
}

void boxFold3(inout vec3 z, inout float dz) {
if (z.x>foldingLimit) { z.x = foldingValue-z.x; }  else if (z.x<-foldingLimit) z.x = -foldingValue-z.x;
if (z.y>foldingLimit)  { z.y = foldingValue-z.y;  } else if (z.y<-foldingLimit) z.y = -foldingValue-z.y;
if (z.z>foldingLimit)  { z.z = foldingValue-z.z ; } else if (z.z<-foldingLimit) z.z = -foldingValue-z.z;
}

void mengerFold(inout vec3 z, inout float dz) {
z = abs(z);
if (z.x<z.y){ z.xy = z.yx;}
if (z.x< z.z){ z.xz = z.zx;}
if (z.y<z.z){ z.yz = z.zy;}
z = Scale*z-Offset*(Scale-1.0);
if( z.z<-0.5*Offset.z*(Scale-1.0))  z.z+=Offset.z*(Scale-1.0);
dz*=Scale;

}

void octo(inout vec3 z, inout float dz) {
if (z.x+z.y<0.0) z.xy = -z.yx;
if (z.x+z.z<0.0) z.xz = -z.zx;
if (z.x-z.y<0.0) z.xy = z.yx;
if (z.x-z.z<0.0) z.xz = z.zx;
z = z*Scale2 - Offset2*(Scale2-1.0);
dz*= Scale2;
}

void powN2(inout vec3 z, float zr0, inout float dr) {
float zo0 = asin( z.z/zr0 );
float zi0 = atan( z.y,z.x );
float zr = pow( zr0, Power-1.0 );
float zo = zo0 * Power;
float zi = zi0 * Power;
// dr = zr*dr*Power*abs(length(vec3(1.0,1.0,ZMUL)/sqrt(3.0))) + 1.0;
// mermelada's tweak
// http://www.fractalforums.com/new-theories-and-research/error-estimation-of-distance-estimators/msg102670/?topicseen#msg102670
dr =  max(dr*DerivativeBias,zr*dr*Power*abs(length(vec3(1.0,1.0,ZMUL)/sqrt(3.0))) + 1.0);
zr *= zr0;
z  = zr*vec3( cos(zo)*cos(zi), cos(zo)*sin(zi), ZMUL*sin(zo) );
}

float DE(vec3 z, inout float dz, int iter)
{
        vec3 c = z;
        // z = vec3(0.0);
        int n = 0;
        //float dz = 1.0;
        float r = length(z);
        while (r<5 && n < 11) {
                if (n==iter)break;

                if (n<MN) {
                    if(BoxfoldOneA == true) {  boxFold(z,dz); }
                    if(BoxfoldTwoA == true) {  boxFold2(z,dz); }
                    if(SpherefoldA == true) { sphereFold(z,dz); }
                    if(MengerfoldA == true) {  mengerFold(z,dz); }
                    if(OctoA == true) { octo(z,dz); }

                        z *= Scale; //+c;//+c*Offset;
                        dz *= abs(Scale);
                } else {
                    if(BoxfoldOneB == true) { boxFold(z,dz); }
                    if(BoxfoldTwoB == true) { boxFold2(z,dz); }
                    if(SpherefoldB == true) { sphereFold(z,dz); }
                    if(MengerfoldB == true) { mengerFold(z,dz); }
                    if(OctoB == true) { octo(z,dz); }

                        r = length(z);
                        powN2(z,r,dz);
                }
                r = length(z);

                if (n<2 && iter<0)
orbitTrap = min(orbitTrap, (vec4(abs(z),dot(z,z))));

                n++;
        }
        if (iter<0) iter = n;

        return r;
}

float gradEPS = pow(10.0,DetailGrad);

float DE(vec3 pos) {
int iter = -1;
float dz = length(pos)*.5;
if (Analytic) {
float r = DE(pos, dz, iter);
return r*0.5*log(r)/dz;
//return (r*log(r) / dz);
} else  {
vec3 e = vec3(0.0,gradEPS,0.0);
float r = abs(DE(pos, dz, iter));
vec3 grad =vec3( DE(pos+e.yxx, dz, iter),  DE(pos+e.xyx, dz, iter),  DE(pos+e.xxy,dz,  iter) )-vec3(r);
return r*log(r)*0.5/ length( grad/gradEPS);
}
}

#preset Default
FOV = 0.602377808
Eye = 0.428927541,-0.664429307,-0.005933175
Target = -0.123689175,0.246664226,0.000870327
Up = -0.802345753,-0.486644626,-0.001608802
EquiRectangular = false
Gamma = 2.2
ToneMapping = 3
Exposure = 1
Brightness = 1
Contrast = 1
Saturation = 1
GaussianWeight = 3
AntiAliasScale = 1.75
DepthToAlpha = true
ShowDepth = false
DepthMagnitude = 1
Detail = -1.7594086
FudgeFactor = 0.05077574
NormalBackStep = 1
CamLight = 1,1,1,0
BaseColor = 1,1,1
OrbitStrength = 0.508403362
X = 0.5,0.600000024,0.600000024,0.348127602
Y = 1,0.600000024,0,0.342579752
Z = 0.800000012,0.779999971,1,0.327777779
R = 0.400000006,0.699999988,1,-0.054091539
BackgroundColor = 0.474509805,0.474509805,0.631372571
GradientBackground = 0.468053492
CycleColors = false
Cycles = 2.1
EnableFloor = false
FloorNormal = 0,0,0
FloorHeight = 0
FloorColor = 1,1,1
FocalPlane = 1.27201963
Aperture = 0.021232877
InFocusAWidth = 0.420143886
DofCorrect = true
ApertureNbrSides = 7
ApertureRot = 0
ApStarShaped = false
Bloom = false
BloomIntensity = 0
BloomPow = 2
BloomTaps = 4
BloomStrong = 1
LensFlare = false
FlareIntensity = 0.25
FlareSamples = 8
FlareDispersal = 0.25
FlareHaloWidth = 0.5
FlareDistortion = 1
RefineSteps = 1
MaxRaySteps = 6925
MaxDistance = 29.2397663
Dither = 1
DetailAO = -1
coneApertureAO = 0.5
maxIterAO = 20
FudgeAO = 1
AO_ambient = 1
AO_camlight = 1
AO_pointlight = 1
AoCorrect = 0
Specular = 0.273597812
SpecularExp = 6.46551745
AmbiantLight = 1,1,1,0
Reflection = 0.494117647,0.494117647,0.494117647
ReflectionsNumber = 1
SpotGlow = true
SpotLight = 1,1,1,1
LightPos = 0,0,0
LightSize = 0.130136986
LightFallOff = 1
LightGlowRad = 0
LightGlowExp = 5
HardShadow = 1
ShadowSoft = 3.4146
ShadowBlur = 0.018258427
perf = false
SSS = true
sss1 = 0.47808765
sss2 = 0.688829788
HF_Fallof = 5
HF_Const = 0.002702703
HF_Intensity = 0.001381216
HF_Dir = -1,0,0
HF_Offset = 1.41258743
HF_Color = 0.0313725509,0.0313725509,0.0313725509,1
HF_Scatter = 0
HF_Anisotropy = 0,0,0
HF_FogIter = 1
HF_CastShadow = false
EnCloudsDir = false
CloudDir = 0,0,1
CloudScale = 1
CloudFlatness = 0
CloudTops = 1
CloudBase = -1
CloudDensity = 1
CloudRoughness = 1
CloudContrast = 1
CloudColor = 0.649999976,0.680000007,0.699999988
CloudColor2 = 0.0700000003,0.170000002,0.239999995
SunLightColor = 0.699999988,0.5,0.300000012
Cloudvar1 = 0.99
Cloudvar2 = 1
CloudIter = 5
CloudBgMix = 1
WindDir = 0,0,1
WindSpeed = 1
BoxfoldOneA = false
BoxfoldTwoA = false
SpherefoldA = true
MengerfoldA = true
OctoA = false
BoxfoldOneB = false
BoxfoldTwoB = false
SpherefoldB = false
MengerfoldB = true
OctoB = false
Scale = 1.5835829
Scale2 = 2.21803499
Offset = 3.47308725,4.60731544,1.75950003
Offset2 = 0.46404342,0.322930801,0.408412484
fixedRadius2 = 2.3
minRadius2 = 0.496774195
foldingValue = 2.38635
foldingLimit = 1.36746143
foldingLimit2 = 1.06382979
Power = 0.743843021
ZMUL = -1
MN = 6
Analytic = true
DetailGrad = -5
#endpreset


Stats:
Views: 40
Total Favorities: 2 View Who Favorited
Filesize: 3.52MB
Height: 2160 Width: 3840
Keywords: Fragmentarium GLSL 
Posted by: 3DickUlus August 11, 2019, 10:01:58 PM

Rating: ***** by 6 members.
Total Likes: 2

Image Linking Codes
BB Thumbnail Image Code
BB Medium Image Code
Direct Link
0 Members and 1 Guest are viewing this picture.

Comments (5) rss

ThunderboltPagoda
Fractal Feline
**
Offline Offline

Posts: 191



View Profile
August 12, 2019, 12:32:09 AM
Wow. Looks like the Eiffelmenger Tower.
mclarekin
Fractal Frankfurter
*
Offline Offline

Posts: 549



View Profile
August 12, 2019, 06:13:35 AM
very nice O0
Sabine62
Fractal Freak
**
Offline Offline

Posts: 655


It's just a jump to the left...


View Profile WWW
August 12, 2019, 10:36:43 AM
:clapping: Really cool render, Dick!
Caleidoscope
Moderator
*
Offline Offline

Posts: 208



View Profile WWW
August 15, 2019, 09:35:16 PM
There is so much detail, so very deep and sharp and in many levels, there is much to see, I love it.    :toast:
3DickUlus
3f
******
Offline Offline

Posts: 1225



View Profile WWW
August 16, 2019, 01:38:43 AM
tytyty all for the kind words, your joy is my reward :D ( I must be doing something right ;) )

Return to Gallery


Powered by SMF Gallery Pro