3D フラクタル
3D フラクタル Volume Shader の「Preset overview」では、Interactive 3D fractal with complex mathematical patterns. を中心に説明します。shader の複雑さ、ブラウザの描画経路、GPU の安定性を読むための内容です。
実測ではブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定します。動作が重い場合は複雑度を下げるか停止してください。
性能要因
Nested iterations
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
Normal estimation
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
Long runs
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
編集可能なパラメータ
MAXITER
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
Ray step distance
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
Lighting samples
Volume Shader BM の結果を比較する際は、ブラウザ、プリセット、ウィンドウサイズ、電源状態、熱状態を固定してください。条件が変わると FPS と frame time も変わります。
#version 300 es
precision highp float;
out vec4 outColor;
in vec2 v_uv;
uniform float u_time;
uniform vec2 u_resolution;
#define PI 3.14159265358979324
#define MAXITER 5
#define MAXDIST 6.0
float fractalKernel(vec3 ver) {
vec3 a = ver;
float b, c, d, e;
for(int i = 0; i < MAXITER; i++) {
b = length(a);
if(b > MAXDIST) break;
c = atan(a.y, a.x) * 8.0;
d = acos(clamp(a.z / b, -1.0, 1.0)) * 8.0;
b = pow(b, 8.0);
a = vec3(