StableCascadeShadowMap

new Cesium.StableCascadeShadowMap(options)

稳定的级联阴影贴图,可用于方向光的阴影。
Name Type Description
options Object 包含下列属性的对象
Name Type Default Description
context Object The context
lightCamera Camera 不一定非得是 Camera 实例,只要满足包含 directionWC 属性的对象即可,用于确定方向光的方向。
enabled boolean true optional 是否开启该级联阴影贴图。
maximumDistance number 3000 optional 级联阴影贴图的覆盖距离,较小的值可以提高阴影准确性,但会缩小整个级联阴影的覆盖范围。
numberOfCascades number 4 optional 级联阴影贴图的级联个数,较大的值可以提高阴影准确性,但需要更大的性能。
size number 2048 optional 级联阴影内的每个阴影贴图的宽高,较大的值可以提高阴影准确性,但需要更大的性能。
darkness number 0.3 optional 阴影的最暗值。
Throws:
Example:
// 为太阳光使用稳定的级联阴影贴图。
const scene = viewer.scene;
scene.shadowMap = new StableCascadeShadowMap({
  context: scene.context,
  lightCamera: scene.shadowMapCamera, // Cesium 内部会更新该属性的方向为太阳方向
});

// 自定义光源方向
scene.shadowMap = new StableCascadeShadowMap({
  context: scene.context,
  lightCamera: {
    directionWC: new Cartesian3(0, 0, -1)
  },
});
Demo:

Members

阴影的级联偏差分布
控制整个级联中深度偏差缩放,此设置可缓和相邻级联在过渡区域的阴影差异。
值为 1.0 时基于级联的大小对阴影偏差进行缩放。
值为 0.0 时对所有级联统一缩放。
Default Value: 1.0
相邻级联阴影之间的过渡区域的比例
相邻级联之间的过渡区域的像素会进行混合,以避免它们的连接处出现硬过渡。
值为 0 时会消除过渡区域,导致硬过渡。
较大的值会增大过渡区域,在级联之间创建更平滑的过渡。
理想的值应该尽可能地小,且仍然能隐藏级联之间的过渡。
增大过渡区域会增加渲染开销。
Default Value: 0.1
阴影的最暗值。
Default Value: 0.3
仅用于调试。
Default Value: false
仅用于调试。
Default Value: false
是否开启该级联阴影贴图。
Default Value: true
级联阴影贴图的覆盖距离
从相机处开始测量,较小的值可以提高阴影准确性,但会缩小整个级联阴影的覆盖范围。
Default Value: 3000.0
级联阴影贴图的级联个数
较大的值可以提高阴影准确性,但需要更大的性能。注意,如果请求的尺寸超出限制,则请求无效。
Default Value: 2048
Example:
stableCascadeShadowMap.size = 2048;
stableCascadeShadowMap.numberOfCascades = 10; // 很大概率会超出限制,此次设置无效,保留原来的值。
阴影质量
值越大,质量越高,相对地,性能也会越差。可用的值有:
0: 关闭阴影
1: 低
2: 中
3:高
Default Value: 3
单个级联阴影贴图的宽高
较大的值可以提高阴影准确性,但需要更大的性能。注意,如果请求的尺寸超出限制,则请求无效。
Default Value: 2048
Example:
stableCascadeShadowMap.numberOfCascades = 4;
stableCascadeShadowMap.size = 8192; // 很大概率会超出限制,此次设置无效,保留原来的值。
阴影偏差
用于控制自阴影的精准度。为 0 时,阴影将从其投射对象的表面开始,但存在很多因自阴影导致的瑕疵。
为 1 时,阴影将从远离投射对象的地方开始,不存在因自阴影导致的瑕疵,但对象可能看似浮空。
值在 0.5 左右则是一个较好的折中,这也会影响阴影的柔和过渡。
Default Value: 0.5
阴影斜面偏差
和阴影偏差类似,但是是基于面的坡度来增加变偏差量。
Default Value: 0.5
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.