Firstborn/Library/PackageCache/com.unity.postprocessing@3.2.2/PostProcessing/Shaders/Builtins/Texture3DLerp.compute
Schaken-Mods b486678290 Library -Artifacts
Library -Artifacts
2023-03-28 12:24:16 -05:00

51 lines
1.2 KiB
Plaintext

#pragma warning(disable : 3568)
#pragma exclude_renderers gles gles3 d3d11_9x
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/StdLib.hlsl"
#pragma kernel KTexture3DLerp
#pragma kernel KTexture3DLerpToColor
RWTexture3D<float4> _Output;
CBUFFER_START(Params)
float4 _DimensionsAndLerp; // xyz: surface dimensions, w: lerp factor
float4 _TargetColor; // Color to lerp into
CBUFFER_END
Texture3D _From;
Texture3D _To;
#define GROUP_SIZE 4
#ifdef DISABLE_COMPUTE_SHADERS
TRIVIAL_COMPUTE_KERNEL(KTexture3DLerp)
TRIVIAL_COMPUTE_KERNEL(KTexture3DLerpToColor)
#else
[numthreads(GROUP_SIZE, GROUP_SIZE, GROUP_SIZE)]
void KTexture3DLerp(uint3 id : SV_DispatchThreadID)
{
if(all(float3(id) < _DimensionsAndLerp.xyz))
{
float4 from = _From[id];
float4 to = _To[id];
_Output[id] = lerp(from, to, _DimensionsAndLerp.wwww);
}
}
[numthreads(GROUP_SIZE, GROUP_SIZE, GROUP_SIZE)]
void KTexture3DLerpToColor(uint3 id : SV_DispatchThreadID)
{
if(all(float3(id) < _DimensionsAndLerp.xyz))
{
float4 from = _From[id];
float4 to = _TargetColor;
_Output[id] = lerp(from, to, _DimensionsAndLerp.wwww);
}
}
#endif // DISABLE_COMPUTE_SHADERS