关键词不能为空

当前您在: 主页 > 英语 >

Unity内置Shader着色器效果整理

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-01 02:09
tags:

-

2021年3月1日发(作者:侉)


Unity


内置及常用


Shader

< p>
整理



一、


Shader


脚本结构


:


Shader


{



Properties


{



}


SubShader


{


Tags {


Pass


{


}


}


SubShader


{


//ENDCG


}



Fallback



}



二、


Un ity


自带的


Shader


描述



1


、标准着色器系列(


Normal Shader Family




(< /p>


1


)、凹凸漫反射(


Bumped Diffuse





属性:



NormalMap


(法线贴图)属性,不改变对象形状,使用纹理来


模拟较小表面的细节, 而不是使用更多的多边形来实际雕刻细节。



漫反射属性:表面 光照强度随表面与光之间夹角的减小而减小。


光照强度仅取决于此角,且不随相机的移动 或旋转而变化。




2


)、凹凸高光


(Bumped Specular)


属性




1


、法线贴图属性


(Normal Map)


2


、高光属性,与漫反射


(Diffuse)


一样,高光也计算简单的



(Lambertian)


光照,并附加一个依赖于观察者的高光亮点。这个称为



Blinn-Phong


光照模型。其具有取决于面角、光角 和观察角的高光亮


点。该亮点实际上只是对光源模糊反射的实时适宜模拟。亮点的模


糊层次由检视器


(Inspector)


中的反光


(Shininess)


滑块控制。



此外,主纹理的


alpha


通道用作高光贴图


(Specular Map)

< p>
(有时称为



光泽贴图



),用于定义对象哪些区域的反射性更强。


Alpha


的黑色


区域是零高光反射区域,而白色区域是全高光反射区域。





3


)、印花


(Decal)


属性:



1


、印花属性,该着色器是顶点光照


(VertexLit)


着色器的变型。该着


色器上的所有光 照都将被其渲染为顶点光照。除主纹理之外,该着


色器还将第二个纹理用于其它细节。第 二个



印花


”(Decal)


纹理使用



alpha


通道来确定主纹理的可见区域。印花纹理应为主纹理的补充。



比如说你有一个砖砌的墙壁,你可以使用一个砖块的纹理作为


主 纹理,然后使用带有


alpha


通道的


Decal


纹理在墙壁的不同地方涂


鸦。





4


)、漫 反射(


Diffuse




Diffuse


基于一个简单的光照模型

-Lambertian


,光照强度随着


物体表面和光入射 角夹角的减小而减小


(


即光垂直于表面时强度最



)


。光照的强度只和该角度有关系,和摄像机无关。





5


)、顶点光照(


Vertex- Lit




属性:最简单的一种


Shader


之一,所有照射在该物体上的光在一个



Pass


里面渲染完,光源只在顶点计算。所以不会有任何基 于像素渲


染得效果,比如说:


normal,light cookies



shadows.


这个


shader


对模


型的剖分(将一个物体从几何描述变为多边形表示的过程)非常敏

< br>感,如果你将一个点光源放在很靠近一个立方体的一个顶点那里,


并且对立方体使 用这个


shader


,光源只会在角落计算。所以,基于


像素光照的



shader


对剖分没有要求,在表现圆形高光上效果也很好。





6


)、高 光(


specular




属性:与漫反射


(Diffuse)


一样,高光也计算简单的


(Lambertian)



照,并附加一个依赖于观察者的高光亮点。这个称为


Blinn-Phong



照模型。其具有取决于 面角、光角和观察角的高光亮点。该亮点实


际上只是对光源模糊反射的实时适宜模拟。亮 点的模糊层次由检视



(Inspector)


中的反光


(Shininess)


滑块控制。




7


)、视差法线贴图(


Parallax Diffuse




属性:



A


、视差法线贴图属性,与传统的


normal mapped


一样,但是对






的模拟更佳。额外的深 度效果是通过


Height Map


(高度图)来实


现的。


Height Map



Normal map



alpha


通道里面保存。全黑表 示


么有高度,而白色表示有高度。通常这用来表现石头或者砖块间的

裂缝。



B


、漫反射属性



此着色器消耗的渲染资源较多。



< /p>



8


)、视差凹凸高光(


Parallax Specular



< p>
属性:增加一张


heightmap


描述深度细节 ,


此着色器消耗的渲染资


源较多



A


、视差法线贴图属性



B


、高光属性



C


、漫反射属性





9


)、漫 反射细节(


Diffuse Detail




属性:



漫反射细节属性:该着色器是带有额外数据的常规漫反射


(Diffuse)


着色器的版本。它使您能够定义第二个



细节



纹理,这种纹理会随

< p>
着相机的靠近而逐渐显现。例如可以用于地形。您可以使用低分辨


率的基础 纹理来覆盖整个地形。当相机靠近低分辨率纹理时,纹理


会变得模糊不清,这并不是我们 想要的。为了避免这种效果,请创


建平铺在地形上的通用细节


(Detail)


纹理。通过这种方法,额外的细


节会在相机 靠近时出现,从而避免模糊效果。细节


(Detail)


纹 理放在


基础纹理的



上面






2


、透明着色器系列



这个家族的



Shader


一共



7


种,原理和类型与



Normal


中的上差不多,


只不过这些


Shad er


是用在半透明或者全透明的物体上面的。他们的


主纹理接受


RGBA4


个通道。如果你的模型一部分是半透明,一部< /p>


分是不透明的。请分开使用两张材质,半透明的材质这个家族的



Shader


。这个家族的


Shader


的内容和


Normal


中同名的几乎一样,只


是添加了半透明效果。




1


)、透明顶点光照(


t ransparent VertexLit




属性:



A


、 透明属性,


通过读取主纹理的


alpha

< br>通道使网格几何结构部分透


明或全部透明。在


alpha


中,


0


(黑)表示完全透 明,而


255


(白)


则表示完全不透 明。如果主纹理没有


alpha


通道,则该物体看起来


完全不透明。



B


、顶点光照属性,


不会显示基于像素 的任何渲染效果





2


)、透明漫反射(


Transparent Diffuse




属性:透明(


apha



+


漫反 射属性





3


)、透明高光



属性:透明(


apha



+


高光属 性、同


Normal Specular


,支持了半透明





4


)、透明凹凸漫反射



属性:透明(


apha



+


法线贴图


+


漫反射属性




< br>5


)、透明凹凸高光



属性:透 明(


apha



+

法线贴图


+


高光,


基础

< p>
(Base)


纹理的


alpha



道定义了透明


(Transparent)


区域和高光贴图


(Specular Map)






6


)、透明视差漫反射



属性:透明(


apha



+


视差法线贴图


+

漫反射属性,






7


)、透明视差高光


< /p>


属性:透明(


apha



+


视差法线贴图


+


高光属性< /p>




3


、透明镂 空着色器系列(


Transparent Cutout Shader Family




透明镂空


(Transparent Cutout)


着色器用于有完全不透明部分和完全


透明部分(无部分透明)的物体 。如链栅栏、树、草等。




1)


、透明镂空顶点光照(


transparent cutout vertexlit




属性:



?



1


、透明镂空属性,


此着色器不能有 部分透明的区域。所有区域都


必须是完全不透明或完全透明的。使用此着色器的物体可投 射和接


收阴影!使用此着色器时,不会产生通常与透明


(Transparent)


着色


器相关的图形排序问题。此 着色器使用


基础


(Base)



纹理中包含的



alpha


通道确定透明区域。如果



alpha


包含透明和不透明区域的混合,


则可手动确定显示区域的分界点 。调整


Alpha


分界


(Alpha


Cutoff)



滑块可更改此分界点。



?



2


、顶点光照属性。






2


)、透明镂空漫反射(


transparent cutout diffuse




属性:透明镂空属 性


+


漫反射属性(


表面光照强度随表面 与光之间夹


角的减小而减小。光照强度仅取决于此角,且不随相机的移动或旋

< p>
转而变化。






3


)、透明镂空高光(

transparent cutout Specular




属性:透明镂空


+


高光属性,


基础

(Base)


纹理的


alpha


通道定义了透



(Transparent)


区域和高光贴图


(Specular Map)


。主纹理的


alpha



道用作高光贴图


(Specular Map)


(有时称为


< br>光泽贴图





用于定义对


象哪些区域的反射性更强。


Alpha < /p>


的黑色区域是零高光反射区域,


而白色区域是全高光反射区域。这 在您希望对象的不同区域反射不


同级别的高光时非常有用。例如,生锈的金属使用弱高光 ,而抛光


金属使用强高光。唇膏的高光强于皮肤,而皮肤的高光又强于棉质


衣物。





4


)、透明镂空凹凸漫反射(


~cutout Bumped Diffuse




属 性:透明镂空


+


法线贴图


+

< p>
漫反射,



法线贴图


(Normal Map)


是法线贴图的一种切线空间类型。切


线空间是



跟随


< br>模型几何结构表面的空间。在这个空间里,


Z


轴始


终远离表面。相对于另一种



对象空间



类型的法线贴图


(Normal


Map)


,切线空间法线贴图


(Normal Map)


稍微昂贵一些,但也有一些


优势:



1.



可用于奇形怪状的模型


-


恰好表现表面凹凸不平的效果。



2.



可将部分法线贴图重复用于模型的不同区域或者不同的模型



透明镂空属性中,在



alpha < /p>


中,


0


(黑)表示完全透明,而



255


(白)


则表示 完全不透明。如果主纹理没有


alpha


通道,则该物体看起来


完全不透明。





5


)、透 明镂空凹凸高光(


~cutout Bumped specular




属性:透明镂空


+


法线贴图


+


高光属性,


与漫反射


(Diffuse)


一样,高


光也计算简单的


(Lambertian)


光照,并附加一个依赖于观察者的高


光亮点。这个称为


Blinn-Phong


光照模型。其 具有取决于面角、光角


和观察角的高光亮点。


该亮点实际上只是 对光源模糊反射的实时适


宜模拟


。亮点的模糊层次由

< p>
检视器


(Inspector)



中的


反光



(Shininess)



滑块控制。





6


)、透明镂空


transpar ent Cutout Soft Edge lit


这个是官方文档里面没有记录的,估计是后面新加入的。



这个



Shader


绘制物体的正反两面,不受光照影响,常常用来绘制花草,


树木,叶子。



他包含了两个


Pass




第一次将对象中


Alpha


大于


alpha cutoff


的部分以不透明的方式绘制。



第二次关闭写


zbuffer


后,以半透明的方式绘制


Alpha


小于


alpha


cutoff < /p>


的部分。这样做可以将绿草这种半透明的对象不需要排序就能


绘制 正确。




4


、自发光着色器系列(


Self- Illuminated




此着色器使您能够定义物体的发光部分和黑暗部分。辅纹理的



alpha


通道将定义在即使没有


光 线照耀


时,物体自身的



发光



区域。



alpha


通道中,黑色表示零光照,而白色表示物体发出的最大光

< br>照。任何场景光都会增加着色器光照顶部的亮度。因此,即使您的


物体自身不发光 ,其仍将被场景中的光照亮。




1< /p>


)、自发光顶点光照(


Self-Illumin VertexLit




属性:



自发光属性

< br>+


顶点光照属性。即此着色器使您能够定义物体的


发光部 分和黑暗部分。辅纹理的


alpha


通道将定义在即使没有 光线


照耀时,物体自身的



发光



区域。在


alpha

< br>通道中,黑色表示零光照,


而白色表示物体发出的最大光照。任何场景光都会增加 着色器光照


顶部的亮度。因此,即使您的物体自身不发光,其仍将被场景中的

< p>
光照亮。



由于是顶点光照,因此不会显示基于像 素的任何渲染效果,如


灯光


cookies


、法线贴图或阴影。此着色器还对模型的密铺



(tesselation)


敏感得多。如果使用此着色器将 点光灯放在离立方体非


常近的地方,则光只会在角位被计算。像素光照着色器能更有效地


创建漂亮的圆形亮点,且不受密铺


(tesselation)


影响。






2


)、自发光漫反射(


Self-Illumin Diffuse




属性:自发光属性


+


漫反射,漫反射计算简单的


(Lambertian)


光照模


型。表面光照强度随表面与 光之间夹角的减小而减小。光照强度仅


取决于此角,且不随相机的移动或旋转而变化。< /p>





3


)、自发光高光(


Self-Illumin Specular




属性:自发光< /p>


+


高光属性,主纹理的


alpha


通道用作高光贴图



(Specular Map)


(有时称为


光泽贴图



),用于定义对象哪 些区域的


反射性更强。


Alpha


的 黑色区域是零高光反射区域,而白色区域是


全高光反射区域。这在您希望对象的不同区域 反射不同级别的高光


时非常有用。例如,生锈的金属使用弱高光,而抛光金属使用强高< /p>


光。唇膏的高光强于皮肤,而皮肤的高光又强于棉质衣物。





4


)、自 发光法线贴图漫反射(


~Bumped Diffuse




属性:



自发光


+


凹凸法线贴图


+


漫反射属性,即不 仅自发光,表面光


根据光照与之夹角来计算,不随着相机改变而改变。同时,注重细


节纹理,可用于奇形怪状的模型


-


恰好 表现表面凹凸不平的效果。


可将部分法线贴图重复用于模型的不同区域或者不同的模型。






5


)、自发光法线贴图高光(


~Bumpe d Specular




属性:




自 发光


+


凹凸法线贴图


+


高光,即除了自发光以及注重凹凸细


节纹理之外,增加高光效果。一般而言,此 着色器消耗的渲染资源


较多。


-


-


-


-


-


-


-


-



本文更新与2021-03-01 02:09,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/685174.html

Unity内置Shader着色器效果整理的相关文章