您需要 登录 才可以下载或查看,没有账号?注册
x
接上贴:http://www.element3ds.com/forum.php?mod=viewthread&tid=36909&_dsign=a1358da6
从贴吧搬运来的。看了之后对5有很大的帮助哈,就转过来和大家分享咯。图文较多,准备分几次发--文本末尾附上原帖地址。 |
下面说一下Reflection Probe, 这东西很扯, 工作原理在这里摆着呢, 显然Reflection无论怎么调节Bound的或者采样点的位置, 都无法适应一个”房间”或者一个”地板”, 他只适用于一个玻璃球, 一个杯子, 或者是其他的单个的小型物体.
当一个物体横跨了多个Reflection Probe的时候, 他的Mesh Renderer中会自动加入所有他触及到的Reflection Probe. Weight是通过计算每个他触及的Reflection Probe和这个物体之间距离来得出的. 另外还可以单独调节Reflection Probe的”Importance”这个参数来手动干预这个计算结果.
Mesh Renderer的Reflection Probes选项能够选择四种使用ReflectionProbe的方法,
Off---代表不使用Reflection Probe.
Simple---代表只使用列表中Weight值最大的那个ReflectionProbe.
Blend Probes---should be used for interior objects, that way you’ll ensure that object won’t accidentally use reflections from skybox (a.k.a default reflection).
Blend Probes And Skybox---should be used for exterior objects, that way when object leaves the bounding box of reflection probe, it will gradually switch reflections from reflection probe to skybox.
这里只讲无法第一时间测试出意义的参数. 其他参数都比较简单.
Type选择类型, 三种可选.
Dynamic Objects---在Custom模式中是否将非静态物体也给Bake出来.
Time Slicing---官方文档上说这个选项仅仅针对于当我选择了Every frame作为刷新模式的情况, 实则不然, 因为不管是On Awake还是Every frame还是Via scripting, 这个Time Slicing都是有效果的, 要了解这个选项. 首先要了解一下Reflection Probe的内部生成机制, 一个Realtime的Reflection的生成有三个步骤, 第一个步骤要计算一个Cubemap的六个面, 第二步要考虑这个
Cubemap的mipmap(文档上说为了支持Glossy Reflections, mipmap是必要的, 而Glossy Reflections对于调节不同程度的Smoothness时是有一定效果上的提升的), 第三步是将计算结果拷贝到Cubemap中. 那么TimeSlicing的三个选项分别有不同的三步计算所需帧数.
faces at once---9帧, 性能消耗中等. (9帧之内再次通过Via Scripting调用刷新是无效的)
Individual faces---14帧(在9帧的基础上加了将六个面分为六帧的那多出来的五帧), 性能消耗最低.(14帧之内再次通过Via Scripting调用刷新是无效的)
No time slicing---1帧. 所有动作都在同一帧执行, 这种性能消耗最大. (1帧之内再次通过Via Scripting调用刷新是无效的)
Importance---影响了一个MeshRenderer中的多个ReflectionProbe的Weight的自动混合比例. 当一个物体处在多个Reflection Probe的”领地”内的时候, 首先会考虑每个Reflection Probe的Importance, 之后, 在此基础上才会考虑每个Reflection Probe与该物体之间的分别的交叉的体积的大小. 也就是说Importance的优先级高于交叉体积的计算.
关于交叉体积的计算: For ex., if the first volume is 1.0 and the second is 2.0, then first probe’s influence will be 1.0 / (1.0 + 2.0) = 0.33, the second probe’s influence will be 2.0 / (1.0 + 2.0) = 0.67. 还有一种特殊情况, 就是就是一个小的Probe套在一个大的Probe里面, 而一个物体又完全在这个小的Probe里面, 那么对这个物体来说, 小的Probe的Weight会是1, 大的会是0. 而当这个物体逐渐脱离这个小的Probe的时候, 那么小的Probe和大的Probe对于这个物体的Weight会进行一个混合.
Box Projection---如果选中这个选项, 那么Probe Size以及Probe Origin会影响Reflection Probe的映射效果.
Size---该Reflection Probe的影响范围. 进入这个范围的MeshRenderer会自动和这个Reflection Probe产生关联. 同时, 当Box Projection开启的时候, 这个Size也会影响Reflection Probe的UV映射.
Probe Origin---取样点相对于影响范围中心的偏移. 当勾选了Box Projection的时候, Probe Origin的位置会影响Reflection Probe的UV映射.
Shadow Distance---阴影距离, 特性和Quality Setting中的特性一样, 数值越小, 阴影显示越近, 但阴影越精细, 调成0会完全关闭阴影.
关于Box Projection, 官方文档说,If you have a room which you want to reflect, ensure that reflection bounding box’s is of similar dimensions, this way you’ll get the best results. 的确是这样, Reflection Probe的Bound刚好覆盖要反射的范围是最佳的效果.
下面说一下GI方面的其他注意事项以及Rendering Path
首先, 在Linear Color Space中PBR才会有最正确的效果
然后是,
光源的Baking模式有三种可选.
`Realtime---对动态物体还是静态物体都使用实时光源.
`Baked---只对静态物体使用烘焙光照. 对动态物体没有作用.
`Mixed---对静态物体使用烘焙光照, 对动态物体使用实时光源.
首先要明确的一点, 那就是提到Bounce ,就马上应该联想到静态物体, 因为Bounce对动态物体是无效的. 那么关于Bounce和光源的Baking模式之间的关系, 只有Realtime模式支持实时Bounce, 也就是更改Intensity或Bounce Intensity会对结果产生影响. 与此相对的, Baked以及Mixed都仅仅支持烘焙的Bounce.
下面说一下Rendering Path, 请各位集中看一下下面的话, 或者反复读两遍. 因为个人觉得这个挺重要.
Unity5多了一种RenderingPath, 可以取代过去的Legacy Deferred. 最大的特点是对于实时光影来说的性能消耗更低了.
Deferred
这个模式是最适合动态光影的. 对于次时代PC或者主机游戏, 当然要选择这个. 通过Viking Village以及”进化”这些最新游戏的观察我发现次时代游戏几乎不需要烘焙光照贴图了, 全都使用实时阴影是很好的选择. 通过阴影距离来控制性能消耗. 而在Viking Village的场景中,由于整个场景全部使用了动态光源, Forward的Rendering方面的性能消耗要比Deferred高出一倍! 因此在完全使用动态光源的项目中千万不能使用Forward.
Forward
对于实时光影来说, Forward的消耗比Deferred更高, 但是Forward更加适合用于半烘焙半实时的项目.
Forward解决了一个Deferred没能解决的问题. 那就是Deferred不能让Mixed模式的DirectionalLight将动态阴影投射在一个经过烘焙了的静态物体上.
比如这里这样, 立方体和右边的Plane是静态物体, 球体和左边的Plane是动态物体. 唯一的DirectionalLight是Mixed的. DirectionalLight烘焙了一下光照贴图, 但是球体不是静态物体, Mixed的DirectionalLight现在虽然可以照亮这个球体但是却无法将他的阴影投射在右边的经过烘焙了的静态的Plane上面. 但却可以将球体的阴影投射在左边的动态的Plane上面.
而Forward却完美解决了这个问题.
因此, Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏.
Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏...
Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏.....
Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏......
Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏.......
只要记住上面五句话就行了.(五句你妹啊)
GI章节结束. 复习一下.
`大部分GI功能仅能用于静态物体以及LightProbe上
`动态物体应该受LightProbe所影响.
`GI分为两种, 一种动态一种烘焙, 手游当然应该烘焙, 主机或PC可以选择用实时.
`GI要和Standard 以及Standard(Specular Setup)配合使用才有最佳效果.
`Deferred适用于全动态阴影的主机以及PC游戏. Forward适用于烘焙阴影与实时阴影相结合的手机游戏
到这里原本中关于烘培的相关就已结束。剩下还有些新特性,稍后继续整理。
原帖地址:http://tieba.baidu.com/p/3690939628?see_lz=1
|