2021-09-09 20:42:29 -04:00

29 lines
1.1 KiB
HLSL

#ifndef UNITY_SPECULAR_OCCLUSION_DEF_INCLUDED
#define UNITY_SPECULAR_OCCLUSION_DEF_INCLUDED
// Specular occlusion methods:
#define SPECULAR_OCCLUSION_DISABLED -1
#define SPECULAR_OCCLUSION_FROM_AO 0
#define SPECULAR_OCCLUSION_CONECONE 1
#define SPECULAR_OCCLUSION_SPTD 2
#define SPECULAR_OCCLUSION_CUSTOM_EXT_INPUT 3
// Choice of formulas to infer bent visibility: see SPTDistribution.hlsl : GetBentVisibility()
#define BENT_VISIBILITY_FROM_AO_UNIFORM 0
#define BENT_VISIBILITY_FROM_AO_COS 1
// see SPTDistribution.hlsl:ApplyBentSpecularOcclusionFixups() if other methods are added
#define BENT_VISIBILITY_FROM_AO_COS_BENT_CORRECTION 2
// See StackLit.hlsl: direction to use for bent visibility cone
#define BENT_VISIBILITY_DIR_GEOM_NORMAL 0
#define BENT_VISIBILITY_DIR_BENT_NORMAL 1
#define BENT_VISIBILITY_DIR_SHADING_NORMAL 2
// Specular occlusion fixup methods to handle noisy bent normal maps
// (flags)
#define BENT_VISIBILITY_FIXUP_FLAGS_NONE 0
#define BENT_VISIBILITY_FIXUP_FLAGS_BOOST_BSDF_ROUGHNESS (1<<0)
#define BENT_VISIBILITY_FIXUP_FLAGS_TILT_BENTNORMAL_TO_GEOM (1<<1)
#endif // #define UNITY_SPECULAR_OCCLUSION_DEF_INCLUDED