unity中的渲染优化技术
小橙子0
一只游戏开发狗
展开
-
(二十九)unity shader之——————着色器的组织和复用(cginc文件复用代码、宏定义和shader变体、自定义材质编辑器)
一、cginc文件1.1 unity的UnityCG.cginc文件我们经常使用#include 指令包含UnityCG.cginc。这个文件中包含了unity预定义的大量结构和函数,通过#include指令可以复用这些结构和函数,而不必每次都重新定义它们。1.2定义自己的cginc文件我们可以定义自己的cginc文件,然后用#include指令包含该文件,实现着色器代码的复用。虽...原创 2019-12-26 15:25:55 · 2187 阅读 · 1 评论 -
(二十七)unity shader之——————基本的渲染概念
一、逐顶点计算和逐像素计算1.1逐顶点计算在vertex函数中进行的计算就叫逐顶点计算,该计算量只和模型的顶点数量或面的数量有关,而和其他因素(如模型在屏幕上的大小)无关。在unity的表面着色器中,逐像素的计算发生在vertex:vertexfunction所确定的函数中。1.2逐像素计算在fragment函数中进行的计算就叫逐像素计算,这个计算量和模型的具体顶点数量以及面数无关...原创 2019-12-19 14:02:47 · 406 阅读 · 0 评论 -
(四)unity中的渲染优化技术——————(游戏物体、UI、模型的优化,以及移动平台的一些优化)
一、渲染优化的元素和渲染优化相关的东西很多,大致可分为网格、着色器材质、光照和阴影。相关的优化技术有相机视椎体剔除、遮挡剔除、基于层的分类剔除与合并绘制调用。LOD降级分为着色器的LOD降级和LodGroup降级。在所有这些方面地形是比较特殊的,假设使用的是unity的地形,可以将这些与性能优化有关的元素整理成下图:1.1 小型物体的优化小型物体不能像一堵墙或桌子那样提供遮蔽,按...原创 2019-12-07 14:14:31 · 1856 阅读 · 2 评论 -
(三)unity中的渲染优化技术——————(节省带宽、减少计算复杂度)
一、节省带宽大量使用未经压缩的纹理以及使用过大的分辨率都会造成由于宽带而引发的性能瓶颈。1.1减少纹理大小使用图集可以帮助我们减少draw call数目,而这些纹理的大小同样是一个需要考虑的问题,所有纹理的长宽比最好是正方形,而且长宽值最好是2的整数幂,这是因为有很多优化策略只有在这种时候才可以发挥最大效用,在unity5中,即便我们导入的纹理长宽值并不是2的整数幂,unity也会自动...原创 2019-11-09 14:43:00 · 2325 阅读 · 0 评论 -
(二)unity中的渲染优化技术——————(减少需要处理的顶点和片元数目)
一、减少需要处理的顶点数目顶点数目同样有可能成为GPU的性能瓶颈,下面给出3个常用的顶点优化策略。1.1优化几何体建模时尽可能减少模型中三角面片的数目,一些对于模型没有影响、或是肉眼非常难察觉到区别的顶点都要尽可能去掉。美术人员往往需要优化网格结构。很多三维软件都有相应的优化选项,可以自动优化网格结构。在unity渲染统计窗口中可以查看到渲染当前帧需要的三角面片数目和顶点数目。需要...原创 2019-11-08 17:56:14 · 1795 阅读 · 0 评论 -
(二)unity中的渲染优化技术——————(减少draw call数目 方法二:静态批处理、共享材质、批处理的选择)
一、静态批处理相比于动态批处理来说,静态批处理适用于任何大小的几何模型。它的实现原理是,只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,这意味着这些模型不可以在运行时刻被移动。但由于它只需要进行一次合并操作,因此比动态批处理更加高效。静态批处理的缺点在于,它往往需要占用更多的内存来存储合并后的几何结构,这是因为,如果在静态批处理前一些物体共享了相同的网格,那么在内存中每一...原创 2019-11-07 17:38:30 · 906 阅读 · 0 评论 -
(二)unity中的渲染优化技术——————(减少draw call数目 方法一:动态批处理)
批处理的实现原理就是为了减少每一帧需要的draw call数目。为了把一个对象渲染到屏幕上,CPU需要检查哪些光源影响了该物体,绑定shader并设置它的参数,再把渲染命令发送给GPU。当场景中包含了大量对象时,这些操作就会非常耗时。一个极端的例子是,如果我们需要渲染一千个三角形,把他们按一千个单独的网格进行渲染所花费的时间要远远大于渲染一个包含了一千个三角形的网格。在这两种情况下,GPU的性能消...原创 2019-11-06 00:26:03 · 1071 阅读 · 0 评论 -
(一)unity中的渲染优化技术——————(影响性能的因素、unity中的渲染分析工具)
这个专栏我们会阐述一些unity中常见的优化技术,这些技术基本都是和渲染相关的,例如使用批处理、LOD(Level of Detail)技术等。游戏优化不仅是程序员的工作,更需要美工人员在游戏的美术上进行一定的权衡,例如避免使用全屏的屏幕特效,避免使用计算复杂的shader,减少透明混合造成的overdraw等。这是由程序和美工人员等各部分人员共同参与的工作。一、移动平台的特点和PC平...原创 2019-11-05 15:00:49 · 1524 阅读 · 0 评论