烘焙 UV 的 UV 打包不填充 0–1 空间(更小或更大)的问题已经修复。现在,如果每个对象的展开未填充 0–1 空间以及对象的边界为非正方形的情况下,分配给该对象的分辨率更加可靠了。请查看烘焙光照贴图的实例上的分辨率。
Shader variant stripping was fixed for realtime lightmaps. Now each lightmaps mode (non-directional, directional and directional specular) variant can be picked for baked and Enlighten realtime GI separately. Please review your settings if you previously selected a specific lightmaps mode variant in the Graphics window to make that mode work for realtime lightmaps.
反弹比例已从任意值 0.7 更改为 1.0。反弹是反照率和反弹比例的乘积。美术师应该设定现实生活中的反照率值(最亮的非金属值是 0.9 的雪)。这是我们的 PBS 参考:http://forum.unity3d.com/threads/official–5–0-pbr-calibration-charts.289416/
由于应当设置物理上正确的反照率,因此我们将比例设置为接近 1 是合理的。我们已经在 Meta 通道中钳制了反照率值,使反弹比例应该恰好是 1.0f。
请注意,如果选择在自定义 Meta 通道中将反照率设置为 1.0 而不进行钳制,那么场景可能看起来像是在光照下发生爆炸。
“固定函数”样式着色器(使用 SetTexture、Lighting On 等的着色器)现在会在着色器导入时在内部变为实际着色器。优点是这些着色器现在可在所有平台上运行(以前不能在游戏主机上运行),并具有更高的一致性。此外,在运行时消除了与许多代码和固定函数相关的低效率问题,使得渲染速度更快。缺点是在运行时使用 new Material(fixedFunctionShaderString)
创建固定函数着色器不再有效。该构造函数在 Unity 5.1 中已弃用,目前在 5.2 版中实际上已不可用于固定函数着色器。
我们已经更改使用延迟着色时渲染反射探针的方式,以便将来支持“屏幕空间反射”效果。简言之,在延迟着色中,反射探针现在是以逐像素而非逐对象的方式渲染的。
比较当前行为(每个对象的反射探针;在某些情况下难以避免大对象之间的明显反射过渡)和每个像素的反射探针(过渡更加隐蔽;它们发生在探针边界而不是对象边界处):
以前(5.0 和 5.1)
在 G 缓冲区通道期间对反射探针进行采样,执行方式与前向渲染完全相同。它们与光照探针、光照贴图和发光材质部分一起写入“发射”缓冲区。
这意味着每个对象获得一个(启用探针混合时为两个)反射探针。
反射与同一缓冲区中的发射/光照贴图一起意味着“正确”执行 SSRR 是很难的。SSRR 本身提供反射(不能提供时则回退到反射探针),但是它不知道哪一部分“发射缓冲器”颜色来自反射探针。
现在 (5.2)
使用延迟着色时,在 G 缓冲区通道期间不对反射探针进行采样。
相反,在 G 缓冲区完成后,进行单独的“延迟反射”通道,将反射探针绘制为屏幕空间中的盒体;将反射信息输出到单独的渲染目标中。
[未来:SSRR 效果将使用此单独的反射缓冲区]
最后结合反射缓冲区和发射缓冲区。
这是什么意思?(以下所有内容仅影响延迟着色)
反射探针渲染器标志(探针混合等)会被忽略;一切都以相同的方式受到反射探针的影响(因为现在发生在屏幕空间中)。这一点与在延迟着色中忽略“接受阴影”标志的方式非常相似。
现在会在世界空间中生成粒子,这可能需要更新所有自定义顶点着色器。进行这种改变是为了在 VR 的每只眼睛之间重复使用粒子缓冲区。
网格粒子现在支持 Texture Sheet Animation 模块。有必要确认现有的效果不会意外启用此模块,否则可能会看到行为发生变化。
Limit Velocity over Lifetime 模块中的 Dampen 参数以前在较高帧率下具有更强的效果。此问题现在已修复,如果游戏目标帧率为 30fps,旧效果将不受此更改的影响。但是,如果游戏的目标帧率 (FPS) 与此不同,可使用以下公式更新 Dampen 值,从而确保效果在 5.2 版中保持不变:
newDampen = 1.0f - pow(1.0f - oldDampen, targetFPS / 30.0f);
Material.CopyPropertiesFromMaterial
现在也复制着色器关键字和渲染队列。如果以前依赖于不复制这些元素,现在必须更改代码。
现在需要重新生成 SpeedTree 材质,因为 SpeedTree 内置着色器发生了变化。可以通过在项目中选择 SpeedTree 预制件并点击“Apply & Generate Materials”按钮来完成此操作。请注意,执行此操作后,对生成的材质资源的自定义设置(如果有)将被覆盖。
在 5.2 中,我们合并了向用户显示文本和普通 UI 元素的着色器。这样做的副作用是,如果指定 32 位格式的手动字体纹理,则会沿用颜色通道。这意味着黑色纹理通道将产生黑色文本,而以前文本会是白色的(我们只看 Alpha)。如果希望为字体使用自定义纹理,请执行以下操作之一:
1.将纹理的导入格式更改为 A8。这样便只会保留 Alpha 分量,因此 Unity 默认会将文本生成为白色。 1.在纹理中指定 Unity 在渲染文本时使用的一个或多个颜色
项目标识的处理方式在 Unity 5.2 中已更改,现在项目会自动注册,无需在任何位置手动输入 ID。Services 窗口中有一个 Multiplayer 面板(在右上角使用云图标即可将其打开),在其中可以找到一个直接链接到网站上的项目的深层链接 (Go to dashboard)。配置后,此处将显示 Multiplayer 配置。