unity中的渲染优化技术——(减少需要处理的顶点和片元数目)
demi 在 周一, 07/13/2020 - 15:10 提交
建模时尽可能减少模型中三角面片的数目,一些对于模型没有影响、或是肉眼非常难察觉到区别的顶点都要尽可能去掉。美术人员往往需要优化网格结构。很多三维软件都有相应的优化选项,可以自动优化网格结构。
建模时尽可能减少模型中三角面片的数目,一些对于模型没有影响、或是肉眼非常难察觉到区别的顶点都要尽可能去掉。美术人员往往需要优化网格结构。很多三维软件都有相应的优化选项,可以自动优化网格结构。
相比于动态批处理来说,静态批处理适用于任何大小的几何模型。它的实现原理是,只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,这意味着这些模型不可以在运行时刻被移动。但由于它只需要进行一次合并操作,因此比动态批处理更加高效。
批处理的实现原理就是为了减少每一帧需要的draw call数目。为了把一个对象渲染到屏幕上,CPU需要检查哪些光源影响了该物体,绑定shader并设置它的参数,再把渲染命令发送给GPU。
随着更多的开发功能逐渐以安装包的形式发布,长长的功能包列表可能会让你眼花缭乱。为此,我们在Unity 2020.1中更新了包管理器,更改了功能包列表的展示方式,方便开发者详细了解使用预览包的影响,让开发过程更加可控。
游戏优化不仅是程序员的工作,更需要美工人员在游戏的美术上进行一定的权衡,例如避免使用全屏的屏幕特效,避免使用计算复杂的shader,减少透明混合造成的overdraw等。这是由程序和美工人员等各部分人员共同参与的工作。
传统的渲染方式下所做的光照计算流程称为前向渲染。这是一种十分直接的方式,在顶点着色器中对所有待渲染对象的顶点进行一系列的变换,这些变换通常是将顶点的法线和位置变换到裁剪空间。
在vertex函数中进行的计算就叫逐顶点计算,该计算量只和模型的顶点数量或面的数量有关,而和其他因素(如模型在屏幕上的大小)无关。在unity的表面着色器中,逐像素的计算发生在vertex:vertexfunction所确定的函数中。
近日,Unity正式发布Unity 2019 LTS长期支持版,作为稳定版引擎,将所有的新增功能、稳定的使用体验带给每一位开发者。Unity 2019 LTS是Unity最新的集大成之作,包含了之前 TECH Stream技术更迭版中的所有内容,以及自Unity 2019.3.0发布以来的所有修复与改善。同时,该版本的稳定性更好,Unity官方团队会对LTS版本持续维护长达两年的时间。
在unity中,渲染路径决定了光照是如何应用到unity shader中的,如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径,只有为shader正确地选择和设置了需要的渲染路径,该shader的光照计算才能被正确的执行。
表面着色器实际上就是在顶点片元着色器上添加了一层抽象,顶点片元着色器是硬件能理解的渲染方式,而开发者应该使用一种更容易理解的方式。