66 static constexpr uint32 ThreadGroupSizeX = 8;
67 static constexpr uint32 ThreadGroupSizeY = 8;
68 static constexpr uint32 ThreadGroupSizeZ = 8;
69 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeNoiseGeneratorGlobalCS");
73 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
75 SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture3D<float>, RWNoiseTex)
77 SHADER_PARAMETER(FUintVector3, TexSize)
79 SHADER_PARAMETER(int32, Octaves)
81 SHADER_PARAMETER(
float, Wrap)
83 SHADER_PARAMETER(int32, AxisCellCount)
85 SHADER_PARAMETER(
float, Amplitude)
87 SHADER_PARAMETER(int32, CellSize)
89 SHADER_PARAMETER(int32, Seed)
90 END_SHADER_PARAMETER_STRUCT()
95 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
101 static constexpr uint32 ThreadGroupSizeX = 8;
102 static constexpr uint32 ThreadGroupSizeY = 8;
103 static constexpr uint32 ThreadGroupSizeZ = 8;
104 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeStructuredToTextureCS");
108 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
110 SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture3D<float>, Desti)
112 SHADER_PARAMETER_RDG_BUFFER_SRV(StructuredBuffer<float>, BirthTimes)
114 SHADER_PARAMETER_RDG_BUFFER_SRV(StructuredBuffer<float>, DeathTimes)
116 SHADER_PARAMETER_RDG_BUFFER_SRV(StructuredBuffer<FIVSmokeVolumeGPUData>, VolumeDataBuffer)
119 SHADER_PARAMETER(FIntVector, TexSize)
121 SHADER_PARAMETER(FIntVector, VoxelResolution)
123 SHADER_PARAMETER(int32, PackedInterval)
125 SHADER_PARAMETER(FIntVector, VoxelAtlasCount)
127 SHADER_PARAMETER(
float, GameTime)
129 SHADER_PARAMETER(int32, VolumeCount)
130 END_SHADER_PARAMETER_STRUCT()
135 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
141 static constexpr uint32 ThreadGroupSizeX = 8;
142 static constexpr uint32 ThreadGroupSizeY = 8;
143 static constexpr uint32 ThreadGroupSizeZ = 8;
144 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeVoxelFXAACS");
148 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
150 SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture3D<float>, Desti)
152 SHADER_PARAMETER_RDG_TEXTURE_SRV(Texture3D<float>, Source)
154 SHADER_PARAMETER_SAMPLER(SamplerState, LinearBorder_Sampler)
156 SHADER_PARAMETER(FIntVector, TexSize)
159 SHADER_PARAMETER(
float, FXAASpanMax)
161 SHADER_PARAMETER(
float, FXAARange)
163 SHADER_PARAMETER(
float, FXAASharpness)
164 END_SHADER_PARAMETER_STRUCT()
170 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeCompositePS");
171 static FRHIBlendState* GetBlendState()
173 return TStaticBlendState<>::GetRHI();
178 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
180 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneTex)
182 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SmokeTex)
184 SHADER_PARAMETER_SAMPLER(SamplerState, LinearClamp_Sampler)
186 SHADER_PARAMETER(FVector2f, ViewportSize)
188 SHADER_PARAMETER(FVector2f, ViewRectMin)
189 RENDER_TARGET_BINDING_SLOTS()
190 END_SHADER_PARAMETER_STRUCT()
195 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
201 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeCopyPS");
202 static FRHIBlendState* GetBlendState()
204 return TStaticBlendState<>::GetRHI();
210 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
212 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, MainTex)
214 SHADER_PARAMETER_SAMPLER(SamplerState, LinearRepeat_Sampler)
216 SHADER_PARAMETER(FVector2f, ViewportSize)
217 RENDER_TARGET_BINDING_SLOTS()
218 END_SHADER_PARAMETER_STRUCT()
223 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
230 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeUpsampleFilterPS");
231 static FRHIBlendState* GetBlendState()
233 return TStaticBlendState<>::GetRHI();
239 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
241 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneTex)
243 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SmokeAlbedoTex)
245 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SmokeLocalPosAlphaTex)
247 SHADER_PARAMETER_SAMPLER(SamplerState, LinearClamp_Sampler)
249 SHADER_PARAMETER(
int, UpSampleFilterType)
251 SHADER_PARAMETER(
float, SharpenStrength)
253 SHADER_PARAMETER(
float, BlurStrength)
255 SHADER_PARAMETER(FVector2f, ViewportSize)
257 SHADER_PARAMETER(FVector2f, ViewRectMin)
258 RENDER_TARGET_BINDING_SLOTS()
259 END_SHADER_PARAMETER_STRUCT()
264 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
279 static constexpr uint32 ThreadGroupSizeX = 8;
280 static constexpr uint32 ThreadGroupSizeY = 8;
281 static constexpr uint32 ThreadGroupSizeZ = 1;
282 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeDepthToVarianceCS");
287 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
289 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, DepthTexture)
291 SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture2D<float2>, VarianceTexture)
293 SHADER_PARAMETER(FIntPoint, TextureSize)
294 END_SHADER_PARAMETER_STRUCT()
296 static
bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
298 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
301 static void ModifyCompilationEnvironment(
const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
303 FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
304 OutEnvironment.SetDefine(TEXT(
"THREADGROUP_SIZE_X"), ThreadGroupSizeX);
305 OutEnvironment.SetDefine(TEXT(
"THREADGROUP_SIZE_Y"), ThreadGroupSizeY);
317 static constexpr uint32 ThreadGroupSizeX = 8;
318 static constexpr uint32 ThreadGroupSizeY = 8;
319 static constexpr uint32 ThreadGroupSizeZ = 1;
320 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeVSMBlurCS");
325 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
327 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SourceTexture)
329 SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture2D<float2>, DestTexture)
331 SHADER_PARAMETER_SAMPLER(SamplerState, LinearClampSampler)
333 SHADER_PARAMETER(FIntPoint, TextureSize)
335 SHADER_PARAMETER(int32, BlurRadius)
337 SHADER_PARAMETER(int32, BlurDirection)
338 END_SHADER_PARAMETER_STRUCT()
340 static
bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
342 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
345 static void ModifyCompilationEnvironment(
const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
347 FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
348 OutEnvironment.SetDefine(TEXT(
"THREADGROUP_SIZE_X"), ThreadGroupSizeX);
349 OutEnvironment.SetDefine(TEXT(
"THREADGROUP_SIZE_Y"), ThreadGroupSizeY);
364 static constexpr const TCHAR* EventName = TEXT(
"IVSmokeDepthWritePS");
369 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
371 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SmokeWorldPosDepthTex)
373 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SmokeLocalPosAlphaTex)
375 SHADER_PARAMETER_SAMPLER(SamplerState, LinearClampSampler)
377 SHADER_PARAMETER(FVector3f, CameraForward)
379 SHADER_PARAMETER(FVector3f, CameraOrigin)
381 SHADER_PARAMETER(FVector2f, ViewportSize)
383 SHADER_PARAMETER(FVector2f, ViewRectMin)
385 SHADER_PARAMETER(
float, DepthBias)
387 SHADER_PARAMETER(
float, AlphaThreshold)
389 SHADER_PARAMETER(
float, ViewToClip_22)
391 SHADER_PARAMETER(
float, ViewToClip_32)
392 RENDER_TARGET_BINDING_SLOTS()
393 END_SHADER_PARAMETER_STRUCT()
398 return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::SM5);
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)