Slide 37
Slide 37 text
// 2DのIFSでマークを生成
vec4[] param_array = vec4[](
vec4(140., 72., 0., 0.), vec4(0., 184., 482, 0.), vec4(0., 0., 753., 0.),
vec4(541., 156., 453., 0.), vec4(112., 0., 301., 0.),
vec4(311., 172., 50., 0.), vec4(249., 40., 492., 0.), vec4(0.));
vec4 param = param_array[int(mod(dice * 33.01, 8.))] / vec2(1200., 675.).xyxy;
vec2 p1 = p - param.xy;
for (int i = 0; i < 3; i++) {
p1 = abs(p1 + param.xy) - param.xy;
rot(p1, TAU * param.z);
}
float d = sdBox(p1, vec2(.2, .05));
mark = saturate(smoothstep(0., .01, d));
壁面の演出:警告
37
IFSのパラメーターは配列で定義
2DのIFS
平行移動と回転