丢失了好多文章,故更新一波,开一个新坑CG

不论是LWRP还是ShaderGraph都已经不是什么新技术了

CG杂谈

计算机图形学(ComputGraph)简称CG,是一门研究计算机图形图像处理的学科,将符号或电子信号可视化是一门比较晦涩难懂的东西,比如傅里叶变换用于研究声音和波的关系,让波得以表示。众所周知,建模时我们总是使用三角面来构成一个模型,以三角面的数量来衡量一个模型的精细程度。从三维物体坐标系到二维的屏幕坐标系,深度如何表示?遮挡关系如何计算?这就是CG所研究的东西,计算机图形学也被称为程序员的浪漫,这就是这个系列要说的东西。

LWRP

LWRP(轻度渲染管线)是unity推出的可自定义的渲染管线,其初衷是为了移动平台和轻度主机平台。在轻度渲染管线下,我们可以对渲染管线做更多的设置和处理,并且可以使用shaderGraph可视化的shader编辑器像连连看一样完成shader的编写。
通过shader我们可以实现许多视觉效果,如飘动的红旗,水面的倒影,卡通人物渲染等;有些可以使用模型来解决但使用shader不仅高效还能处理许多模型无法解决的东西。

不知道你是否看过游戏的模型,或者说取解包过游戏,很多游戏,模型可能并没有游戏中那么漂亮
但是通过shader,光照,后处理等,玩家看到的就是非常赞的效果了!(就好像是美颜滤镜一样

HDRP

HDRP(高清渲染管线)如名字所言,是专门在对画面质量要求较高的主机或PC端开发游戏所使用的。(但unity开发大型游戏真的够呛,目前在我看来ue4可能更适合)
使用HDRP我们可以更高程度的自定义我们的渲染系统,要知道在游戏引擎中,渲染占据了很大的一块。

Shader的基础认知?

关于shader的基础认知,我在之前曾写过一篇文章(虽然没写完),我会抽空把那篇文章写完的。
如果有兴趣不妨去看看:[传送门]unity图形学 渲染流程

LWRP下Shadergraph的搭建

Unity版本 2019.3.0f6
听了这么多,也许你还是比较懵吧,没事。让我们来揭开shader的神秘面纱吧

  1. 首先安装如下依赖包:

  2. 创建渲染管线资源并设置:
    值得一提的是,在unity2019.3中已经将LWRP更名为UWRP了,unity想在之后让LWRP变成通用的渲染管线取代原先的Stand渲染管线;所以我们需要创建一个UWRP的资源。

  3. 使用UWRP
    首先我们创建一个Cube,一个材质,一个PBRGraph(基于物理的shader)。

PBRGraph?

这里补充一点小知识,所谓PBR就是基于物理的渲染,什么叫做基于物理的渲染呢?简单的说就是原先的模型在绘制贴图时,贴图师就会直接在贴图上绘制好高光,粗糙度,磨损等,这是基于经验的固定化的处理。而基于物理的渲染则是通过复杂的计算和光照模型的影响,动态的计算出模型的细节,让模型处于不同的环境中能够有不同的表现,是基于环境影响的。

打开PBRGraph:
创建如下结点并连接

然后将shader指定到对应材质,将材质指定到我们的Cube,尝试调整数值吧。

到这里我们已经知道如何基本的使用shaderGraph了呢,但你可能会说,这不是自带shader就拥有的功能吗?

做一个边缘发光效果

下面我们使用菲涅尔效应做一个简单的边缘自发光,其shadergraph如图所示,通过菲涅尔结点指定一个发光颜色和强度来实现。(非常简单吧

效果图:

做一个顶点动画

通过顶点偏移我们可以实现一个波浪或是,旗帜飘动的效果:
主要是使用顶点偏移通过sin正弦方式。

效果如图: