Unity内置Shader着色器效果整理Word格式.docx
- 文档编号:18675990
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:31
- 大小:2.77MB
Unity内置Shader着色器效果整理Word格式.docx
《Unity内置Shader着色器效果整理Word格式.docx》由会员分享,可在线阅读,更多相关《Unity内置Shader着色器效果整理Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
2、高光属性,与漫反射(Diffuse)一样,高光也计算简单的(Lambertian)光照,并附加一个依赖于观察者的高光亮点。
这个称为Blinn-Phong光照模型。
其具有取决于面角、光角和观察角的高光亮点。
该亮点实际上只是对光源模糊反射的实时适宜模拟。
亮点的模糊层次由检视器(Inspector)
中的反光(Shininess)
滑块控制。
此外,主纹理的alpha通道用作高光贴图(SpecularMap)(有时称为“光泽贴图”),用于定义对象哪些区域的反射性更强。
Alpha的黑色区域是零高光反射区域,而白色区域是全高光反射区域。
(3)、印花(Decal)
1、印花属性,该着色器是顶点光照(VertexLit)着色器的变型。
该着色器上的所有光照都将被其渲染为顶点光照。
除主纹理之外,该着色器还将第二个纹理用于其它细节。
第二个“印花”(Decal)纹理使用alpha通道来确定主纹理的可见区域。
印花纹理应为主纹理的补充。
比如说你有一个砖砌的墙壁,你可以使用一个砖块的纹理作为主纹理,然后使用带有alpha通道的Decal纹理在墙壁的不同地方涂鸦。
(4)、漫反射(Diffuse)
Diffuse基于一个简单的光照模型-Lambertian,光照强度随着物体表面和光入射角夹角的减小而减小(即光垂直于表面时强度最大)。
光照的强度只和该角度有关系,和摄像机无关。
(5)、顶点光照(Vertex-Lit)
最简单的一种Shader之一,所有照射在该物体上的光在一个Pass里面渲染完,光源只在顶点计算。
所以不会有任何基于像素渲染得效果,比如说:
normal,lightcookies和shadows.这个shader对模型的剖分(将一个物体从几何描述变为多边形表示的过程)非常敏感,如果你将一个点光源放在很靠近一个立方体的一个顶点那里,并且对立方体使用这个shader,光源只会在角落计算。
所以,基于像素光照的shader对剖分没有要求,在表现圆形高光上效果也很好。
(6)、高光(specular)
与漫反射(Diffuse)一样,高光也计算简单的(Lambertian)光照,并附加一个依赖于观察者的高光亮点。
(7)、视差法线贴图(ParallaxDiffuse)
A、视差法线贴图属性,与传统的normalmapped一样,但是对“深度”的模拟更佳。
额外的深度效果是通过HeightMap(高度图)来实现的。
HeightMap在Normalmap的alpha通道里面保存。
全黑表示么有高度,而白色表示有高度。
通常这用来表现石头或者砖块间的裂缝。
B、漫反射属性
此着色器消耗的渲染资源较多。
(8)、视差凹凸高光(ParallaxSpecular)
增加一张heightmap描述深度细节,此着色器消耗的渲染资源较多
A、视差法线贴图属性
B、高光属性
C、漫反射属性
(9)、漫反射细节(DiffuseDetail)
漫反射细节属性:
该着色器是带有额外数据的常规漫反射(Diffuse)着色器的版本。
它使您能够定义第二个“细节”纹理,这种纹理会随着相机的靠近而逐渐显现。
例如可以用于地形。
您可以使用低分辨率的基础纹理来覆盖整个地形。
当相机靠近低分辨率纹理时,纹理会变得模糊不清,这并不是我们想要的。
为了避免这种效果,请创建平铺在地形上的通用细节(Detail)纹理。
通过这种方法,额外的细节会在相机靠近时出现,从而避免模糊效果。
细节(Detail)纹理放在基础纹理的“上面”。
2、透明着色器系列
这个家族的Shader一共7种,原理和类型与Normal中的上差不多,只不过这些Shader是用在半透明或者全透明的物体上面的。
他们的主纹理接受RGBA4个通道。
如果你的模型一部分是半透明,一部分是不透明的。
请分开使用两张材质,半透明的材质这个家族的Shader。
这个家族的Shader的内容和Normal中同名的几乎一样,只是添加了半透明效果。
(1)、透明顶点光照(transparentVertexLit)
A、透明属性,通过读取主纹理的alpha通道使网格几何结构部分透明或全部透明。
在alpha中,0(黑)表示完全透明,而255(白)则表示完全不透明。
如果主纹理没有alpha通道,则该物体看起来完全不透明。
B、顶点光照属性,不会显示基于像素的任何渲染效果
(2)、透明漫反射(TransparentDiffuse)
透明(apha)+漫反射属性
(3)、透明高光
透明(apha)+高光属性、同NormalSpecular,支持了半透明
(4)、透明凹凸漫反射
透明(apha)+法线贴图+漫反射属性
(5)、透明凹凸高光
透明(apha)+法线贴图+高光,基础(Base)纹理的alpha通道定义了透明(Transparent)区域和高光贴图(SpecularMap)。
(6)、透明视差漫反射
透明(apha)+视差法线贴图+漫反射属性,
(7)、透明视差高光
透明(apha)+视差法线贴图+高光属性
3、透明镂空着色器系列(TransparentCutoutShaderFamily)
透明镂空(TransparentCutout)着色器用于有完全不透明部分和完全透明部分(无部分透明)的物体。
如链栅栏、树、草等。
(1)、透明镂空顶点光照(transparentcutoutvertexlit)
∙1、透明镂空属性,此着色器不能有部分透明的区域。
所有区域都必须是完全不透明或完全透明的。
使用此着色器的物体可投射和接收阴影!
使用此着色器时,不会产生通常与透明(Transparent)着色器相关的图形排序问题。
此着色器使用基础(Base)
纹理中包含的alpha通道确定透明区域。
如果alpha包含透明和不透明区域的混合,则可手动确定显示区域的分界点。
调整Alpha分界(AlphaCutoff)
滑块可更改此分界点。
∙2、顶点光照属性。
(2)、透明镂空漫反射(transparentcutoutdiffuse)
透明镂空属性+漫反射属性(表面光照强度随表面与光之间夹角的减小而减小。
)
(3)、透明镂空高光(transparentcutoutSpecular)
透明镂空+高光属性,基础(Base)纹理的alpha通道定义了透明(Transparent)区域和高光贴图(SpecularMap)。
主纹理的alpha通道用作高光贴图(SpecularMap)(有时称为“光泽贴图”)用于定义对象哪些区域的反射性更强。
这在您希望对象的不同区域反射不同级别的高光时非常有用。
例如,生锈的金属使用弱高光,而抛光金属使用强高光。
唇膏的高光强于皮肤,而皮肤的高光又强于棉质衣物。
(4)、透明镂空凹凸漫反射(~cutoutBumpedDiffuse)
透明镂空+法线贴图+漫反射,
法线贴图(NormalMap)是法线贴图的一种切线空间类型。
切线空间是“跟随”模型几何结构表面的空间。
在这个空间里,Z轴始终远离表面。
相对于另一种“对象空间”类型的法线贴图(NormalMap),切线空间法线贴图(NormalMap)稍微昂贵一些,但也有一些优势:
1.可用于奇形怪状的模型-恰好表现表面凹凸不平的效果。
2.可将部分法线贴图重复用于模型的不同区域或者不同的模型
透明镂空属性中,在alpha中,0(黑)表示完全透明,而255(白)则表示完全不透明。
(5)、透明镂空凹凸高光(~cutoutBumpedspecular)
透明镂空+法线贴图+高光属性,与漫反射(Diffuse)一样,高光也计算简单的(Lambertian)光照,并附加一个依赖于观察者的高光亮点。
(6)、透明镂空transparentCutoutSoftEdgelit
这个是官方文档里面没有记录的,估计是后面新加入的。
这个Shader绘制物体的正反两面,不受光照影响,常常用来绘制花草,树木,叶子。
他包含了两个Pass,
第一次将对象中Alpha大于alphacutoff的部分以不透明的方式绘制。
第二次关闭写zbuffer后,以半透明的方式绘制Alpha小于alphacutoff的部分。
这样做可以将绿草这种半透明的对象不需要排序就能绘制正确。
4、自发光着色器系列(Self-Illuminated)
此着色器使您能够定义物体的发光部分和黑暗部分。
辅纹理的alpha通道将定义在即使没有光线照耀时,物体自身的“发光”区域。
在alpha通道中,黑色表示零光照,而白色表示物体发出的最大光照。
任何场景光都会增加着色器光照顶部的亮度。
因此,即使您的物体自身不发光,其仍将被场景中的光照亮。
(1)、自发光顶点光照(Self-IlluminVertexLit)
自发光属性+顶点光照属性。
即此着色器使您能够定义物体的发光部分和黑暗部分。
由于是顶点光照,因此不会显示基于像素的任何渲染效果,如灯光cookies、法线贴图或阴影。
此着色器还对模型的密铺(tesselation)敏感得多。
如果使用此着色器将点光灯放在离立方体非常近的地方,则光只会在角位被计算。
像素光照着色器能更有效地创建漂亮的圆形亮点,且不受密铺(tesselation)影响。
(2)、自发光漫反射(Self-IlluminDiffuse)
自发光属性+漫反射,漫反射计算简单的(Lambertian)光照模型。
(3)、自发光高光(Self-IlluminSpecular)
自发光+高光属性,主纹理的alpha通道用作高光贴图(SpecularMap)(有时称为“光泽贴图”),用于定义对象哪些区域的反射性更强。
(4)、自发光法线贴图漫反射(~BumpedDiffuse)
自发光+凹凸法线贴图+漫反射属性,即不仅自发光,表面光根据光照与之夹角来计算,不随着相机改变而改变。
同时,注重细节纹理,可用于奇形怪状的模型-恰好表现表面凹凸不平的效果。
可将部分法线贴图重复用于模型的不同区域或者不同的模型。
(5)、自发光法线贴图高光(~BumpedSpecular)
自发光+凹凸法线贴图+高光,即除了自发光以及注重凹凸细节纹理之外,增加高光效果。
一般而言,此着色器消耗的渲染资源较多。
(6)、自发光视差漫反射(~ParallaxSpecular)
自发光+视差法线贴图+漫发射属性,
视差法线(ParallaxNormal)贴图
与与普通的法线(Normal)贴图一样,但对“深度”的模拟更佳。
使用高度贴图(HeightMap)
可获得额外的深度效果。
高度贴图(HeightMap)包含在法线(Normal)贴图的alpha通道中。
在alpha通道中,黑色表示零深度,而白色表示最大深度。
这常用于砖块/石头,以便更好地显示它们之间的缝隙。
视差(Parallax)贴图技术非常简单,通过它可以获得不寻常的艺术级别效果。
具体来说,高度贴图(HeightMap)中应避免非常陡峭的高度转换。
在检视器(Inspector)
中调节高度(Height)
值还可能导致物体以奇怪、不真实的方式扭曲。
因此,建议使用渐变的高度贴图(HeightMap)转换或者保持高度(Height)
滑块朝向浅端。
(主要随着摄像机改变,细节改变)
(7)、自发光视差高光(~ParallaxSpecular)
自发光+视差法线贴图+高光,在自发光和视差法线贴图基础上引入高光属性,调节Height可以改变高度图,而调节shininess可以改变光照强度。
5、反射着色器系列(Reflectivefamily)
(1)、反射顶点光照(~VertexLit)
反射+顶点光照,该着色器将模拟反射性表面,如汽车、金属物体等。
它需要定义具体反射区域的外界立方体贴图(Cubemap)。
主纹理的alpha通道定义物体表面的反射强度。
任何场景光都会增加反射物顶部的亮度。
照射它的所有光照在一个通道中被渲染并仅在顶点被计算。
(2)、反射性漫反射(~Diffuse)
反射+漫反射,该着色器将模拟反射性表面,如汽车、金属物体等。
同时,表面光照强度随表面与光之间夹角的减小而减小。
(3)、反射性高光(~Specular)
反射+高光,与漫反射(Diffuse)一样,高光也计算简单的(Lambertian)光照,并附加一个依赖于观察者的高光亮点。
(4)、反射性凹凸漫反射(~BumpedDiffuse)
反射属性+法线贴图+漫反射,恰好表现表面凹凸不平的效果。
同时通过放射方式展示出来。
(5)、反射性凹凸高光(~BumpedSpecular)
反射性+凹凸法线+高光,即在反射出凹凸不平的纹理细节效果上加大光强属性。
达到高光效果。
(6)、反射性视差漫反射(~ParallaxDiffuse)
反射性+视差+漫反射,视差(Parallax)贴图技术非常简单,通过它可以获得不寻常的艺术级别效果。
因此,建议使用渐变的高度贴图(HeightMap)转换或者保持高度Height
(7)、反射性视差高光(~ParallaxSpecular)
反射+视差法线贴图+高光。
(8)、反射性法线无光照(~BumpedUnlit)
该着色器之所以特别,是因为它对光毫无响应,所以您不必担心性能会因多个光照的使用而降低。
它只在模型上显示反射立方体贴图。
由于反射被法线贴图扭曲,所以您可以从详细反射获益。
因其不响应光,所以该着色器十分便宜。
这是一个有些专业的用例,但在这些案例中,它确实以尽可能便宜的价格满足您的要求。
(9)、反射性法线顶点(~BumpedVertex)
反射+凹凸法线+顶点属性,该着色器是反射法线(ReflectiveNormal)贴图的较好选择。
如果不想让物体本身受到像素光照影响,但又确实希望反射受到法线贴图影响,那么这款着色器是适合您的。
该着色器是顶点光照,所以和其反射法线(ReflectiveNormal)贴图副本相比,它渲染地更快。
6其它典型常见Shader
(1)、遮罩功能
A、技能冷却
NGUI中UISprite中filedspriteRadio360调节FiledMount
B、通过透明shader,绘制网格,插件MaskEffect
MaskEffect"
SubShader
Tags{"
="
}
Pass
Fog{ModeOff}
BlendSrcAlphaOneMinusSrcAlpha
CGPROGRAM
#pragmavertexvert
#pragmafragmentfrag
//顶点输入结构
structappdata
float4vertex:
POSITION0;
float4color:
COLOR;
};
//顶点输出结构
structv2f
float4pos:
SV_POSITION;
fixed4color:
//vertex
v2fvert(appdataIN)
v2fOUT;
OUT.pos=mul(UNITY_MATRIX_MVP,IN.vertex);
OUT.color=IN.color;
returnOUT;
//fragment
fixed4frag(v2fIN):
COLOR
fixed4c=fixed4(IN.color.r,IN.color.g,IN.color.b,IN.color.a);
returnc;
ENDCG
Fallback"
或者
maskshader"
Properties
_MainTex("
Base(RGB)"
2D)="
white"
{}
_Mask("
CullingMask"
_Cutoff("
Alphacutoff"
Range(0,1))=0.1
LightingOff
ZWriteOff
BlendSrcAlphaOneMinusSrcAlpha
AlphaTestGEqual[_Cutoff]
SetTexture[_Mask]{combinetexture}
SetTexture[_MainTex]{combinetexture,previous}
//-------------------------------------------------------------------
DepthMaskComplex"
Tags{"
Background"
LightingOff
ZWriteOn
ZTestAlways
Color(0,0,0,0)
SeparateAlphaMask"
Properties{
_Alpha("
Alpha(A)"
SubShader{
Tags{"
RenderType"
"
}
ColorMaskRGB
Pass{
SetTexture[_MainTex]{
Combi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity 内置 Shader 着色 效果 整理
![提示](https://static.bdocx.com/images/bang_tan.gif)