|
|
@ -74,8 +74,7 @@ void main() {
|
|
74
|
74
|
}
|
|
75
|
75
|
`
|
|
76
|
76
|
|
|
77
|
|
var fragmentShaderSrc = `
|
|
78
|
|
precision highp float;
|
|
|
77
|
var fragmentShaderSrc = `precision highp float;
|
|
79
|
78
|
|
|
80
|
79
|
uniform vec2 iResolution;
|
|
81
|
80
|
uniform vec3 iMouse;
|
|
|
@ -98,10 +97,6 @@ float trace(vec3 from, vec3 direction) {
|
|
98
|
97
|
return 1.0-float(stepsDone)/float(MaximumRaySteps);
|
|
99
|
98
|
}
|
|
100
|
99
|
|
|
101
|
|
float DistanceEstimator(vec3 pos) {
|
|
102
|
|
return length(pos) - 1.0;
|
|
103
|
|
}
|
|
104
|
|
|
|
105
|
100
|
/*uniform int MaxIterations; //#slider[1,50,200]
|
|
106
|
101
|
const float bailout = 4.0;
|
|
107
|
102
|
const float power = 8.0;
|
|
|
@ -159,6 +154,26 @@ float DistanceEstimator(vec3 z0) {
|
|
159
|
154
|
return 0.5 * r * log(r)/r_dz;
|
|
160
|
155
|
}*/
|
|
161
|
156
|
|
|
|
157
|
float sphere(vec3 pos) {
|
|
|
158
|
return length(pos) - 1.0;
|
|
|
159
|
}
|
|
|
160
|
|
|
|
161
|
float pMod1(inout float p, float size) {
|
|
|
162
|
float halfsize = size * 0.5;
|
|
|
163
|
float c = floor((p + halfsize)/size);
|
|
|
164
|
p = mod(p+halfsize, size)-halfsize;
|
|
|
165
|
return c;
|
|
|
166
|
}
|
|
|
167
|
|
|
|
168
|
uniform vec3 offset; //#slider[(0.0,10.0,20.0),(0.0,10.0,20.0),(0.0,2.5,20.0)]
|
|
|
169
|
|
|
|
170
|
float DistanceEstimator(vec3 pos) {
|
|
|
171
|
pMod1(pos.x, offset.x);
|
|
|
172
|
pMod1(pos.y, offset.y);
|
|
|
173
|
pMod1(pos.z, offset.z);
|
|
|
174
|
return sphere(pos);
|
|
|
175
|
}
|
|
|
176
|
|
|
162
|
177
|
mat3 setCamera( in vec3 ro, in vec3 ta, float cr ) {
|
|
163
|
178
|
vec3 cw = normalize(ta-ro);
|
|
164
|
179
|
vec3 cp = vec3(sin(cr), cos(cr),0.0);
|
|
|
@ -167,8 +182,8 @@ mat3 setCamera( in vec3 ro, in vec3 ta, float cr ) {
|
|
167
|
182
|
return mat3( cu, cv, cw );
|
|
168
|
183
|
}
|
|
169
|
184
|
|
|
170
|
|
uniform vec3 origin; //#slider[(-10.0,1.0,10.0),(-10.0,2.0,10.0),(-10.0,-1.0,10.0)]
|
|
171
|
|
uniform vec3 angle; //#slider[(-3.0,0.0,3.0),(-3.0,0.0,3.0),(-3.0,0.0,3.0)]
|
|
|
185
|
uniform vec3 origin; //#slider[(-10.0,0.41,10.0),(-10.0,2.03,10.0),(-10.0,-1.34,10.0)]
|
|
|
186
|
uniform vec3 angle; //#slider[(-3.0,0.31,3.0),(-3.0,1.77,3.0),(-3.0,-0.18,3.0)]
|
|
172
|
187
|
uniform vec3 color; //#slider[(0.0, 1.0, 1.0),(0.0,0.0,1.0),(0.0,0.0,1.0)]
|
|
173
|
188
|
uniform float colorMix; //#slider[0.0,0.9,1.0]
|
|
174
|
189
|
|