summaryrefslogtreecommitdiffstats
path: root/vertex_deformation.slang
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-12-18 01:00:14 -0800
committeryum <yum.food.vr@gmail.com>2025-12-18 01:00:14 -0800
commitf7c5e546c220f0f7be8ec3a9cccdb4641114cfe1 (patch)
treeb287927c2d8a0d7781a56550066f222bac96b745 /vertex_deformation.slang
parent55a9113a1b7bc23a810606c2ed03d56c55aca060 (diff)
screw with operator ordering
Diffstat (limited to 'vertex_deformation.slang')
-rw-r--r--vertex_deformation.slang32
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,