2020-10-19 08:23:06 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
/*================================================================================================
|
|
|
|
|
StrataDefinitions.ush: 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 strata dependent shaders (use https://www.random.org/cgi-bin/randbyte?nbytes=4&format=h)
|
2022-04-19 07:13:36 -04:00
|
|
|
#define STRATA_SHADER_VERSION 0x2a533622
|
2020-10-19 08:23:06 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-09 04:08:35 -04:00
|
|
|
#define STRATA_MAX_BSDF_COUNT 15
|
2022-02-15 03:09:30 -05:00
|
|
|
#define STRATA_MAX_OPERATOR_COUNT 15
|
2020-11-18 04:00:19 -04:00
|
|
|
|
2021-05-17 16:41:40 -04:00
|
|
|
// It this is changed, STATE_BIT_COUNT_SHAREDLOCALBASESID and HEADER_BIT_COUNT_SHAREDLOCALBASES_COUNT also needs to be updated
|
|
|
|
|
#define STRATA_MAX_SHAREDLOCALBASES_REGISTERS 4
|
2020-10-19 08:23:06 -04:00
|
|
|
|
2021-05-17 16:41:40 -04:00
|
|
|
#define STRATA_PACKED_SHAREDLOCALBASIS_STRIDE_BYTES 4
|
2020-10-19 08:23:06 -04:00
|
|
|
|
|
|
|
|
|
2021-01-13 07:11:07 -04:00
|
|
|
#define STRATA_BSDF_TYPE_SLAB 0
|
2021-04-21 06:47:25 -04:00
|
|
|
#define STRATA_BSDF_TYPE_VOLUMETRICFOGCLOUD 1
|
|
|
|
|
#define STRATA_BSDF_TYPE_UNLIT 2
|
|
|
|
|
#define STRATA_BSDF_TYPE_HAIR 3
|
|
|
|
|
#define STRATA_BSDF_TYPE_SINGLELAYERWATER 4
|
2021-11-22 10:26:42 -05:00
|
|
|
// When more than 5 BSDF must exists, please update STATE_BIT_COUNT_BSDF and FStrataClassification.ShadingModels packing in Strata.ush
|
2020-10-19 08:23:06 -04:00
|
|
|
|
2022-01-04 06:43:29 -05:00
|
|
|
// The size of strata material classification tiles on screen
|
|
|
|
|
#define STRATA_TILE_SIZE 8
|
2022-03-31 13:05:44 -04:00
|
|
|
#define STRATA_TILE_SIZE_DIV_AS_SHIFT 3
|
2021-02-22 12:41:28 -04:00
|
|
|
|
|
|
|
|
// The default thickness of a layer is considered to be 0.01 centimeter = 0.1 millimeter
|
2021-04-27 09:42:01 -04:00
|
|
|
#define STRATA_LAYER_DEFAULT_THICKNESS_CM 0.01f
|
|
|
|
|
|
|
|
|
|
// The thin lighting model is used when the thickness becomes strictly lower than 0.1 millimeter
|
|
|
|
|
#define STRATA_LAYER_ISTHIN_THICKNESS_THRESHOLD_CM 0.01f
|
|
|
|
|
|
2022-01-04 12:18:49 -05:00
|
|
|
#define STRATA_BASE_PASS_MRT_OUTPUT_COUNT 2
|
2022-02-15 03:09:30 -05:00
|
|
|
|
|
|
|
|
#define STRATA_OPERATOR_WEIGHT 0
|
|
|
|
|
#define STRATA_OPERATOR_VERTICAL 1
|
|
|
|
|
#define STRATA_OPERATOR_HORIZONTAL 2
|
|
|
|
|
#define STRATA_OPERATOR_ADD 3
|
|
|
|
|
#define STRATA_OPERATOR_BSDF 4
|
|
|
|
|
#define STRATA_OPERATOR_BSDF_LEGACY 5
|
2022-03-14 16:46:59 -04:00
|
|
|
#define STRATA_OPERATOR_THINFILM 6
|
2022-03-15 09:55:16 -04:00
|
|
|
|
|
|
|
|
// This must map directly to EStrataTileMaterialType
|
2022-03-16 05:45:43 -04:00
|
|
|
#define STRATA_TILE_TYPE_SIMPLE 0
|
|
|
|
|
#define STRATA_TILE_TYPE_SINGLE 1
|
|
|
|
|
#define STRATA_TILE_TYPE_COMPLEX 2
|
|
|
|
|
#define STRATA_TILE_TYPE_ROUGH_REFRACT 3
|
|
|
|
|
#define STRATA_TILE_TYPE_SSS_WITHOUT_ROUGH_REFRACT 4
|
|
|
|
|
#define STRATA_TILE_TYPE_COUNT 5
|
2022-03-15 09:55:16 -04:00
|
|
|
|
|
|
|
|
// sizeof(FRHIDrawIndirectParameters) = 4 uints = 16 bytes
|
|
|
|
|
#define GetStrataTileTypeDrawIndirectArgOffset_Byte(x) (x * 16)
|
|
|
|
|
#define GetStrataTileTypeDrawIndirectArgOffset_DWord(x) (x * 4)
|
2022-03-18 13:43:33 -04:00
|
|
|
|
|
|
|
|
// sizeof(FRHIDispatchIndirectParameters) = 3 uints = 12 bytes
|
|
|
|
|
#define GetStrataTileTypeDispatchIndirectArgOffset_Byte(x) (x * 12)
|
|
|
|
|
#define GetStrataTileTypeDispatchIndirectArgOffset_DWord(x) (x * 3)
|