用于Maya的Verge3D：阴影 - Soft8Soft
Description: 学习如何在Verge3D for Maya中设置漂亮的阴影。

# 阴影 / Maya

这里描述了在 Verge3D 中为 Maya 设置漂亮实时阴影的设置和最佳实践。

- 准备Maya视图设置
- 阴影过滤类型
  - Basic
  - Bilinear
  - PCF
  - PCF (Bilinear)
  - PCF (Poisson Disk)
  - ESM
  - 选择哪种过滤类型？
- 全局设置
- 每个灯光的设置
- 每个对象的设置
- 故障排除

Verge3D支持 Directional、Point、Spot 和 Area 灯光的阴影。

#

## 准备Maya视图设置

建议按照本节所述设置Maya的视图，让配置阴影更加容易。

启用以下视窗选项。

- Lighting → Use All Lights
- Lighting → Shadows

请确保场景中至少有一个灯光。

#

## 阴影过滤类型

使用不同的阴影图过滤算法，会在Verge3D场景生成明显差异的阴影。位于 Verge3D Export Settings 面板上的 Shadow Filtering 属性是用来指定该算法的。

#

### Basic

禁用过滤，按原样渲染阴影贴图。这是渲染阴影的最快的方法。

#

### Bilinear

使用双线性滤波平滑相邻阴影贴图像素。

#

### PCF

Percentage Closer Filtering，代表 "百分比近距离过滤"。使用多个阴影贴图查询以实现平滑的阴影渲染。质量和性能一般。

#

### PCF (Bilinear)

与PCF类似，但对每个阴影贴图查询使用双线性插值。在牺牲更多计算能力的情况下提供平滑的阴影。

#

### PCF (Poisson Disk)

使用伪随机 泊松碟 采样来消除PCF阴影的像素化。这被作为默认设置，因为它最符合您在3D编辑器视口中看到的效果。其性能与PCF (Bilinear)算法相当或更好。

#

### ESM

Exponential Shadow Maps，代表指数阴影贴图。 阴影是最平滑的，但有可能出现漏光。 在灯光上使用 ESM Bias 设置来消除漏光伪影。 其性能与PCF (Bilinear)算法相当。 ESM阴影的设置可能特别棘手，因此请参见 故障排除 章节中的ESM相关问题。

#

### 选择哪种过滤类型？

建议首先尝试默认的 泊松碟PCF 阴影，因为它们具有良好的质量和性能。如果您需要质量较低但速度更快的阴影，请尝试 基础 或 Bilinear 。 如果您需要更好的质量、更柔和的阴影， 可以尝试 ESM ， 但缺点是它们对于特定场景的设置（伪影方面）可能很棘手。

#

## 全局设置

阴影的全局设置位于Verge3D Export Settings菜单中。

Shadow Filtering
  阴影贴图过滤算法。见 上文。
ESM Distance Scale
  ESM阴影的缩放系数。 由于ESM过滤算法使用的是绝对距离值， 如果您正在处理的场景比默认的立方体大得多， 那么就减少这个比例值，如果您的场景小得多，就增加这个比例。 默认为2.5。 只对 ESM 阴影作用。

#

## 每个灯光的设置

可以使用Maya原生面板为每个单独的灯光启用或禁用阴影。支持的阴影设置以绿色突出显示。

Use Depth Map Shadows
  必须启用，阴影才会出现在Verge3D中。
Resolution
  控制阴影纹理的大小（在速度和质量之间进行平衡）。
Filter Size
  控制阴影的模糊度比例。
Bias
  可以调节以消除自阴影伪影及"peter-panning"效果。 注：Peter Panning这个词的名字来源于童话人物彼得潘（他的影子与身体分离并且可以飞翔），此伪影使对象看起来像是悬浮在地表。
ESM Bias
  调整此偏移以减少ESM的 漏光 伪影。 只对 ESM 阴影作用。

#

## 每个对象的设置

您也可以在每个对象的基础上启用和禁用接收和投射阴影。

Casts Shadows
  启用/禁用此对象的阴影投射。
Receive Shadows
  启用/禁用此对象的阴影接收。

另请看Autodesk的官方文档，了解在Maya中使用阴影的更多信息和最佳实践方法。

#

## 故障排除

### Verge3D中的阴影和Maya视口中的阴影看起来不同

- Verge3D不使用与3D软件相同的阴影渲染技术， 主要是出于性能的考虑。 这可能包括光线分层， 各种后期处理效果和非实时渲染方法。 这是为什么会有差异，以及为何阴影看起来和视口中的不完全一样。
- Verge3D的目标是类似于Maya视口。 为了使配置阴影更容易， 请遵循这里的说明： 准备Maya视图设置。

### 阴影看起来太像素化了

- 使用较高 Resolution 值。
- 尽量用柔和的半影来掩盖低分辨率。 使用 PCF（泊松） 和 ESM 这样的阴影过滤技术以及适当调整的 Filter Size 可以使像素化不那么突出。

### 阴影在Maya视口中是可见的，但在Verge3D中却看不到。

- 要在Verge3D中启用阴影， Use Depth Map Shadows 选项必须开启。
- 非常高的 Bias 值，可能可能会部分或完全删除阴影。如果情况如此，请尝试降低这些数值。

### 阴影有伪影

- 这种伪影被称为"shadow acne"或"self-shadow artifacts"。可通过增加 Bias 值来消除。

### 阴影没有半影区或半影区很小

- 在 Basic 和 Bilinear 类型中没有半影控制。请选择其他的 shadow filtering types 。
- 增加 Filter Size。

### ESM阴影看起来变淡了

- 增加 ESM Bias 值。
- 增加 ESM Distance Scale 值。

### ESM的阴影看起来太尖锐或没有半影

- 增加 Filter Size。
- 减少 ESM Bias 值。
- 减少 ESM Distance Scale 值。
- 这种伪影会出现在接收对象的边缘。 这是ESM的缺点之一。解决方案时是尽量避免这种情况。
- 如果一个接受阴影的物体本身不投射阴影（例如，在 Casts Shadows 中被禁用），那么无论 Filter Size 是多少，阴影都没有半影。 解决方案是在接收对象上启用阴影投射， 或者使用一个额外的阴影投射对象作为底层来修复半影区。

### ESM阴影有伪影

- 减少 ESM Bias 值。
- 减少 ESM Distance Scale 值。

## 遇到问题？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。