局限
Eevee的目标是成为交互式渲染引擎。在不影响性能的前提下,一些功能还没有加入或不可能整合进Eevee的架构中。
以下是在使用Eevee时你可以预见到的功能限制详尽列表。
相机
目前只支持透视和正交。
灯光
Eevee场景中仅支持最多128个激活灯光。
只能同时支持8个阴影太阳灯。
到目前为止, 灯光只能有一种颜色, 不支持灯光节点组。
光照探头
Eevee仅支持至多128个活动立方体反射贴图。
Eevee仅支持至多64个活动的体积辐射。
在相机视野内,Eevee仅支持最多16个活动的反射平面。
间接光照明
体积不接收体积辐射光但接收世界环境漫射照明。
Eevee既不支持 "镜面到漫反射" 的光反弹,也不支持 "镜面到镜面" 的光反弹。
在烘焙过程中,所有镜面照明都会关闭。
阴影
Eevee场景中仅支持最多128个激活灯光。
只能同时支持8个阴影太阳灯。
体积
仅支持单散射。
体积测量只在相机的 "射线 "中呈现。它们不会出现在反射/折射和探测中。
体积不接收体积辐射光但接收世界环境漫射照明。
体积阴影仅在体积物体上有效。它们不能在场景实物上投射阴影。
仅在视锥体(视野)中的体积会有阴影。
体积光照明不支持设置灯光形状。它们都被视为点光。
景深
Alpha混合的表面不能被后处理模糊处理,但会被基于样本的方法正确处理。为此,你需要通过将 最大尺寸 设置为0来禁用后处理的景深。
屏幕空间效果
Eevee不是光线追踪引擎,不会计算全部的光线反弹。而是使用深度缓冲区作为近似场景表示,这会降低场景缩放效果的复杂性并实现了更高的性能。 eevee计算那些效果时,仅计算视图范围的内容。另外它只利用一层深度,因此仅知道最前面的像素距离。
这些限制会产生一些问题:
屏幕空间效果会在屏幕(视图)边框消失。可以使用 过扫描 功能来修复此问题。
屏幕空间效果缺乏深层信息(或者物体的厚度)。这就是为什么大多数效果都有厚度参数来控制如何考虑潜在的相交像素。
这些效果不考虑混合表面。 它们不是深度预处理的一部分,不会出现在深度缓冲区中。
作为 排除集合 的一部分的对象将不会渲染成屏幕空间效果。
环境光遮蔽
物体被视为无限厚,如果 距离 真的很大,就会产生遮挡现象。
屏幕空间反射
只有一个有光泽的BSDF可以发出屏幕空间反射。
目前任意选择评估的BSDF。
屏幕空间反射将使用屏幕空间折射反射透明对象和对象,但由于单层深度缓冲区而没有精确定位。
屏幕空间折射
仅正确模拟了一个折射事件。
只能折射不透明或者alpha hashed材质的物体。
次表面散射 (SSS)
只有一个BSSRDF可以产生屏幕空间次表面散射。
目前任意选择评估的BSSRDF。
最多254个次表面散射材质的物体。
每个像素只能调整缩放比例。 单个RGB半径可在插槽默认值中调整。
在模糊期间,每个表面的输入辐射不被隔离,导致光从表面泄漏到表面。
运动模糊
材质
- 折射
通过对光泽 BSDF使用的相同反射探头进行采样,但使用折射视图方向而不是反射视图方向来折射。 只有第一次折射事件才是精确的。 使用折射深度可以将第二折射事件的近似用于相对较薄的物体。 使用屏幕空间折射将折射视图内部可见的内容,并在没有命中时使用最近的探测器。
屏幕空间反射和环境光屏蔽(AO)与屏幕空间折射不兼容; 它们将在使用它的表面上禁用。 使用屏幕空间折射的曲面不会出现在屏幕空间反射的反射中。 使用屏幕空间折射的曲面不会将环境光屏蔽(AO)投射到其他曲面上。
- 体积物体
对象体积着色器将影响到对象的整个边界盒。体积的形状必须在着色器内使用程序性纹理进行调整。
着色节点
所有BSDF都使用近似值来实现实时性能,因此Cycles和Eevee之间总会存在细微差别。
Some utility nodes are not yet compatible with Eevee.
See also
不支持节点完整列表 节点支持.
内存管理
目前为止Eevee使用OpenGL,而且 GPU 内存处理由OpenGL驱动实现。理论上,只需要贴图和网格(现在称为 "资源" )作为一次(例如 一个物体)合理的GPU内存的请求。
如果场景非常大,驱动会交换切换物体进出来保证所有物体被正确渲染。
在实践中,使用太多的GPU内存会导致GPU驱动崩溃,冻结,或终止其它应用程序。所以请小心做出您的请求。
目前没有好办法估计资源是否适合GPU内存,或者GPU是否能成功渲染它们。
CPU渲染
作为光栅化引擎,Eevee仅使用 GPU 的功能进行渲染。不打算支持 CPU 渲染,因为效率太低。但工作中仍然需要CPU来处理场景的复杂任务,因为在渲染每个帧之前必须由CPU准备几何数据。
多GPU支持
目前不支持多 GPU 系统。
无头(窗)渲染
目前Eevee不支持无头渲染系统(例如没有显示管理器)。