You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.5 KiB
HLSL

/******************************************************************************/
/*
Project - MudBun
Publisher - Long Bunny Labs
http://LongBunnyLabs.com
Author - Ming-Lun "Allen" Chou
http://AllenChou.net
Based on project "webgl-noise" by Ashima Arts.
Description : Array and textureless GLSL 2D simplex noise function.
Author : Ian McEwan, Ashima Arts.
Maintainer : ijm
Lastmod : 20110822 (ijm)
License : Copyright (C) 2011 Ashima Arts. All rights reserved.
Distributed under the MIT License. See LICENSE file.
https://github.com/ashima/webgl-noise
*/
/******************************************************************************/
#ifndef MUDBUN_CACHED_NOISE_3D
#define MUDBUN_CACHED_NOISE_3D
#include "NoiseCommon.cginc"
#include "ClassicNoise3D.cginc"
//#if MUDBUN_IS_COMPUTE_SHADER
Texture3D noiseCache;
SamplerState noiseCache_trilinear_repeat_sampler;
//#else
//sampler3D noiseCache;
//#endif
float4 noiseCacheDimension; // w: unused
float noiseCacheDensity;
// range: [-0.5, 0.5]
float mbn_cached_noise(float3 p)
{
float3 unitsPerPeriod = noiseCacheDimension.xyz / noiseCacheDensity;
p = p / unitsPerPeriod;
//#if MUDBUN_IS_COMPUTE_SHADER
return noiseCache.SampleLevel(noiseCache_trilinear_repeat_sampler, p, 0.0f, 0).r;
//#else
// return tex3D(noiseCache, p).r;
//#endif
}
// multiple octave
DEFINE_NOISE_FUNC_MULTIPLE_OCTAVES(mbn_cached_noise, float, float3, 0.5f)
#endif