3、shader深度测试(Cull、ZWrite 、ZTest )
剔除和深度测试是渲染法线中的一个流程
Cull:默认情况下,Unity中给的所有Shader都是单面的,它都把反面的渲染给关闭掉了,如果你在开发的过程中需要使用到双面,只要把cull关闭(off)即可!
ZWrite:深度缓存ZWrite默认情况下都是开启的,因为我们3D场景中的模型非常多,那么模型与模型之间的前后关系就是由ZWrite来控制的,所以默认情况下要开启,前面已经介绍过它了
直接看效果来介绍
Cull:Unity中给的所有Shader都是单面的,它都把反面的渲染给关闭掉了,我们来看下图就知道什么回事了,我们来新建一个Plane,看下它就知道了,
这是cull back时的效果,前面被绘制了,后面被剔除了,unity中默认也是这样的
当cull为fornt时,只有后面绘制了,前面被剔除了,效果为:
当cull为off时,正反两面都被绘制了,效果为:
ZTest:对这个了解的还不是很透彻,先这样理解吧,后面了解了,会更新!
如上所述,默认为LEqual,就是绘制前面的对象与现有对象有一段距离的对象,隐藏现有对象后面的对象
LEqual为lessEqual小于等于,可以理解为如果自己的深度小于或者等于某些物体时,就绘制这些物体,反之,进行隐藏处理!
如果为greater时,就绘制那些深度小于自己的物体,而自己所有面积都隐藏,而如果深度大于自己的话,那么自己显示的面积为:自己和深度大于自己的物体相交的面积部分,而深度大于自己的物体面积全显示
实例:场景中新建一个cube,再新建一个capsule,分别为两个物体创建两个默认的shader,两个物体的x和y轴是一样的,
而capsule更靠近摄像机,而cube是会被capsule遮挡的,如图所示
此时我们设置capsule的ztest为greater,效果如下:
always:表示无论被不被遮住,都一直绘制,一般用在当人物被墙壁等物体遮挡时,要以一种描边的效果展示:
最新文章
- JavaWeb_day07_JSP
- sql注入时易被忽略的语法技巧以及二次注入
- 【bzoj3036】绿豆蛙的归宿
- TextMate2 最新版下载及源码编译过程
- Bugtags 远程配置功能介绍
- openssl生成ssl证书
- 一句话解释c#中的特性,你了解多少
- BZOJ2080 : [Poi2010]Railway
- ajaxFileUpload增加附加参数
- spring3.2.2+mybatis3.2.3+c3p0项目整合
- java.sql.SQLException: Lock wait timeout exceeded --转
- Lintcode--001(比较字符串)
- 201521123028 《Java程序设计》第13周学习总结
- 关于apidoc文档生成不了的一个原因
- 浅析 SpringMVC 原理和配置.
- splay小结—植树结
- 【LaTeX排版】LaTeX论文排版<;三>;
- Hive性能优化上的一些总结
- Centos 6.5 安装和使用docker
- JdbcTemplate学习笔记(更新插入删除等)
热门文章
- HashMap面试知识点
- samb共享
- Intellij idea创建(包、文件)javaWeb以及Servlet简单实现(Tomcat)
- 【洛谷P4124】[CQOI2016]手机号码
- Android学习笔记_16_添加多个Activity、参数传递、请求码和结果码使用
- iOS | TableView的优化
- Keepalived 配置高可用
- 增删改查 报异常org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove &#39;readO
- 一个关于 json ,加密,测试,集多功能为一体的在线工具
- openresty安装配置 Ubuntu下