所以我推荐,基本上大家在做 VR 开发的时候能够用 Unity 5.4,虽然现在还 Beta 版,但在 5.4 里已经开始对这些东西做了一些优化。如果你用 5.3 的话,可能效率还是要低一些。 怎样解决锯齿上的问题? 然后我再讲的就是刚才说的锯齿问题。 这个东西在 VR 里面会是一个非常严重的问题。 大家都知道 Unity 里面摄像机可以设 render pass,包括有前向渲染 Forward Rendering 和延迟渲染 Deferred Rendering。 在 VR 里面我们怎么去选择这个呢? 你在做一个小游戏的时候,可能根本不会 care 这个东西。 用前向渲染和用后向渲染,显卡都是能够满足目标的。但是,我在这分析的就是说前向渲染,它有一个天生的好处就是能够在硬件上支持 MSAA。 我们玩游戏的都会知道一个选项,如果你去把《使命召唤》或者这样游戏里的图形选项打开,它有一项就叫 MSAA。 MSAA 实际上是显卡里用硬件算法去支持的。 如果你用前向渲染,它天然就自带了一个 MSAA 的效果,锯齿问题就不是那么严重。 但后向渲染其实就是一个非常尴尬的事情,如果游戏玩的多的可能都知道,现在有抗锯齿的 FXAA,其实是基于一个图像分析,这个图像分析在 VR 里面用处并不是很大,或者说即使加上了对于锯齿的改善并不是很明显。 所以,我向大家推荐 Unity 里面非常强大的插件,就是 VALV 的 Lab Renderer。 其实这是 VALVE 的工程师在做 The Lab 这个 Demo 的时候,想到的这个事情。 如果你听过他们在 GDC 上的演讲,就会明白他们也用 Unity 做开发,那他们为什么不用 Unreal 呢? VALVE 做的《半条命》、《DOTA2》,是非常高端、特效非常好的游戏。为什么它要用 Unity 呢?他们工程师就说了一句:“我们发现用 Unity 的团队,大部分都是小团队,而这样的小团队里面是不可能有一个人去专门研究图形,专门研究画面效果的,所以我们去专门研究这样一个插件叫做 The LabRenderer的技术。” 目的就是说能够帮助小团队去实现一个还不错的渲染效果。 这个渲染其实特别容易。 它就是最简单的一个 pass forward renderer 前向渲染器。 能够最大的支持 16 盏动态光源。我想 16 盏动态光源对于绝大多数游戏或者非常复杂的应用来说都是够用的。 它最大的特点就是说 MSAA,能够天然支持 MSAA,锯齿是非常不明显的。它天生就自带了我刚才说的那些注视点渲染、像素剔除这些技术。相比 Unity 默认的渲染,你使用它渲染会有非常好的效率上的提升。 但然,它也有一些限制。 它必须用自己的 Shader。 比如说你在 Unity 用惯了标准材质,或者你自己买的一些 Alloy Shader,贴图就要重画或者重新连接材质的节点。 用这个插件需要你去做一些修改。 当然,如果说项目并不是很大,我非常推荐使用这个东西。去学习一下它的流程,一个是对你自己,对整个团队的图形学知识是个很好的。 另外,它整个代码是 open source,在 asset store 上,搜 The Lab Renderer 就可以下载,不需要掏钱。 再一个就是说,你不用花时间去纠结一些比较基础的东西。 比如 Unity 没有注视点渲染、没有像素剔除的技术。那你看一下用 Unreal 开发的,天生就自带 Gameworks VR,人家做出来为什么这么快。你自己如果要花时间去写,花时间去研究,这就是一个非常大的工程。所以 VALVE 给你搭的这一套东西就节省不少的时间。 (责任编辑:本港台直播) |