mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-04 23:27:30 +00:00
2 lines
113 KiB
JavaScript
2 lines
113 KiB
JavaScript
![]() |
const VideoShead3D_FS = '\x0a\x20\x20\x20\x20uniform\x20float\x20czzj;\x0a\x20\x20\x20\x20uniform\x20float\x20dis;\x0a\x20\x20\x20\x20uniform\x20float\x20spzj;\x0a\x20\x20\x20\x20uniform\x20vec3\x20visibleColor;\x0a\x20\x20\x20\x20uniform\x20vec3\x20disVisibleColor;\x0a\x20\x20\x20\x20uniform\x20float\x20mixNum;\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20videoTexture;\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20colorTexture;\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20stcshadow;\x20\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20depthTexture;\x0a\x20\x20\x20\x20uniform\x20mat4\x20_shadowMap_matrix;\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20shadowMap_lightPositionEC;\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20shadowMap_lightDirectionEC;\x0a\x20\x20\x20\x20uniform\x20vec3\x20shadowMap_lightUp;\x0a\x20\x20\x20\x20uniform\x20vec3\x20shadowMap_lightDir;\x0a\x20\x20\x20\x20uniform\x20vec3\x20shadowMap_lightRight;\x0a\x20\x20\x20\x20uniform\x20vec4\x20shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness;\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20shadowMap_texelSizeDepthBiasAndNormalShadingSmooth;\x20\x0a\x20\x20\x20\x20varying\x20vec2\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec4\x20toEye(in\x20vec2\x20uv,\x20in\x20float\x20depth){\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20xy\x20=\x20vec2((uv.x\x20*\x202.0\x20-\x201.0),(uv.y\x20*\x202.0\x20-\x201.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20posInCamera\x20=czm_inverseProjection\x20*\x20vec4(xy,\x20depth,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20posInCamera\x20=posInCamera\x20/\x20posInCamera.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20posInCamera;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20getDepth(in\x20vec4\x20depth){\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20z_window\x20=\x20czm_unpackDepth(depth);\x0a\x20\x20\x20\x20\x20\x20\x20\x20z_window\x20=\x20czm_reverseLogDepth(z_window);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20n_range\x20=\x20czm_depthRange.near;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20f_range\x20=\x20czm_depthRange.far;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20(2.0\x20*\x20z_window\x20-\x20n_range\x20-\x20f_range)\x20/\x20(f_range\x20-\x20n_range);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20_czm_sampleShadowMap(sampler2D\x20shadowMap,\x20vec2\x20uv){\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20texture2D(shadowMap,\x20uv).r;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20_czm_shadowDepthCompare(sampler2D\x20shadowMap,\x20vec2\x20uv,\x20float\x20depth){\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20step(depth,\x20_czm_sampleShadowMap(shadowMap,\x20uv));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20_czm_shadowVisibility(sampler2D\x20shadowMap,\x20czm_shadowParameters\x20shadowParameters){\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20depthBias\x20=\x20shadowParameters.depthBias;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20depth\x20=\x20shadowParameters.depth;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDotL\x20=\x20shadowParameters.nDotL;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20normalShadingSmooth\x20=\x20shadowParameters.normalShadingSmooth;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20darkness\x20=\x20shadowParameters.darkness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20uv\x20=\x20shadowParameters.texCoords;\x0a\x20\x20\x20\x20\x20\x20\x20\x20depth\x20-=\x20depthBias;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20texelStepSize\x20=\x20shadowParameters.texelStepSize;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20radius\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dx0\x20=\x20-texelStepSize.x\x20*\x20radius;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dy0\x20=\x20-texelStepSize.y\x20*\x20radius;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dx1\x20=\x20texelStepSize.x\x20*\x20radius;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dy1\x20=\x20texelStepSize.y\x20*\x20radius;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20visibility\x20=\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20_czm_shadowDepthCompare(shadowMap,\x20uv,\x20depth)\x0a\x20\x20\x20\x20\x20\x20\x20\x20+_czm_shadowDepthCompare(sh
|