Files
UnrealEngine/Engine/Shaders/Private/ScreenSpaceReflectionTileCommons.ush
2025-05-18 13:04:45 +08:00

24 lines
843 B
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
/*================================================================================================
ScreenSpaceReflectionTileCommons.ush:
=================================================================================================*/
#pragma once
#ifndef SSR_TILE_SIZE_XY
#define SSR_TILE_SIZE_XY (8U)
#endif
//#if SSR_TILE_SIZE_XY != 8U
// #error SSR_TILE_SIZE_XY is currently designed to be 8U.
//#endif
bool IsSSRTileUsed(uint2 PixelPos, uint2 InSSRTiledViewRes, StructuredBuffer<uint> InSSRTileMaskBuffer)
{
uint2 SSRTileIndex = PixelPos / SSR_TILE_SIZE_XY;
uint MaskLinearIndex = InSSRTiledViewRes.x * SSRTileIndex.y + SSRTileIndex.x;
uint Mask = 1u << (MaskLinearIndex % 32u);
bool bTileUsed = (InSSRTileMaskBuffer[MaskLinearIndex / 32u] & Mask) != 0;
return bTileUsed;
}