为了计算阴影贴图的分辨率,Unity
确定灯光可以照亮的屏幕视图区域。对于方向光,整个屏幕都可以被照亮。对于聚光灯和点光源,该区域是灯光范围形状在屏幕上的投影:点光源为球体,聚光灯为锥体。投影形状在屏幕上具有宽度和高度(以像素为单位);然后取这两个值中较大的那个。此值称为灯光的像素计算机图像中的最小单位。像素大小取决于屏幕分辨率。每个屏幕像素都会计算像素灯光。 更多信息
参见 词汇表大小。
执行以下计算,然后将结果限制在最大大小
灯光类型 | 公式 | 最大分辨率(以像素为单位) |
---|---|---|
方向光 | NextPowerOfTwo (像素大小 * 阴影质量倍增器 * 3.8) | 当阴影分辨率为超高质量时,或当 GPU 拥有 512MB 或更多 RAM 时为 4096 x 4096,否则为 2048 x 2048。 |
聚光灯 | NextPowerOfTwo (像素大小 * 阴影质量倍增器 * 2.0) | 如果 GPU 拥有 512MB 或更多 RAM,则为 2048 x 2048,否则为 1024 x 1024。 |
点光源 | NextPowerOfTwo (像素大小 * 阴影质量倍增器 * 1.0) | 如果 GPU 拥有 512MB 或更多 RAM,则为 1024 x 1024,否则为 512 x 512。 |
在内置渲染管线一系列将场景内容渲染到屏幕上的操作。Unity 允许您选择预制渲染管线或编写自己的渲染管线。 更多信息
参见 词汇表中,您可以通过将Light.shadowCustomResolution属性设置为大于 0 的值来设置灯光阴影贴图的分辨率。当此值大于 0 时,Unity 会对所有灯光类型执行以下计算
NextPowerOfTwo (shadowCustomResolution)
然后,它根据灯光类型和硬件限制最大分辨率,如上表所示。