阴影疑难解答

本页列出了一般阴影问题的解决方案。

完全没看到阴影!

  • 阴影是 Unity 专业版的独有功能,因而非 Unity 专业版是不带阴影的。当然,一些简单的阴影方法还是可能的,如使用投影仪 (Projector)。
  • 阴影还要求有一些图形硬件支持。请参阅阴影页面了解详细信息。
  • 检查阴影是否在质量设置 (Quality Settings) 中完全禁用。

某些对象不投射或接收阴影

首先,渲染程序 (Renderer) 自身具有阴影属性来接收阴影 (Receive Shadows);并投射阴影 (Cast Shadows) 到其他对象(两项都是默认开启)。

其次,只有不透明的对象投射和接收阴影;也就是说如果使用内置的透明 (Transparent) 或粒子 (Particle ) 着色器,就不会有阴影。在大部分情况下,使用透明抠图 (Transparent Cutout) 着色器(用于栅栏、植物等对象)是可行的。如果使用自定义编写的着色器 (Shaders),就必须是像素光照并使用几何渲染队列 (Geometry render queue)。使用 顶点光照 (VertexLit) 着色器的对象不接收阴影(但可以投射阴影)。

最后,在正向渲染路径 (Forward rendering path) 中,只有最亮的方向灯可投射阴影。如果想要有许多阴影投射灯,须使用延迟光照 (Deferred Lighting) 渲染路径。