65 lines
1.0 KiB
HLSL
65 lines
1.0 KiB
HLSL
#ifndef _INCLUDE_JP_KEIJIRO_NOISESHADER_COMMON_HLSL_
|
|
#define _INCLUDE_JP_KEIJIRO_NOISESHADER_COMMON_HLSL_
|
|
|
|
float wglnoise_mod(float x, float y)
|
|
{
|
|
return x - y * floor(x / y);
|
|
}
|
|
|
|
float2 wglnoise_mod(float2 x, float2 y)
|
|
{
|
|
return x - y * floor(x / y);
|
|
}
|
|
|
|
float3 wglnoise_mod(float3 x, float3 y)
|
|
{
|
|
return x - y * floor(x / y);
|
|
}
|
|
|
|
float4 wglnoise_mod(float4 x, float4 y)
|
|
{
|
|
return x - y * floor(x / y);
|
|
}
|
|
|
|
float2 wglnoise_fade(float2 t)
|
|
{
|
|
return t * t * t * (t * (t * 6 - 15) + 10);
|
|
}
|
|
|
|
float3 wglnoise_fade(float3 t)
|
|
{
|
|
return t * t * t * (t * (t * 6 - 15) + 10);
|
|
}
|
|
|
|
float wglnoise_mod289(float x)
|
|
{
|
|
return x - floor(x / 289) * 289;
|
|
}
|
|
|
|
float2 wglnoise_mod289(float2 x)
|
|
{
|
|
return x - floor(x / 289) * 289;
|
|
}
|
|
|
|
float3 wglnoise_mod289(float3 x)
|
|
{
|
|
return x - floor(x / 289) * 289;
|
|
}
|
|
|
|
float4 wglnoise_mod289(float4 x)
|
|
{
|
|
return x - floor(x / 289) * 289;
|
|
}
|
|
|
|
float3 wglnoise_permute(float3 x)
|
|
{
|
|
return wglnoise_mod289((x * 34 + 1) * x);
|
|
}
|
|
|
|
float4 wglnoise_permute(float4 x)
|
|
{
|
|
return wglnoise_mod289((x * 34 + 1) * x);
|
|
}
|
|
|
|
#endif
|