U3D中物体的渲染顺序
1,由SHADER中渲染队列及队列中的值决定
2,在同一队列中,若材质相同
2.1 对于UI,按其在场景层级中的先后顺序绘制
2.2 对于3D不透明物体,按其离相机的距离,由近到远绘制,这样可以减少像素重绘
2.2 对于3D透明物体,按其离相机的距离,由远到近绘制,只有这要才能正确绘制所有半透明物体,反之,有些半透明物体将看不到半透效果
3,在同一队列中,若材质不同,绘制顺序不定,在framedebuger中,移动相机,可以看到绘制顺序不断变换。
举例:有两个不透明队列:20001(a,b,c三个物体,使用材质1,Z值由小到大),20002(e,f,g三个物体,使用材质2,Z值由小到大),让它们沿相机Z轴排成一排
当移动相机时,在framedebuger中查看6个物体的绘制顺序,可以看到绘制顺序不断变动如:
<a,b,c,e,f,g> < a,b,e,c,f,g> < e,f,a,b,c,g>
但不管怎么样变动,同一队列中的物体总是保持顺序不变,即a总在b前,b总在c前,e总在f前,f总在g前
一般情况下我们不需要关心相同队列物体绘制的先后顺序,但当需要处理zwrite, ztest, stenciltest时,就必须精确控制物体的绘制顺序,否则就实现不了想要的效果。如利用模板测试绘制镜子,必须先绘制镜子,将镜子区域的像素的模板值写为某个值X,然后绘制被镜子照到的物体(如果模板值为X则绘制,否则丢弃像素)。
4,物体上挂接的脚本的执行先后完全没有什么规律。只是确定的一点是: 若a的start先于b,c的start执行,则a.update也先于b.c的update执行
setsiblingindex(idx)设置兄弟结点先后顺序时,若idx处已有结点X,则结点X及其后的所有节点后移
U3D中物体的渲染顺序的更多相关文章
- 【Unity笔记】UGUI物体的渲染顺序
①不同Camera的Depth.(大在前,小在后)②同Camera的SortingLayer.(下在前,上在后)③同SortingLayer下的Order in Layer.(大在前,小在后)④同Or ...
- 在DirectX 中进行2D渲染
http://flcstudio.blog.163.com/blog/static/756035392008115111123672/ 最近,我看到很多关于DirectX8在最新的API中摒弃Dire ...
- u3d中的INput
属性 属性: 功能: 轴 (Axes) 包含当前工程的所有定义的输入轴:数目 (Size) 该工程中不同输入轴的数量,元素 0.1.... 是要修改的特定的轴. 名称 (Name) 在游戏启动器中以及 ...
- unity3d中物体的控制
一.物体的循环移动和旋转 思路:通过对时间的计算,每隔一段时间让物体旋转,实现来回移动. float TranslateSpeed = 0.02f; float TranslateSpeedTime ...
- SKNode的渲染顺序
[SKNode的渲染顺序] SKNode的zPosition属性,指定相对于其父视图的z轴坐标. The default value is 0.0. The positive z axis is pr ...
- KING_Unity学习之UGUI_Canvas渲染顺序以及层次关系总结
http://blog.csdn.net/kingsea168/article/details/50252733 之前一直用NGUI开发界面,但看到现在的unity的新版本的UGUI也不错,这几天专门 ...
- U3D中GameObject.Find无法找到元件
U3D中GameObject.Find 如果某元件SetActive(false)了,Find()无法找到 因为Find()只会帮你找出正在活动中的物件,所以在将物件关闭前,我们必须将此物件放至预先定 ...
- Unity3D中脚本的执行顺序和编译顺序
http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与 ...
- 【转】Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)
http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与 ...
随机推荐
- hiho1601最大分数 DP
#1601 : 最大得分 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在玩一个游戏.给定一个数组A=[A1, A2, ... AN],小Hi可以指定M个 ...
- jQuery轮播插件SuperSlide【2016-10-14】
[一.页面实现轮播效果] (1)效果下图可以自动轮播 (2)代码 autoPlay控制是否轮播 //banner轮播 $(".banner").slide({mainCell:& ...
- tomcat错误:The page you tried to access (/manager/login.do) does not exist
今天在idea上跑一个项目,所有配置都正常,其他接口测试也正常.唯独“/manage/user”接口在测试的时候后台没反应,也就是程序根本没往下走,postman测试显示如下: 浏览器范围url连接显 ...
- Codeforces 633H Fibonacci-ish II【线段树】
LINK 题目大意 给你一个序列a,Q次询问,每次询问\([l,r]\) 把\([l,r]\)的数排序去重,得到序列b,f是斐波那契数列 求\(\sum_{b=1}^{len} b_if_i\) 思路 ...
- 重温CLR(十一) 枚举类型、位标志和数组
枚举类型 枚举类型(enumerated types)定义了一组"符号名称/值"配对.例如,以下Color类型定义了一组符号,每个符号都标识一种颜色: internal enum ...
- Asp.net Global 定时执行
在复杂的业务应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件,定期处理用户状态信息,支付系统中定期同步异常账单等等,我们称之 ...
- cmd连接mysql操作命令
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...
- java的try-with-resource机制
在java7之后可以使用try(resource1, resource2){...}这样声明之后,在try{}执行完成之后或者抛异常跳出,都会调用reouce1.close(),resource2.c ...
- 1、Java通过JDBC操作Hive
0.概述 使用的都是CLI或者hive –e的方式仅允许使用HiveQL执行查询.更新等操作.然而Hive也提供客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CL ...
- 解决Oracle的http://localhost:1158/em页面打不开的问题
https://localhost:1158/em 无法显示页面,在网上查阅资料以后发现这个页面时由服务:OracleDBConsoleoracl控制的,所以到管理界面打开服务:OracleDBCon ...