渲染

计算机图形学——光栅渲染概述

本篇主要讲的是计算机图形学中比较重要的主题之一,渲染,并且着重于讲述光栅化的渲染方式。我们要了解光栅渲染,其实先要理解什么是渲染。这必将引出它的上一层级,计算机图形学。在图形管道当中,渲染是作为最后一个主要步骤而存在的,是为模型或者动画最终呈现外观的主要步骤。渲染是计算机图形学的主要的子主题之一,也是我们将要讨论的重中之中,因为渲染在实践中总是与图形学的其他的模块有着很深的联系。

unity Shader——非真实感渲染:下篇(素描风格的渲染)

有篇著名的论文中提到过,使用了提前生成的素描纹理来实现实时的素描风格渲染,这些纹理组成了一个色调艺术映射,这些纹理笔触逐渐增多,用于模拟不同光照下的漫反射结果,从上到下对应了每张纹理的多级渐远纹理,这些纹理的生成并不是简单的对上一层纹理进行降采样,而是需要保持笔触之间的间隔,以便更真实的模拟素描效果。

unity Shader——非真实感渲染:上篇(卡通风格的渲染)

尽管游戏渲染一般都是以照相写实主义作为主要目标,但也有许多游戏使用了非真实感渲染(NPR)的方法来渲染游戏画面。非真实感的一个主要目标是,使用一些方法使得画面和某些特殊的绘画风格相似的效果,例如卡通、水彩风格等。

移动端APP渲染原理

CPU内部流水线结构拥有并行计算能力,一般用于显示内容的计算。而GPU的并行计算能力更强,能够通过计算将图形结果显示在屏幕像素中。内存中的图形数据,经过转换显示到屏幕上的这个过程,就是渲染。而负责执行这个过程的,就是GPU。

unity中的渲染优化技术——(游戏物体、UI、模型的优化,以及移动平台的一些优化)

和渲染优化相关的东西很多,大致可分为网格、着色器材质、光照和阴影。相关的优化技术有相机视椎体剔除、遮挡剔除、基于层的分类剔除与合并绘制调用。LOD降级分为着色器的LOD降级和LodGroup降级。

unity中的渲染优化技术——(减少需要处理的顶点和片元数目)

建模时尽可能减少模型中三角面片的数目,一些对于模型没有影响、或是肉眼非常难察觉到区别的顶点都要尽可能去掉。美术人员往往需要优化网格结构。很多三维软件都有相应的优化选项,可以自动优化网格结构。

unity中的渲染优化技术——(减少draw call数目方法二:静态批处理、共享材质、批处理的选择)

相比于动态批处理来说,静态批处理适用于任何大小的几何模型。它的实现原理是,只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,这意味着这些模型不可以在运行时刻被移动。但由于它只需要进行一次合并操作,因此比动态批处理更加高效。

unity中的渲染优化技术——(减少draw call数目 方法一:动态批处理)

批处理的实现原理就是为了减少每一帧需要的draw call数目。为了把一个对象渲染到屏幕上,CPU需要检查哪些光源影响了该物体,绑定shader并设置它的参数,再把渲染命令发送给GPU。

unity中的渲染优化技术——(影响性能的因素、unity中的渲染分析工具)

游戏优化不仅是程序员的工作,更需要美工人员在游戏的美术上进行一定的权衡,例如避免使用全屏的屏幕特效,避免使用计算复杂的shader,减少透明混合造成的overdraw等。这是由程序和美工人员等各部分人员共同参与的工作。