diff options
| author | yum <yum.food.vr@gmail.com> | 2025-12-18 01:00:14 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-12-18 01:00:14 -0800 |
| commit | f7c5e546c220f0f7be8ec3a9cccdb4641114cfe1 (patch) | |
| tree | b287927c2d8a0d7781a56550066f222bac96b745 /vertex_deformation.slang | |
| parent | 55a9113a1b7bc23a810606c2ed03d56c55aca060 (diff) | |
screw with operator ordering
Diffstat (limited to 'vertex_deformation.slang')
| -rw-r--r-- | vertex_deformation.slang | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/vertex_deformation.slang b/vertex_deformation.slang index d3f46bc..9ac88db 100644 --- a/vertex_deformation.slang +++ b/vertex_deformation.slang @@ -474,18 +474,18 @@ float3 value_noise(float3 xyz, out float3 dx, out float3 dy, out float3 dz) { float3 fbm_with_derivatives(float3 xyz, no_diff float t, - no_diff float amplitude, + no_diff float3 amplitude, no_diff float gain, no_diff float lacunarity, - no_diff float scale, + no_diff float3 period, no_diff float octaves, no_diff float3 velocity, out float3 dx, out float3 dy, out float3 dz) { float3 noise = float3(0.0f, 0.0f, 0.0f); - float gain_i = amplitude; - float freq_i = scale; + float3 gain_i = amplitude; + float3 freq_i = 1.0f / period; dx = float3(0.0f, 0.0f, 0.0f); dy = float3(0.0f, 0.0f, 0.0f); @@ -495,9 +495,9 @@ float3 fbm_with_derivatives(float3 xyz, float3 dx_i, dy_i, dz_i; float3 octave_noise = value_noise((xyz - velocity * t) * freq_i, dx_i, dy_i, dz_i); noise += gain_i * octave_noise; - dx += gain_i * freq_i * dx_i; - dy += gain_i * freq_i * dy_i; - dz += gain_i * freq_i * dz_i; + dx += gain_i * freq_i.x * dx_i; + dy += gain_i * freq_i.y * dy_i; + dz += gain_i * freq_i.z * dz_i; freq_i *= lacunarity; gain_i *= gain; } @@ -511,23 +511,23 @@ float3 fbm_with_derivatives(float3 xyz, public float3 fbm(float3 xyz, no_diff float t, - no_diff float amplitude, + no_diff float3 amplitude, no_diff float gain, no_diff float lacunarity, - no_diff float scale, + no_diff float3 period, no_diff float octaves, no_diff float3 velocity) { float3 dx_unused, dy_unused, dz_unused; - return fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, scale, octaves, + return fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, period, octaves, velocity, dx_unused, dy_unused, dz_unused); } public void fbm_normal(inout float3 xyz, inout float3 normal, inout float3 tangent, no_diff float t, - no_diff float amplitude, no_diff float gain, no_diff float lacunarity, - no_diff float scale, no_diff float octaves, no_diff float3 velocity) { + no_diff float3 amplitude, no_diff float gain, no_diff float lacunarity, + no_diff float3 period, no_diff float octaves, no_diff float3 velocity) { float3 dx, dy, dz; - xyz = fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, scale, octaves, + xyz = fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, period, octaves, velocity, dx, dy, dz); float3x3 jac = float3x3( dx.x, dy.x, dz.x, @@ -540,11 +540,11 @@ public void fbm_normal(inout float3 xyz, inout float3 normal, inout float3 tange } public void fbm_undeform_normal(float3 xyz, float t, - float amplitude, float gain, float lacunarity, - float scale, float octaves, float3 velocity, + float3 amplitude, float gain, float lacunarity, + float3 period, float octaves, float3 velocity, inout float3 normal, inout float3 tangent) { float3 dx, dy, dz; - fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, scale, octaves, + fbm_with_derivatives(xyz, t, amplitude, gain, lacunarity, period, octaves, velocity, dx, dy, dz); float3x3 jac = float3x3( dx.x, dy.x, dz.x, |
