- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第*页 5.3 渲染通道的通用指令 5.3.2 渲染队列 渲染队列数值可以决定Unity在渲染场景物体时的先后顺序,其原理是Unity在关闭深度检测的情况下渲染物体时后渲染的物体总是遮挡住先渲染的物体 Unity中内置了5种默认的渲染队列的值 Background:背景,对应值为1000,这个渲染队列在所有队列之前被渲染,通常用于渲染真正需要放在背景上的物体,比如:天空盒 Geometry:几何体(默认值),对应值为2000,这个队列是默认的渲染队列,被用于大多数对象。不透明的几何体使用这个队列 AlphaTest:Alpha测试,对应值为2450,alpha测试的几何结构使用这种队列。它是一个独立于Geometry的队列,因为它可以在所有固体对象绘制后更有效地渲染采用alpha测试的对象 Transparent :透明,对应值为3000,这个渲染队列在Geometry队列之后被渲染,采用从后到前的次序。任何采用alpha混合的对象(不对深度缓冲产生写操作的着色器)在这里渲染,比如:玻璃、粒子效果 Overlay:覆盖,对应值为4000,这个渲染队列被用于实现叠加效果。任何需要最后渲染的对象应该放置在此处,比如:镜头光晕 第*页 5.3 渲染通道的通用指令 5.3.2 渲染队列 下面通过一个更改两个小球渲染次序的案例来详细介绍渲染队列。 (1)创建小球对象。点击GameObject→3D Object→Sphere,创建两个Sphere对象,并分别命名为“Ball1”和“Ball2”,并调节两个小球的位置,将“Ball1”放在“Ball2”前方,保证摄像机视角中“Ball1”遮住“Ball2”。 (2)创建Shader脚本。在Assets面板中右键点击Create→Shader,创建两个着色器脚本,并分别命名为“BNURender100”和“BNURender200”。然后双击文件在脚本编辑器中编辑脚本,“BNURender100”具体的代码实现如下 1 Shader Custom/BNURender100 { 2 Properties { 3 _Color (Main Color, Color) = (0,0,0,0) //主颜色数值 4 } 5 SubShader { 6 Tags { Queue=Geometry+100 } //设置渲染队列数值 7 ZTest off //关闭深度检测 第*页 5.3 渲染通道的通用指令 5.3.2 渲染队列 8 CGPROGRAM 9 #pragma surface surf Lambert //表面着色器编译指令 10 fixed4 _Color; //主颜色属性 11 struct Input { //Input结构体 12 float2 uv_MainTex; 13 }; 14 void surf (Input IN, inout SurfaceOutput o) { //表面着色器函数 15 o.Albedo = _Color; //设置物体表面颜色 16 } 17 ENDCG 18 }} 第*页 5.3 渲染通道的通用指令 5.3.2 渲染队列 下面通过一个更改两个小球渲染次序的案例来详细介绍渲染队列。 (3)然后再编写另一个着色器脚本,该脚本除了渲染队列数值设置为“Geometry+200”,其他代码和“RenderQueue100”着色器基本相同。 (4)创建Material材质球。在Assets面板中右键点击Create→Material,并分别命名为“RenderQueue100”和“RenderQueue200”,再将刚刚编写好的“BNURender100”和“BNURender200”脚本分别拖拽到这两个材质球上,然后将材质球拖拽到两个小球对象的属性面板中。 (5)单击游戏运行按钮,观察效果。发现虽然“Ball1”在“Ball2”的前面, 但是“Ball1”无法遮挡住“Ball2”,如图5-8所示。这是因为 “Ball2”材质的渲染队列数值比“Ball1”的大,所以后渲染的 “Ball2”小球遮挡住先渲染的“Ball1”小球。 第*页 5.3 渲染通道的通用指令 5.3.2 渲染队列 图5-8 渲染队列案例演示 第*页 5.3 渲染通道的通用指令 5.3.3 Alpha测试 最后一次能够决定让片元显示或者不显
您可能关注的文档
- 建筑材料 烧结空心砖的技术规定 10-烧结空心砖的技术规定.pptx
- 建筑电气工程 电线 307 电线.pptx
- 建筑钢结构焊接 丙烷和丙烷气瓶 9.2.3 丙烷和丙烷气瓶.pptx
- 建筑钢结构焊接 气割基本原理 9.1.1 气割基本原理.pptx
- 建筑钢结构焊接 熔化极气体保护焊的基本原理 7.1.1 熔化极气体保护焊基本原理.pptx
- 建筑钢结构设计 建筑钢结构设计 单层厂房钢屋盖结构-课件.ppt
- 建筑钢结构施工 钢梁安装 63钢梁安装2020版1.pptx
- 建筑钢结构施工测量 水准测量的方法、记录计算及注意事项 等外水准测量一测站观测程序.pptx
- 建筑钢结构制作 钢结构典型构件(箱型截面)的制作工艺 2.2钢结构典型构件(箱型截面)的制作工艺.pptx
- 建筑给排水工程 建筑给排水工程 6.3.2热水系统附件.pptx
文档评论(0)