| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- // Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd.
- // common module
- // constant value
- #define QUATER_PI 0.78539816340
- #define HALF_PI 1.57079632679
- #define PI 3.14159265359
- #define PI2 6.28318530718
- #define PI4 12.5663706144
- #define INV_QUATER_PI 1.27323954474
- #define INV_HALF_PI 0.63661977237
- #define INV_PI 0.31830988618
- #define INV_PI2 0.15915494309
- #define INV_PI4 0.07957747155
- #define EPSILON 1e-6
- #define EPSILON_LOWP 1e-4
- #define LOG2 1.442695
- #define EXP_VALUE 2.71828183
- #define FP_MAX 65504.0
- #define FP_SCALE 0.0009765625
- #define FP_SCALE_INV 1024.0
- #define GRAY_VECTOR vec3(0.299, 0.587, 0.114)
- // common functions
- #pragma define equalf(data1, data2) (abs(float(data1) - float(data2)) < EPSILON)
- #pragma define equalf_lowp(data1, data2) (abs(float(data1) - float(data2)) < EPSILON_LOWP)
- #pragma define equalf_epsilon(data1, data2, epsilonValue) (abs(float(data1) - float(data2)) < epsilonValue)
- #pragma define clip(value) if(value < 0.0) discard;
- #pragma define lerp(value1, value2, value2Multiplier) mix(value1, value2, value2Multiplier)
- float saturate(float value) { return clamp(value, 0.0, 1.0); }
- vec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }
- vec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }
- vec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }
- // runtime constants
- #pragma define-meta CC_DEVICE_SUPPORT_FLOAT_TEXTURE default(1)
- #pragma define-meta CC_DEVICE_MAX_FRAGMENT_UNIFORM_VECTORS default(1024)
- #pragma define-meta CC_DEVICE_MAX_VERTEX_UNIFORM_VECTORS default(1024)
- #pragma define-meta CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS default(128)
- #pragma define-meta CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS default(128)
- #pragma define-meta CC_DEVICE_CAN_BENEFIT_FROM_INPUT_ATTACHMENT default(0)
- #pragma define-meta CC_PLATFORM_ANDROID_AND_WEBGL default(0)
- #pragma define-meta CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES default(0)
- // When sampling RTs, Y-flip is needed if the screen space sign Y is positive (pointing upwards)
- #pragma define CC_HANDLE_RT_SAMPLE_FLIP(uv) uv = cc_cameraPos.w > 1.0 ? vec2(uv.x, 1.0 - uv.y) : uv
- #pragma define CC_HANDLE_GET_CLIP_FLIP(uv) uv = cc_cameraPos.w == 0.0 ? vec2(uv.x, -uv.y) : uv
- #pragma define CC_HANDLE_CLIP_FLIP_FROM_VAL(uv, flip) uv = flip == 0.0 ? vec2(uv.x, -uv.y) : uv
- // CC_USE_LIGHTMAP Values
- #define LIGHT_MAP_TYPE_DISABLED 0
- #define LIGHT_MAP_TYPE_ALL_IN_ONE 1
- #define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2
- // CC_USE_REFLECTION_PROBE Values
- #define REFLECTION_PROBE_TYPE_NONE 0
- #define REFLECTION_PROBE_TYPE_CUBE 1
- #define REFLECTION_PROBE_TYPE_PLANAR 2
- #define REFLECTION_PROBE_TYPE_BLEND 3
- #define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4
- #pragma define IS_REFLECTION_PROBE_USE_RGBE(mipcount) mipcount > 1000.0
- #pragma define RESTORE_REFLECTION_PROBE_MIP_COUNT(mipcount) if (mipcount > 1000.0) mipcount -= 1000.0
- // Light Type
- #define LIGHT_TYPE_DIRECTIONAL 0.0
- #define LIGHT_TYPE_SPHERE 1.0
- #define LIGHT_TYPE_SPOT 2.0
- #define LIGHT_TYPE_POINT 3.0
- #define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0
- #define IS_DIRECTIONAL_LIGHT(light_type) equalf_lowp(light_type, LIGHT_TYPE_DIRECTIONAL)
- #define IS_SPHERE_LIGHT(light_type) equalf_lowp(light_type, LIGHT_TYPE_SPHERE)
- #define IS_SPOT_LIGHT(light_type) equalf_lowp(light_type, LIGHT_TYPE_SPOT)
- #define IS_POINT_LIGHT(light_type) equalf_lowp(light_type, LIGHT_TYPE_POINT)
- #define IS_RANGED_DIRECTIONAL_LIGHT(light_type) equalf_lowp(light_type, LIGHT_TYPE_RANGED_DIRECTIONAL)
- // CC_TONE_MAPPING_TYPE Values
- #define TONE_MAPPING_ACES 0
- #define TONE_MAPPING_LINEAR 1
- // Material
- #define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0
- // CC_USE_DEBUG_VIEW Values
- #ifndef CC_SURFACES_DEBUG_VIEW_SINGLE
- #define CC_SURFACES_DEBUG_VIEW_SINGLE 1
- #endif
- #ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC
- #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2
- #endif
|