Zurück zu Presets
Signed distance field density source
Fixed upper-bound ray-marching loop
Adaptive step size based on local density
Camera-space aspect correction with u_resolution

Nebel-Sphäre

In Nebel-Sphäre Volume Shader behandelt „Preset overview“ vor allem: Orbiting fog around a sphere via simple raymarch.. Das hilft beim Einordnen von Shader-Komplexität, Browser-Grafikpfad und GPU-Stabilität.

Für reale Messungen Browser, Preset, Fenstergröße, Energiemodus und thermischen Zustand fixieren. Bei Hitze oder Hängern Komplexität senken oder stoppen.

Leistungsfaktoren

Ray steps

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

Adaptive stepping

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

Resolution

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

Editierbare Parameter

Sphere radius

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

Density multiplier

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

Step distance

Für Vergleiche in Volume Shader BM müssen Browser, Preset, Fenstergröße, Energiemodus und thermischer Zustand konstant bleiben; diese Faktoren verändern FPS und Frame Time.

#version 300 es
precision highp float;

out vec4 outColor;
in vec2 v_uv;

uniform float u_time;
uniform vec2 u_resolution;

// Simple fake volumetric fog via raymarch toward a sphere
float sdSphere(vec3 p, float r) { return length(p) - r; }

float map(vec3 p) {
  // Central sphere as density source
  float d = sdSphere(p, 0.7);
  return d;
}

vec3 rayDir(vec2 uv, float fov) {
  vec2 xy = uv * 2.0 - 1.0;
  xy.x *= u_resolution.x / u_resolution.y;
  float z = 1.0 / tan(radians(fov) * 0.5);
  return normalize(vec3(xy, z));
}