You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Decals materials are evaluated using callable shaders in PathTracingKernel. - Decals are culled using a 2D grid similar to the existing light grid. - In order to correctly handle decal blending order, decals are sorted using the same logic as the rasterizer on CPU. The compute shader that builds the decal grid maintains the correct order. - Decal materials are wrapped in FRayTracingDecalMaterialShader. The instance parameters of each decal are bound using uniform buffers. #preflight 628f3fed2f2409bc1e7a6414 #rb Yuriy.ODonnell, chris.kulla, Jeremy.Moore [CL 20377336 by tiago costa in ue5-main branch]
40 lines
2.7 KiB
C
40 lines
2.7 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*================================================================================================
|
|
RayTracingDefinitions.h: used in ray tracing shaders and C++ code to define common constants
|
|
!!! Changing this file requires recompilation of the engine !!!
|
|
=================================================================================================*/
|
|
|
|
#pragma once
|
|
|
|
// Change this to force recompilation of all ray tracing shaders (use https://www.random.org/cgi-bin/randbyte?nbytes=4&format=h)
|
|
// This avoids changing the global ShaderVersion.ush and forcing recompilation of all shaders in the engine (only RT shaders will be affected)
|
|
#define RAY_TRACING_SHADER_VERSION 0x41d29fc9
|
|
|
|
#define RAY_TRACING_REGISTER_SPACE_LOCAL 0 // default register space for hit group (closest hit, any hit, intersection) shader resources
|
|
#define RAY_TRACING_REGISTER_SPACE_GLOBAL 1 // register space for ray generation and miss shaders
|
|
#define RAY_TRACING_REGISTER_SPACE_SYSTEM 2 // register space for "system" parameters (index buffer, vertex buffer, fetch parameters)
|
|
|
|
#define RAY_TRACING_MASK_OPAQUE 0x01 // Opaque and alpha tested meshes and particles (e.g. used by reflection, shadow, AO and GI tracing passes)
|
|
#define RAY_TRACING_MASK_TRANSLUCENT 0x02 // Opaque and alpha tested meshes and particles (e.g. used by translucency tracing pass)
|
|
#define RAY_TRACING_MASK_THIN_SHADOW 0x04 // Whether the thin geometry (e.g. hair) is visible for shadow rays
|
|
#define RAY_TRACING_MASK_SHADOW 0x08 // Whether the geometry is visible for shadow rays
|
|
#define RAY_TRACING_MASK_SCENE_CAPTURE 0x10 // Whether the geometry is visible when rendering scene capture views
|
|
#define RAY_TRACING_MASK_FAR_FIELD 0x20
|
|
#define RAY_TRACING_MASK_ALL 0xFF
|
|
|
|
#define RAY_TRACING_SHADER_SLOT_MATERIAL 0
|
|
#define RAY_TRACING_SHADER_SLOT_SHADOW 1
|
|
#define RAY_TRACING_NUM_SHADER_SLOTS 2
|
|
|
|
#define RAY_TRACING_MISS_SHADER_SLOT_DEFAULT 0 // Main miss shader that simply sets HitT to a "miss" value (see FMinimalPayload::SetMiss())
|
|
#define RAY_TRACING_MISS_SHADER_SLOT_LIGHTING 1 // Miss shader that may be used to evaluate light source radiance in ray traced reflections and translucency
|
|
#define RAY_TRACING_NUM_MISS_SHADER_SLOTS 2
|
|
|
|
#define RAY_TRACING_LIGHT_COUNT_MAXIMUM 256
|
|
#define RAY_TRACING_DECAL_COUNT_MAXIMUM 256
|
|
|
|
#define RAY_TRACING_MAX_ALLOWED_RECURSION_DEPTH 1 // Only allow ray tracing from RayGen shader
|
|
#define RAY_TRACING_MAX_ALLOWED_ATTRIBUTE_SIZE 8 // Sizeof 2 floats (barycentrics)
|
|
#define RAY_TRACING_MAX_ALLOWED_PAYLOAD_SIZE 64 // Our maximum allowed payload size (sizeof FPackedMaterialClosestHitPayload)
|