稳定的级联阴影贴图,可用于方向光的阴影。
Name | Type | Description | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
包含下列属性的对象
|
Throws:
-
DeveloperError : 只有支持深度纹理时才可用。
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 时对所有级联统一缩放。
控制整个级联中深度偏差缩放,此设置可缓和相邻级联在过渡区域的阴影差异。
值为 1.0 时基于级联的大小对阴影偏差进行缩放。
值为 0.0 时对所有级联统一缩放。
-
Default Value:
1.0
相邻级联阴影之间的过渡区域的比例
相邻级联之间的过渡区域的像素会进行混合,以避免它们的连接处出现硬过渡。
值为 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:高
值越大,质量越高,相对地,性能也会越差。可用的值有:
0: 关闭阴影
1: 低
2: 中
3:高
-
Default Value:
3
单个级联阴影贴图的宽高
较大的值可以提高阴影准确性,但需要更大的性能。注意,如果请求的尺寸超出限制,则请求无效。
较大的值可以提高阴影准确性,但需要更大的性能。注意,如果请求的尺寸超出限制,则请求无效。
-
Default Value:
2048
Example:
stableCascadeShadowMap.numberOfCascades = 4;
stableCascadeShadowMap.size = 8192; // 很大概率会超出限制,此次设置无效,保留原来的值。
阴影偏差
用于控制自阴影的精准度。为 0 时,阴影将从其投射对象的表面开始,但存在很多因自阴影导致的瑕疵。
为 1 时,阴影将从远离投射对象的地方开始,不存在因自阴影导致的瑕疵,但对象可能看似浮空。
值在 0.5 左右则是一个较好的折中,这也会影响阴影的柔和过渡。
用于控制自阴影的精准度。为 0 时,阴影将从其投射对象的表面开始,但存在很多因自阴影导致的瑕疵。
为 1 时,阴影将从远离投射对象的地方开始,不存在因自阴影导致的瑕疵,但对象可能看似浮空。
值在 0.5 左右则是一个较好的折中,这也会影响阴影的柔和过渡。
-
Default Value:
0.5
阴影斜面偏差
和阴影偏差类似,但是是基于面的坡度来增加变偏差量。
和阴影偏差类似,但是是基于面的坡度来增加变偏差量。
-
Default Value:
0.5