风宇冲 Unity3D教程宝典之Shader篇:第一讲Shader总篇

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院


引言,在Unity3d里,所有的图形绘制都必须通过Shader,即着色器。一般的使用过程中,我们用到的都是unity自带的Shader,即build-inshader。学习Shader后,自己写的Shader能做出很多你想要的特殊效果,增强游戏的画面表现。例如 水的倒影。LOGO的光影闪过等等效果等等。

Shader的分类

Shader按管线分类一般分为固定渲染管线与可编程渲染管线1)固定渲染管线——这是标准的几何&光照(Transforming&Lighting)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。功能比较有限。基本所有的显卡都能正常运行。2)可编程渲染管线——对渲染管线中的顶点运算和像素运算分别进行编程处理,而无须象固定渲染管线那样套用一些固定函数,取代设置参数来控制管线。
Unity3d的三种Shader
【风宇冲】Unity3D教程宝典之Shader篇:第一讲Shader总篇

Unity的Shader分为三种:(1)Fixed function shader 属于固定渲染管线Shader,基本用于高级Shader在老显卡无法显示时的Fallback(之后有详细介绍)。使用的是ShaderLab语言,语法与微软的FXfiles 或者NVIDIA的 CgFX类似。(2)Vertex and Fragment Shader最强大的Shader类型,属于可编程渲染管线.使用的是CG/HLSL语法。(3)Surface ShaderUnity3d推崇的Shader类型,使用Unity预制的光照模型来进行光照运算。使用的也是CG/HLSL语法。
Unity3d三种Shader对比

三种Shader共同点:
(1)都必须从唯一一个根Shader开始
(2)Properties参数部分,作用及语法完全相同
(3)具体功能都在SubShader里(Subshader:子Shader,Shader会自上而下运行第一个硬件能支持的Subshader,主要作用是对不用硬件的支持。)
(4)都可以打标签,例如Tags { "RenderType" = "Opaque" }LOD 200 以及Lighting On等
(5)都可以Fallback
(6)都可以处理基本的功能,例如光照漫反射(Diffuse)以及镜面反射(Specular)。但是Vertexand Fragment和Surface都能实现Fixed function实现不了的高级功能,例如基于uv计算的效果等等。

三种Shader不同点:
(1)Fixed function shader以及Vertex and FragmentShader在subshader下面还有pass{},但是SurfaceShader,由于已经将具体内容打包在光照模型了,不能加pass{},加了会报错。
(2)Fixed functionshader每句代码之后没有分号';'但是V&F shader以及Surfaceshader每句代码之后都必须加分号';'
(3)核心结构不同:
Fixed functionshader的核心是
Material{} 以及 SetTexture[_MainTex]{}

Vertex andFragment Shader的核心是
  1. CGPROGRAM
  2. #pragma vertex vert
  3. #pragma fragmentfrag
  4. #include "UnityCG.cginc"
  5. ENDCG

SurfaceShader的核心是

(1)这套用的是Unity3d自带光照模型Lambert,也不做顶点处理,那么只需要一个表面处理函数surf即可

CGPROGRAM
#pragma surface surf Lambert
ENDCG
或者(2)这套表示使用的是自己写的光照模型lsyLightModel,并且使用了顶点处理函数vert

CGPROGRAM
//surface 表面处理函数光照模型函数顶点处理:函数
#pragma surfacesurflsyLightModelvertex:vert
//执行顺序顶点处理函数 -> 表面处理函数 -> 光照模型函数->颜色值
ENDCG

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/305505.html

更多阅读

6950玩机宝典 京瓷6950dn打印机驱动

6950改卡机玩机宝典之一一、PPC基础知识1.关于6950的中文说明书Xv6950不是大中华区的机子,不可能有中文说明书,我们可以查考中国电信发布的S900c的中文说明书,来了解6950的操作和硬件资料,大家可以通过以下连接下载来做参考:连接2.以下

原创连载 80后怀旧宝典之电视剧·少儿电视剧 80后怀旧游戏

《小龙人》《少年特工》《十六岁的花季》《第三军团》对于80后来说,现在的时代,早已不是电视剧的时代,我们呆在电脑前面的时间,要远远多过在电视机前的时间。而每晚都要守在电视机前等着看两集电视剧的记忆,属于我们还是小屁孩的年纪。所

QQ骂人宝典之骂人歇后语大全 qq骂人宝典下载

一二三四五六七--- 忘(王)八一个耳朵大,一个耳朵小---猪狗养的一把粉打在后颈窝---釉子上反了二十一天不出鸡---坏蛋三伏天卖不掉的肉---臭货三角坟地---缺德三年不洗口--- 一张臭嘴三年不屙屎---粪胀(混帐)大姑娘养的---丑东西大车

声明:《风宇冲 Unity3D教程宝典之Shader篇:第一讲Shader总篇》为网友未知数分享!如侵犯到您的合法权益请联系我们删除