diff options
Diffstat (limited to 'common/shaders/render/raymarching.wgsl')
| -rw-r--r-- | common/shaders/render/raymarching.wgsl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/common/shaders/render/raymarching.wgsl b/common/shaders/render/raymarching.wgsl index fb96348..4e0327b 100644 --- a/common/shaders/render/raymarching.wgsl +++ b/common/shaders/render/raymarching.wgsl @@ -1,7 +1,7 @@ // Common functions for Signed Distance Field (SDF) raymarching. // // Required user-defined functions: -// - df(vec3<f32>) -> f32 +// - df(vec3f) -> f32 // Distance field for single-pass rendering (rayMarch, normal, shadow) // // For two-pass rendering with object IDs, see raymarching_id.wgsl @@ -15,9 +15,9 @@ const MAX_RAY_MARCHES: i32 = 80; const NORM_OFF: f32 = 0.005; // Computes the surface normal of the distance field at a point `pos`. -fn normal(pos: vec3<f32>) -> vec3<f32> { +fn normal(pos: vec3f) -> vec3f { let eps = vec2<f32>(NORM_OFF, 0.0); - var nor: vec3<f32>; + var nor: vec3f; nor.x = df(pos + eps.xyy) - df(pos - eps.xyy); nor.y = df(pos + eps.yxy) - df(pos - eps.yxy); nor.z = df(pos + eps.yyx) - df(pos - eps.yyx); @@ -26,7 +26,7 @@ fn normal(pos: vec3<f32>) -> vec3<f32> { // Performs the raymarching operation. // Returns the distance along the ray to the surface, or MAX_RAY_LENGTH if no surface is hit. -fn rayMarch(ro: vec3<f32>, rd: vec3<f32>, tmin: f32) -> f32 { +fn rayMarch(ro: vec3f, rd: vec3f, tmin: f32) -> f32 { var t = tmin; for (var i = 0; i < MAX_RAY_MARCHES; i++) { if (t > MAX_RAY_LENGTH) { @@ -43,7 +43,7 @@ fn rayMarch(ro: vec3<f32>, rd: vec3<f32>, tmin: f32) -> f32 { } // Computes a soft shadow for a given point. -fn shadow(lp: vec3<f32>, ld: vec3<f32>, mint: f32, maxt: f32) -> f32 { +fn shadow(lp: vec3f, ld: vec3f, mint: f32, maxt: f32) -> f32 { let ds = 1.0 - 0.4; var t = mint; var nd = 1e6; |
