49 return (base_offset * level_relative) / (1 << 16);
199#define ShadowTileDataPacked uint
216 return (page.x << 0u) | (page.y << 2u) | (page.z << 4u);
222 page.x = (
data >> 0u) & 3u;
223 page.y = (
data >> 2u) & 3u;
225 page.z = (
data >> 4u) & 255u;
237 tile.cache_index = (
data >> 15u) & 4095u;
253 data |= (
tile.cache_index & 4095u) << 15u;
278#define ShadowSamplingTilePacked uint
309 tile.lod_offset.x = 0;
317 if (!
tile.is_valid) {
324 tile.lod_offset.x = 1;
#define BLI_STATIC_ASSERT_ALIGN(st, align)
BMesh const char void * data
#define SHADOW_PAGE_PER_ROW
#define SHADOW_TILEMAP_MAX_CLIPMAP_LOD
#define SHADOW_PAGE_PER_COL
#define ShadowTileDataPacked
#define ShadowSamplingTilePacked
const ccl_global KernelWorkTile * tile
BLI_STATIC_ASSERT(MBC_BATCH_LEN< 64, "Number of batches exceeded the limit of bit fields")
static int2 shadow_cascade_grid_offset(int2 base_offset, int level_relative)
static ShadowTileDataPacked shadow_tile_pack(ShadowTileData tile)
static ShadowSamplingTilePacked shadow_sampling_tile_pack(ShadowSamplingTile tile)
static ShadowTileData shadow_tile_unpack(ShadowTileDataPacked data)
static uint2 shadow_lod_offset_unpack(uint data)
static uint3 shadow_page_unpack(uint data)
static uint shadow_page_pack(uint3 page)
static uint shadow_lod_offset_pack(uint2 ofs)
static ShadowSamplingTile shadow_sampling_tile_create(ShadowTileData tile_data, uint lod)
@ SHADOW_PROJECTION_CLIPMAP
@ SHADOW_PROJECTION_CASCADE
@ SHADOW_PROJECTION_CUBEFACE
static ShadowSamplingTile shadow_sampling_tile_unpack(ShadowSamplingTilePacked data)
VecBase< uint32_t, 2 > uint2
VecBase< uint32_t, 3 > uint3
MatBase< float, 4, 4 > float4x4
VecBase< float, 4 > float4
VecBase< int32_t, 2 > int2
VecBase< float, 2 > float2
uint2 shadow_set_membership
Transform object_to_world
eShadowProjectionType projection_type
uint2 shadow_set_membership