UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RenderUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "RHIFwd.h"
7#include "RHIShaderPlatform.h"
8#include "RHIFeatureLevel.h"
9#include "ReadOnlyCVARCache.h"
10
11class ITargetPlatform;
14enum class ERayTracingMode : uint8;
15
17
18#define NUM_DEBUG_UTIL_COLORS (32)
20{
21 FColor(20,226,64),
22 FColor(210,21,0),
23 FColor(72,100,224),
24 FColor(14,153,0),
25 FColor(186,0,186),
26 FColor(54,0,175),
27 FColor(25,204,0),
28 FColor(15,189,147),
29 FColor(23,165,0),
30 FColor(26,206,120),
31 FColor(28,163,176),
32 FColor(29,0,188),
33 FColor(130,0,50),
34 FColor(31,0,163),
35 FColor(147,0,190),
36 FColor(1,0,109),
37 FColor(2,126,203),
38 FColor(3,0,58),
39 FColor(4,92,218),
40 FColor(5,151,0),
41 FColor(18,221,0),
42 FColor(6,0,131),
43 FColor(7,163,176),
44 FColor(8,0,151),
45 FColor(102,0,216),
46 FColor(10,0,171),
47 FColor(11,112,0),
48 FColor(12,167,172),
49 FColor(13,189,0),
50 FColor(16,155,0),
51 FColor(178,161,0),
52 FColor(19,25,126)
53};
54
55#define NUM_CUBE_VERTICES 36
56
58extern RENDERCORE_API const uint16 GCubeIndices[36];
59
63inline uint16 GetCubeVertexIndex(uint32 X,uint32 Y,uint32 Z) { return (uint16)(X * 4 + Y * 2 + Z); }
64
69{
70 union
71 {
72 struct
73 {
74#if PLATFORM_LITTLE_ENDIAN
75 int32 X : 11;
76 int32 Y : 11;
77 int32 Z : 10;
78#else
79 int32 Z : 10;
80 int32 Y : 11;
81 int32 X : 11;
82#endif
84
86 };
87
88 // Constructors.
91 {
92 Set(Other);
93 }
95 {
96 Set(Other);
97 }
98
99 // Conversion operators.
101 {
102 Set( Other );
103 return *this;
104 }
106 {
107 Set( Other );
108 return *this;
109 }
110
111 operator FVector3f() const;
113
114 // Set functions.
115 void Set(const FVector3f& InVector);
116 void Set(const FVector3d& InVector);
117
118 // Serializer.
120};
121
122
146
159
175
186RENDERCORE_API FIntPoint CalcMipMapExtent( uint32 TextureSizeX, uint32 TextureSizeY, EPixelFormat Format, uint32 MipIndex );
187
198RENDERCORE_API SIZE_T CalcTextureMipMapSize( uint32 TextureSizeX, uint32 TextureSizeY, EPixelFormat Format, uint32 MipIndex );
199
211
224
235
242
243
250
257
259
261
263
265inline bool IsMobileHDR()
266{
268}
269
274
279
284
289
291
293
295
297
299
301
303
305
308
310
312
314
316
318
320
322
324
326
328
330
332
334
336
338
340
342
345
348
351
354
357
360
363
366
369
372
375
377
379
381
383
385
387
389
391
393
396
399
402
409
416
423
426
430
434RENDERCORE_API bool UseNanite(EShaderPlatform ShaderPlatform, bool bCheckForAtomicSupport = true, bool bCheckForProjectSetting = true);
435
440
446
451RENDERCORE_API bool UseVirtualShadowMaps(EShaderPlatform ShaderPlatform, const FStaticFeatureLevel FeatureLevel);
452
458
464
469
472
473/*
474 * Detect (at runtime) if the runtime supports heterogeneous volumes.
475 */
477
482
487
492
497
502
507
512
517
522
527
532
537
543
549
550/*
551 * Detect (at runtime) if the runtime supports rendering one-pass point light shadows (i.e., cube maps)
552 */
554
559
566
571
575
576// Returns `true` when running on RT-capable machine, RT support is enabled for the project and by game graphics options and RT is enabled with r.Raytracing.Enable
577// This function may only be called at runtime, never during cooking.
579
580// Returns 'true' when running on RT-capable machine, RT support is enabled for the project and by game graphics options and ShaderPlatform supports RT and RT is enabled with r.Raytracing.Enable
581// This function may only be called at runtime, never during cooking.
583
584// Returns 'true' when running on RT-capable machine, RT support is enabled for the project and by game graphics options
585// This function may only be called at runtime, never during cooking.
587
588// Returns the ray tracing mode if ray tracing is allowed.
589// This function may only be called at runtime, never during cooking.
591
592// Returns 'true' when using TLAS references to determine ray tracing geometry residency
593// In which case the runtime should track which ray tracing geometries are referenced in the TLAS
595
596// Returns 'true' when ray tracing can be toggled on/off at runtime.
598
600
601// Returns 'true' when static lighting is enabled for the project
606
607// Returns 'true' when first person primitives are tagged in the GBuffer.
609
611
614
616
619
621
622namespace Substrate
623{
629 UE_DEPRECATED(5.7, "Plase use IsGlintEnabled(EShaderPlatform InPlatform)")
643
645
647
649
652
654
657
660}
661
662// Light function atlas settings
664// Light function atlas project settings triggering shader compilation
670
673
674// Helper function to calculate Z params for froxel grids
675// Used in shaders with ComputeDepthFromZSlice(...)
677{
678 // S = distribution scale
679 // B, O are solved for given the z distances of the first+last slice, and the # of slices.
680 //
681 // slice = log2(z*B + O) * S
682
683 // Don't spend lots of resolution right in front of the near plane
684 double NearOffset = .095 * 100;
685 // Space out the slices so they aren't all clustered at the near plane
686 double S = DepthDistributionScale;
687
688 double N = NearPlane + NearOffset;
689 double F = FarPlane;
690
691 double O = (F - N * FMath::Exp2(GridSizeZ / S)) / (F - N);
692 double B = (1 - O) / N;
693
694 return FVector(B, O, S);
695}
696
697// LuminanceMax is the amount of light that will cause the sensor to saturate at EV100.
698// See also https://en.wikipedia.org/wiki/Film_speed and https://en.wikipedia.org/wiki/Exposure_value for more info.
699inline float EV100ToLuminance(float LuminanceMax, float EV100)
700{
701 return LuminanceMax * FMath::Pow(2.0f, EV100);
702}
703
704inline float EV100ToLuminance(float EV100)
705{
706 // LuminanceMax set to 1 for lighting to be unitless (1.0cd/m^2 becomes 1.0 at EV100)
707 return EV100ToLuminance(1.0f, EV100);
708}
709
710inline float EV100ToLog2(float LuminanceMax, float EV100)
711{
713}
714
715inline float LuminanceToEV100(float LuminanceMax, float Luminance)
716{
718}
719
720inline float LuminanceToEV100(float Luminance)
721{
722 // LuminanceMax set to 1 for lighting to be unitless (1.0cd/m^2 becomes 1.0 at EV100)
723 return FMath::Log2(Luminance);
724}
725
726inline float Log2ToEV100(float LuminanceMax, float Log2)
727{
728 return Log2 - FMath::Log2(LuminanceMax);
729}
730
731// Whether or not VRS is supported via r.VRS.Support and the current platform's DDPI
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
EPixelFormat
Definition PixelFormat.h:16
EPixelFormatChannelFlags
Definition PixelFormat.h:211
ECubeFace
Definition RHIDefinitions.h:525
EShaderPlatform
Definition RHIShaderPlatform.h:11
ERayTracingMode
Definition RenderResource.h:27
bool GetTranslucentUsesLightFunctionAtlas()
Definition RenderUtils.cpp:1907
bool GetHairStrandsUsesTriangleStrips()
Definition RenderUtils.cpp:1927
bool GetTranslucentUsesLightIESProfiles()
Definition RenderUtils.cpp:1922
bool GetTranslucentUsesShadowedLocalLights()
Definition RenderUtils.cpp:1917
int32 GetLightFunctionAtlasFormat()
Definition RenderUtils.cpp:1897
bool GetSingleLayerWaterUsesLightFunctionAtlas()
Definition RenderUtils.cpp:1902
bool HardwareVariableRateShadingSupportedByPlatform(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:2410
bool GetTranslucentUsesLightRectLights()
Definition RenderUtils.cpp:1912
uint32 GetHairStrandsLODMode()
Definition RenderUtils.cpp:1932
RENDERCORE_API bool IsMobileDistanceFieldAOEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1614
constexpr FColor DebugUtilColor[NUM_DEBUG_UTIL_COLORS]
Definition RenderUtils.h:19
RENDERCORE_API bool ForceSimpleSkyDiffuse(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1657
RENDERCORE_API bool VelocityEncodeDepth(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1662
RENDERCORE_API bool IsMobileCapsuleDirectShadowsEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:574
RENDERCORE_API int32 GetMaterialShadingPathNodeOverride(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1630
RENDERCORE_API bool UseNaniteLandscapeMesh(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1223
float Log2ToEV100(float LuminanceMax, float Log2)
Definition RenderUtils.h:726
RENDERCORE_API bool IsUsingSelectiveBasePassOutputs(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1591
RENDERCORE_API bool AreSkinCacheShadersEnabled(EShaderPlatform Platform)
Definition RenderUtils.cpp:1515
RENDERCORE_API bool DoesProjectSupportLumenGI(EShaderPlatform Platform)
Definition RenderUtils.cpp:2352
RENDERCORE_API bool AllowTranslucencyPerObjectShadows(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1705
RENDERCORE_API bool HasFirstPersonGBufferBit(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:2345
RENDERCORE_API const TCHAR * GetCubeFaceName(ECubeFace Face)
Definition RenderUtils.cpp:340
RENDERCORE_API bool AreMobileScreenSpaceReflectionsEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:552
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector4()
Definition RenderUtils.cpp:410
RENDERCORE_API bool VelocityIncludeStationaryPrimitives(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1699
RENDERCORE_API bool IsMobileAmbientOcclusionEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:545
RENDERCORE_API bool UseNanite(EShaderPlatform ShaderPlatform, bool bCheckForAtomicSupport=true, bool bCheckForProjectSetting=true)
Definition RenderUtils.cpp:1414
RENDERCORE_API bool IsWaterVirtualShadowMapFilteringEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1455
bool IsMobileHDR()
Definition RenderUtils.h:265
RENDERCORE_API bool UseVirtualShadowMaps(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1426
RENDERCORE_API bool IsRayTracingEnableOnDemandSupported()
Definition RenderUtils.cpp:1821
RENDERCORE_API bool MobileUsesGBufferCustomData(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:609
RENDERCORE_API bool UseSparseVolumeTextures(EShaderPlatform Platform)
Definition RenderUtils.cpp:1486
RENDERCORE_API bool ShouldForceFullDepthPass(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:650
FVector CalculateGridZParams(float NearPlane, float FarPlane, float DepthDistributionScale, int32 GridSizeZ)
Definition RenderUtils.h:676
bool MobileForwardEnableLocalLights(const FStaticShaderPlatform Platform)
Definition RenderUtils.h:280
RENDERCORE_API void RenderUtilsInit()
Definition RenderUtils.cpp:781
RENDERCORE_API bool PlatformSupportsOpenXRMotionVectors(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1688
RENDERCORE_API bool ShouldGenerateRayTracingProxiesByDefault()
Definition RenderUtils.cpp:1716
RENDERCORE_API bool IsGPUSkinCacheAvailable(EShaderPlatform Platform)
Definition RenderUtils.cpp:1527
RENDERCORE_API bool PlatformGPUSceneUsesUniformBufferView(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:461
RENDERCORE_API FIntPoint CalcMipMapExtent(uint32 TextureSizeX, uint32 TextureSizeY, EPixelFormat Format, uint32 MipIndex)
Definition RenderUtils.cpp:180
RENDERCORE_API bool UseNonNaniteVirtualShadowMaps(EShaderPlatform ShaderPlatform, FStaticFeatureLevel FeatureLevel)
Definition RenderUtils.cpp:1449
RENDERCORE_API bool UseVirtualTextureLightmap(const FStaticShaderPlatform Platform, const ITargetPlatformSettings *TargetPlatform=nullptr)
Definition RenderUtils.cpp:1217
RENDERCORE_API bool DoesProjectSupportExpFogMatchesVolumetricFog()
Definition RenderUtils.cpp:2427
RENDERCORE_API bool ShouldCompileRayTracingCallableShadersForProject(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1770
RENDERCORE_API bool MobileAllowFramebufferFetch(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:466
RENDERCORE_API const uint16 GCubeIndices[36]
Definition RenderUtils.cpp:63
bool MobileForwardEnableParticleLights(const FStaticShaderPlatform Platform)
Definition RenderUtils.h:285
RENDERCORE_API SIZE_T CalcTextureMipMapSize(uint32 TextureSizeX, uint32 TextureSizeY, EPixelFormat Format, uint32 MipIndex)
Definition RenderUtils.cpp:186
RENDERCORE_API ERayTracingMode GetRayTracingMode()
Definition RenderUtils.cpp:1809
RENDERCORE_API bool IsRayTracingUsingReferenceBasedResidency()
Definition RenderUtils.cpp:1814
RENDERCORE_API bool DoesPlatformSupportHeterogeneousVolumes(EShaderPlatform Platform)
Definition RenderUtils.cpp:1472
RENDERCORE_API bool IsGPUSkinPassThroughSupported(EShaderPlatform Platform)
Definition RenderUtils.cpp:1532
RENDERCORE_API bool UseVirtualTexturing(const FStaticShaderPlatform InShaderPlatform)
Definition RenderUtils.cpp:1166
RENDERCORE_API void CalcMipMapExtent3D(uint32 TextureSizeX, uint32 TextureSizeY, uint32 TextureSizeZ, EPixelFormat Format, uint32 MipIndex, uint32 &OutXExtent, uint32 &OutYExtent, uint32 &OutZExtent)
Definition RenderUtils.cpp:162
float LuminanceToEV100(float LuminanceMax, float Luminance)
Definition RenderUtils.h:715
RENDERCORE_API bool RenderRectLightsAsSpotLights(const FStaticFeatureLevel FeatureLevel)
Definition RenderUtils.cpp:1839
RENDERCORE_API bool IsRayTracingEnabledForProject(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1734
RENDERCORE_API bool VelocitySupportsPixelShaderMotionVectorWorldOffset(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1682
RENDERCORE_API bool DoesTargetPlatformSupportNanite(const ITargetPlatform *TargetPlatform)
Definition RenderUtils.cpp:1395
RENDERCORE_API bool IsMobileMovableSpotlightShadowsEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:563
RENDERCORE_API bool IsSingleLayerWaterDepthPrepassEnabled(const FStaticShaderPlatform Platform, FStaticFeatureLevel FeatureLevel)
Definition RenderUtils.cpp:1494
RENDERCORE_API bool IsRayTracingAllowed()
Definition RenderUtils.cpp:1787
RENDERCORE_API bool NaniteVoxelsSupported()
Definition RenderUtils.cpp:1361
RENDERCORE_API bool MobileUsesExtenedGBuffer(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:598
RENDERCORE_API bool PlatformSupportsVelocityRendering(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1258
RENDERCORE_API bool MobileSupportsSM5MaterialNodes(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:644
RENDERCORE_API bool NaniteWorkGraphMaterialsSupported()
Definition RenderUtils.cpp:1325
RENDERCORE_API bool DoesRuntimeSupportNanite(EShaderPlatform ShaderPlatform, bool bCheckForAtomicSupport, bool bCheckForProjectSetting)
Definition RenderUtils.cpp:1384
RENDERCORE_API bool IsUsingDBuffers(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1507
RENDERCORE_API bool UseRemoveUnsedInterpolators(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1235
RENDERCORE_API bool IsRayTracingEnabled()
Definition RenderUtils.cpp:1775
RENDERCORE_API bool DoesPlatformSupportSparseVolumeTextures(EShaderPlatform Platform)
Definition RenderUtils.cpp:1480
RENDERCORE_API bool DoesPlatformSupportVirtualShadowMaps(EShaderPlatform Platform)
Definition RenderUtils.cpp:1438
bool MobileSupportsGPUScene()
Definition RenderUtils.h:270
RENDERCORE_API bool AllowPerPixelShadingModels(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:522
RENDERCORE_API bool NaniteAtomicsSupported()
Definition RenderUtils.cpp:1293
RENDERCORE_API bool ShouldCompileRayTracingShadersForProject(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1758
#define NUM_DEBUG_UTIL_COLORS
Definition RenderUtils.h:18
RENDERCORE_API bool DoesRuntimeSupportOnePassPointLightShadows(EShaderPlatform Platform)
Definition RenderUtils.cpp:1549
RENDERCORE_API bool IsGPUSkinCacheAllowed(EShaderPlatform Platform)
Definition RenderUtils.cpp:1521
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector3()
Definition RenderUtils.cpp:433
float EV100ToLuminance(float LuminanceMax, float EV100)
Definition RenderUtils.h:699
bool IsMobileDeferredShadingEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.h:275
RENDERCORE_API bool VelocitySupportsTemporalResponsiveness(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1676
RENDERCORE_API bool ForwardShadingForcesSkyLightCubemapBlending(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:2404
RENDERCORE_API bool IsWaterDistanceFieldShadowEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1601
RENDERCORE_API bool SupportsGen4TAA(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:673
RENDERCORE_API void CopyTextureData2D(const void *Source, void *Dest, uint32 SizeY, EPixelFormat Format, uint32 SourceStride, uint32 DestStride)
Definition RenderUtils.cpp:196
RENDERCORE_API bool DoesPlatformSupportLumenGI(EShaderPlatform Platform, bool bSkipProjectCheck=false)
Definition RenderUtils.cpp:2358
RENDERCORE_API bool AllowPixelDepthOffset(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:512
RENDERCORE_API bool NaniteSplineMeshesSupported()
Definition RenderUtils.cpp:1338
RENDERCORE_API bool VelocityEncodeHasPixelAnimation(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1667
bool IsStaticLightingAllowed()
Definition RenderUtils.h:602
RENDERCORE_API bool IsForwardShadingEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1557
RENDERCORE_API bool ExcludeNonPipelinedShaderTypes(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1242
RENDERCORE_API bool IsStencilForLODDitherEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1620
RENDERCORE_API bool AreBufferSRVsAlwaysCreatedByDefault(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1540
RENDERCORE_API bool IsMobileDistanceFieldEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:558
RENDERCORE_API void QuantizeSceneBufferSize(const FIntPoint &InBufferSize, FIntPoint &OutBufferSize, const uint32 SuggestedDivisor=0)
Definition RenderUtils.cpp:1149
RENDERCORE_API bool UseNaniteTessellation()
Definition RenderUtils.cpp:1370
RENDERCORE_API ECubeFace GetCubeFaceFromName(const FString &Name)
Definition RenderUtils.cpp:361
RENDERCORE_API bool DoesRuntimeSupportHeterogeneousVolumes(EShaderPlatform Platform)
Definition RenderUtils.cpp:1465
RENDERCORE_API bool UseNaniteFastTileClear()
Definition RenderUtils.cpp:1332
uint16 GetCubeVertexIndex(uint32 X, uint32 Y, uint32 Z)
Definition RenderUtils.h:63
RENDERCORE_API bool UseGPUScene(const FStaticShaderPlatform Platform, const FStaticFeatureLevel FeatureLevel)
Definition RenderUtils.cpp:1636
RENDERCORE_API bool MobileForwardEnableClusteredReflections(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:580
RENDERCORE_API bool IsUsingBasePassVelocity(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1576
RENDERCORE_API bool NaniteAssembliesSupported()
Definition RenderUtils.cpp:1352
RENDERCORE_API bool UseSplineMeshSceneResources(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1826
RENDERCORE_API uint32 GetPlatformShadingModelsMask(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:532
RENDERCORE_API bool IsUsingGBuffers(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1564
RENDERCORE_API EPixelFormatChannelFlags GetPixelFormatValidChannels(EPixelFormat InPixelFormat)
Definition RenderUtils.cpp:237
RENDERCORE_API bool AreNaniteFallbackMeshesEnabledForPlatform(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1421
RENDERCORE_API bool MobileRequiresSceneDepthAux(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:471
EConstructTextureFlags
Definition RenderUtils.h:125
@ CTF_ForceOneBitAlpha
Definition RenderUtils.h:135
@ CTF_SkipPostEdit
Definition RenderUtils.h:141
@ CTF_ForceOpaque
Definition RenderUtils.h:139
@ CTF_Default
Definition RenderUtils.h:144
@ CTF_AllowMips
Definition RenderUtils.h:133
@ CTF_SRGB
Definition RenderUtils.h:131
@ CTF_DeferCompression
Definition RenderUtils.h:129
@ CTF_RemapAlphaAsMasked
Definition RenderUtils.h:137
@ CTF_Compress
Definition RenderUtils.h:127
RENDERCORE_API SIZE_T CalcTextureSize(uint32 SizeX, uint32 SizeY, EPixelFormat Format, uint32 MipCount)
Definition RenderUtils.cpp:191
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector2()
Definition RenderUtils.cpp:456
RENDERCORE_API bool SupportsTextureCubeArray(ERHIFeatureLevel::Type FeatureLevel)
Definition RenderUtils.cpp:491
RENDERCORE_API FBufferRHIRef & GetUnitCubeAABBVertexBuffer()
RENDERCORE_API bool MaskedInEarlyPass(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:499
RENDERCORE_API bool IsWaterSeparateMainDirLightEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1609
float EV100ToLog2(float LuminanceMax, float EV100)
Definition RenderUtils.h:710
RENDERCORE_API bool Allow128BitBasePassPSCompilation(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1710
RENDERCORE_API bool IsUsingDistanceFields(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1596
RENDERCORE_API bool SupportsTSR(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:684
RENDERCORE_API bool DoesPlatformSupportNanite(EShaderPlatform Platform, bool bCheckForProjectSetting=true)
Definition RenderUtils.cpp:1269
RENDERCORE_API SIZE_T CalcTextureMipMapSize3D(uint32 TextureSizeX, uint32 TextureSizeY, uint32 TextureSizeZ, EPixelFormat Format, uint32 MipIndex)
Definition RenderUtils.cpp:170
RENDERCORE_API bool MobileUsesFullDepthPrepass(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:629
RENDERCORE_API bool UseShaderPipelines(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1228
RENDERCORE_API bool PlatformRequires128bitRT(EPixelFormat PixelFormat)
Definition RenderUtils.cpp:1721
RENDERCORE_API bool DoesProjectSupportLumenRayTracedTranslucentRefraction()
Definition RenderUtils.cpp:2392
RENDERCORE_API bool DoesPlatformSupportNonNaniteVirtualShadowMaps(EShaderPlatform ShaderPlatform)
Definition RenderUtils.cpp:1443
RENDERCORE_API FBufferRHIRef & GetUnitCubeVertexBuffer()
Definition RenderUtils.cpp:1132
RENDERCORE_API bool IsMobileCapsuleShadowsEnabled(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:568
RENDERCORE_API bool MobileBasePassAlwaysUsesCSM(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:615
RENDERCORE_API FBufferRHIRef & GetUnitCubeIndexBuffer()
Definition RenderUtils.cpp:1137
RENDERCORE_API SIZE_T CalcTextureSize3D(uint32 SizeX, uint32 SizeY, uint32 SizeZ, EPixelFormat Format, uint32 MipCount)
Definition RenderUtils.cpp:175
RENDERCORE_API bool MobileUsesShadowMaskTexture(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:586
RENDERCORE_API bool NaniteSkinnedMeshesSupported()
Definition RenderUtils.cpp:1345
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Type
Definition RHIFeatureLevel.h:20
Definition RenderUtils.cpp:2080
bool IsSpecularProfileEnabled()
Definition RenderUtils.cpp:2263
bool IsSubstrateEnabled()
Definition RenderUtils.cpp:2081
uint32 GetClosurePerPixel(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2124
bool IsGlintEnabled()
Definition RenderUtils.cpp:2231
bool AreLightingPassesTiled()
Definition RenderUtils.cpp:2339
bool IsOpaqueRoughRefractionEnabled(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2309
uint32 GetShadingQuality()
Definition RenderUtils.cpp:2285
uint32 GetBytePerPixel(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2100
uint32 GetNormalQuality()
Definition RenderUtils.cpp:2177
bool IsHiddenMaterialAssetConversionEnabled()
Definition RenderUtils.cpp:2331
float GlintLevelBias()
Definition RenderUtils.cpp:2252
bool IsStochasticLightingEnabled(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2095
bool IsDBufferPassEnabled(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2296
bool IsMaterialLayeringSupportEnabled()
Definition RenderUtils.cpp:2326
bool IsRoughDiffuseEnabled()
Definition RenderUtils.cpp:2219
uint32 GetSheenQuality()
Definition RenderUtils.cpp:2274
uint32 GlintLUTIndex()
Definition RenderUtils.cpp:2247
bool IsSubstrateBlendableGBufferEnabled(EShaderPlatform InPlatform)
Definition RenderUtils.cpp:2086
bool IsAdvancedVisualizationEnabled()
Definition RenderUtils.cpp:2316
float GlintLevelMin()
Definition RenderUtils.cpp:2257
uint32 GetRayTracingMaterialPayloadSizeInBytes(bool bFullySimplifiedMaterial)
Definition RenderUtils.cpp:2183
Definition Color.h:486
static float Log2(float Value)
Definition UnrealMathUtility.h:722
Definition RenderUtils.h:69
VectorRegister GetVectorRegister() const
Definition RenderUtils.cpp:119
int32 Y
Definition RenderUtils.h:80
friend FArchive & operator<<(FArchive &Ar, FPackedPosition &N)
Definition RenderUtils.cpp:156
FPackedPosition & operator=(FVector3d Other)
Definition RenderUtils.h:105
FPackedPosition(const FVector3f &Other)
Definition RenderUtils.h:90
FPackedPosition & operator=(FVector3f Other)
Definition RenderUtils.h:100
FPackedPosition()
Definition RenderUtils.h:89
FPackedPosition(const FVector3d &Other)
Definition RenderUtils.h:94
struct FPackedPosition::@1734::@1736 Vector
int32 X
Definition RenderUtils.h:81
uint32 Packed
Definition RenderUtils.h:85
int32 Z
Definition RenderUtils.h:79
static bool MobileDeferredShading(EShaderPlatform Platform)
Definition ReadOnlyCVARCache.h:127
static int32 MobileForwardLocalLights(EShaderPlatform Platform)
Definition ReadOnlyCVARCache.h:105
static bool AllowStaticLighting()
Definition ReadOnlyCVARCache.h:17
static int32 MobileForwardParticleLights(EShaderPlatform Platform)
Definition ReadOnlyCVARCache.h:116
static bool MobileSupportsGPUScene()
Definition ReadOnlyCVARCache.h:66
static bool MobileHDR()
Definition ReadOnlyCVARCache.h:56
Definition AndroidStaticFeatureLevel.inl:12
Definition AndroidStaticShaderPlatform.inl:18
Definition RendererInterface.h:494
Definition IntPoint.h:25
Definition UnrealMathFPU.h:42