unity3d shader开发(三)pass(culling & depth testing)

unity3d shader开发(三)pass(culling & depth testing)

ID:8458888

大小:339.00 KB

页数:8页

时间:2018-03-28

unity3d shader开发(三)pass(culling & depth testing)_第1页
unity3d shader开发(三)pass(culling & depth testing)_第2页
unity3d shader开发(三)pass(culling & depth testing)_第3页
unity3d shader开发(三)pass(culling & depth testing)_第4页
unity3d shader开发(三)pass(culling & depth testing)_第5页
资源描述:

《unity3d shader开发(三)pass(culling & depth testing)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、剔除是一种通过避免渲染背对观察者的几何体面来提高性能的优化措施。所有几何体都包含正面和反面。剔除基于大多数对象都是封闭的事实;如果你有一个立方体,你不会看到背离你的那一面(总是只有一面在你的前方),因此我们不需要绘制出背面。因此也被称做背面剔除。    该文章出自【狗刨学习网】    另一个使得渲染看起来正确的是深度测试。深度测试确保只有场景内的对象的最靠近的表面参与绘制。Syntax语法Cull Back

2、Front

3、Off控制几何体的那一面会被剔除(不绘制) Back     不绘制背离观察者的几何体面。 Front     不绘制面向观察者的几何体面,用于由内自外的旋转对象

4、 Off     显示所有面。用于特殊效果。ZWrite On

5、Off    控制是否将来之对象的像素写入深度缓冲(默认开启),如果你正绘制纯色物体,将此项打开。如果你正绘制半透明效果,关闭深度缓冲,更多细节如下ZTest Less

6、Greater

7、LEqual

8、GEqual

9、Equal

10、NotEqual

11、Always    深度测试如何执行。缺省是LEqual(绘制和存在的对象一致或是在其中的对象;隐藏他们背后的对象)Offset Factor , Units    允许你定义用两个参数深度偏移。因子和单位。Factor缩放Z的最大斜率,几何体的X和Y也一样,units缩放可计

12、算的深度缓冲值。这允许你迫使一个几何体绘制在另一个的上层,尽管他们实际上是在同一个位置。例如偏移0,-1使得靠近摄像机的几何体忽略几何体的斜率,而偏移-1,-1则会几何体在一个几乎擦过的角度被观察使看起来更近些。示例    这个对象只会渲染对象的背面。1.Shader"ShowInsides"{2.  SubShader{3.      Pass{4.        Material{5.          Diffuse(0,1,1,1)6.        }7.        LightingOn8.        CullFront9.      }10.  }11.}复制

13、代码      我把太阳光正对着摄像机,Cube正对摄像机             尽量应用到一个立方体上,并注意当你围绕几何体旋转时,几何体是如何看起来变糟糕的。这是因为你只看见了立方体的内部部分。玻璃剔除      控制剔除比背面调试更有用。如果你有透明物体,你经常会想要显示一个对象的背面。如果你不做任何剔除,你会发现有时常有一部分背面会覆盖在前面的一部分上。      下面是一个用于凸物体(球,立方体,车窗)的简单着色器。1.Shader"SimpleGlass"{2.  Properties{3.      _Color("MainColor",Color)=(1,1,1

14、,0)4.      _SpecColor("SpecColor",Color)=(1,1,1,1)5.      _Emission("EmmisiveColor",Color)=(0,0,0,0)6.      _Shininess("Shininess",Range(0.01,1))=0.77.      _MainTex("Base(RGB)",2D)="white"{}8.  }9.10.  SubShader{11.      //Weusethematerialinmanypassesbydefiningtheminthesubshader.12.      //我

15、们通过把定义放在子着色器中以便可以在许多通道中访问材质13.      //Anythingdefinedherebecomesdefaultvaluesforallcontainedpasses.14.      //任何定义在这里的值都会变成所有内含的通道的默认值15.      Material{16.        Diffuse[_Color]17.        Ambient[_Color]18.        Shininess[_Shininess]19.        Specular[_SpecColor]20.        Emission[_Emiss

16、ion]21.      }1.      LightingOn2.      SeparateSpecularOn3.4.      //Setupalphablending5.      //开启透明度混合6.      BlendSrcAlphaOneMinusSrcAlpha7.8.      //Renderthebackfacingpartsoftheobject.9.      //渲染对象的背面部分10.      //Iftheobjectisconvex,th

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。