diff options
Diffstat (limited to 'math.cginc')
| -rw-r--r-- | math.cginc | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -4,6 +4,21 @@ #define PI 3.14159265358979f #define RCP_PI (1.0f / PI) +float sin_noise_3d(float3 uvw) { + return sin(uvw[0]) * sin(uvw[1]) * sin(uvw[2]); +} + +float sin_noise_3d_fbm(float3 uvw, uint octaves, float k, float strength) { + float result = 0; + float factor = 1.0f; + for (uint i = 0; i < octaves; i++) { + result += sin_noise_3d(uvw) * factor * strength; + uvw *= k; + factor /= k; + } + return result; +} + // Wrap a dot product. Assume it's already clamped. // At k=0, you get standard lambertian shading. // At k=0.5, you get half-lambertian shading. |
