snoise tie docs: the old rule's jump reaches 1.56 away from the origin, not 0.77

Soul s1 (cut-snoise-tie) measured 1.55 to 1.56 at magnitudes 64 and above;
0.77 holds only near the origin. Comment and design text only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-04 04:25:58 +02:00
commit e1daefb5b6
2 changed files with 4 additions and 3 deletions

View file

@ -360,8 +360,8 @@ together, laid out as `float4(gradient.xyz, value.w)`, with no value-only twin
`simplexnoise1234` order (x over y, y over z, x over z), a total order, so the
four corners are always a simplex. Upstream's `step` compares are cyclic: where
the three components are equal, which includes the origin and every
`(t, t, t)`, the corners repeat the origin vertex and the value jumps by up to
0.77. `NoiseGradTests.SnoiseIsContinuousOnTheSimplexDiagonal` pins the order.
`(t, t, t)`, the corners repeat the origin vertex and the value jumps by about
0.77 near the origin and up to 1.56 at magnitudes of 64 and above. `NoiseGradTests.SnoiseIsContinuousOnTheSimplexDiagonal` pins the order.
- `snoise_grad(float3 p)` carries `snoise(float3)` to value-and-gradient form,
following the differentiation in webgl-noise `src/noise3Dgrad.glsl` (Ashima
Arts / Ian McEwan, MIT), which uses the same radius, permutation and scale as

View file

@ -192,7 +192,8 @@ public sealed class NoiseGradTests
// The simplex diagonals are where x0's three components compare equal. The tie rule must be a total
// order there (math.snoise): with a cyclic or all-strict compare the four corners stop being a
// simplex and the value jumps by up to 0.77 on the line (t, t, t), lattice diagonals included.
// simplex and the value jumps on the line (t, t, t), lattice diagonals included: about 0.77 near the
// origin, up to 1.56 at magnitudes of 64 and above.
[Fact]
public void SnoiseIsContinuousOnTheSimplexDiagonal()
{