Esfera de niebla
En Esfera de niebla Volume Shader, la sección “Preset overview” se centra en: Orbiting fog around a sphere via simple raymarch.. Sirve para entender complejidad de shader, ruta gráfica del navegador y estabilidad GPU.
En pruebas reales, fija navegador, preset, tamaño de ventana, energía y estado térmico. Si el equipo se calienta o se bloquea, baja la complejidad o detén la prueba.
Factores de rendimiento
Ray steps
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y frame time.
Adaptive stepping
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y frame time.
Resolution
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y frame time.
Parámetros editables
Sphere radius
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y frame time.
Density multiplier
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y frame time.
Step distance
Para comparar resultados de Volume Shader BM, fija navegador, preset, tamaño de ventana, modo de energía y estado térmico; esos factores cambian FPS y 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));
}