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
Plaintext
53 lines
1.5 KiB
Plaintext
2 weeks ago
|
/******************************************************************************/
|
||
|
/*
|
||
|
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
|