// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. precision highp float; in vec3 a_position; #include #pragma builtin(global) uniform CC_SHADOW_MAP { mat4 cc_shadow_map_lightViewProjMatrix; vec4 cc_shadow_map_info; // [minDepth, maxDepth, depthScale, darkness] float cc_shadow_map_bias; }; out float v_depth; #include void main () { vec4 position = vec4(a_position, 1); SKIN_VERTEX(position); gl_Position = cc_shadow_map_lightViewProjMatrix * cc_matWorld * position; // compute v_depth according to active camera's minDepth and maxDepth. v_depth = ((gl_Position.z + cc_shadow_map_info.x) / (cc_shadow_map_info.x + cc_shadow_map_info.y)) + cc_shadow_map_bias; }