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:表示无论被不被遮住,都一直绘制,一般用在当人物被墙壁等物体遮挡时,要以一种描边的效果展示:

3、shader深度测试(Cull、ZWrite 、ZTest )的更多相关文章
- ShaderLab中vertex fragment类Shader基础格式笔记
//U3D用的shader语言叫ShaderLab,基础语法官方文档地址 //https://docs.unity3d.com/Manual/SL-Shader.html //开头指明名字,可以在别的 ...
- Unity3d Shader开发(二)SubShader
(1)SubShader Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 当Un ...
- 【Unity Shader】Unity Chan的卡通材质
写在前面 时隔两个月我终于来更新博客了,之前一直在学东西,做一些项目,感觉没什么可以分享的就一直没写.本来之前打算写云彩渲染或是Compute Shader的,觉得时间比较长所以打算先写个简单的. 今 ...
- NGUI利用深度测试实现新手引导遮罩
实现原理:实际上就是先利用渲染队列渲染,然后再利用ZTest,改变渲染的遮挡关系. PS:Depth Testing:深度测试,也叫深度缓冲.只有最靠近观察者的物体会被绘制.深度即Z,该值越小表示离观 ...
- Unity Shader Billboard
记录来源于ShaderLab开发实战详解 Shader "Tut/Project/Billboard_1" { Properties { _MainTex ("Base ...
- billboard Shader待研究下
Shader "Tut/Project/Billboard_1" { Properties { _MainTex ("Base (RGB)", 2D) = &q ...
- Shader笔记
1,渲染队列值小的先渲染,值大的后渲染 2,zTest,zWrite zTest:LEqua zWrite:On 则:zWrite中,深度值小于深度值缓冲区的值会被通过 参考:http://www.c ...
- 1.4:SubShader
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 在了解了渲染流水线之后,我们可以开始SubShader的学习了. 什么是S ...
- Unity3D-Shader-热扭曲效果
[旧博客转移 - 2016年1月13日 13:18 ] 前面的话: 本来我是想写一个水的原理的,但是发现涉及的知识太多,还有好多不懂的,所以就先一步一步来 最近呢,我在网上捡到了一本<热扭曲秘籍 ...
随机推荐
- 利用Graphviz画出图
graphviz官网:http://www.graphviz.org/ 背景:有画图需要,之前见到别人用graphviz画,画出来的图漂亮,且自动帮你排版安排布局,所以自己想尝试用它画. 其中遇到的几 ...
- 【XP-IE8】XP系统的IE8无法正常访问图片,按钮无反应,不执行JS脚本代码
环境: Windows XP ,自带的是IE6,另外安装的 IE8 . 状况: 使用IE8浏览内网网站,点击登录按钮,没有反应.滚动图片新闻不显示.但使用Chrome浏览器,一切正常,说明是IE8某处 ...
- 消息中间件JMS(二)
之前介绍了ActiveMQ下载与安装,并且启动了.下面进行ActiveMQ的Demo 1. JMS入门Demo 1.1 点对点模式 点对点模式主要建立在一个队列上面,当连接一个队列的时候,发送端不需要 ...
- Python—面向对象 封装03
接着上面的一篇继续往下: 如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) class A: __x = 1 # _A__x = 1 def __init__(self, ...
- U盘空间释放
U盘做成启动盘后,怎么释放空间,恢复到原来的容量.这里有个帖子,我觉得很方便,不用安装什么东西,简单直接. http://blog.sina.com.cn/s/blog_68f6e8a901014cv ...
- Java基础——XML复习
XML SGML : 标准通用置标语言 Standard Generailzed Markup Language XML ...
- Controller类的方法上的RequestMapping一定要写在Controller类里吗?
转载请标明出处: https://blog.csdn.net/forezp/article/details/80069961 本文出自方志朋的博客 使用Spring Cloud做项目的同学会使用Fei ...
- CentOS 7安装Oracle (CentOS Linux release 7.5.1804)
从安装操作系统到完成oracle安装 1.安装centos7 下载CentOS7 iso安装包,配置虚拟机,由于只进行oracle安装练习,随便配置20G空间.选择安装文件. 开机,开始安装系统: 直 ...
- Java跨系统调用接口(POST)
package com.bing.util; import com.bing.constant.ResultModel; import com.bing.model.Company; import c ...
- Cantor表
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/2 2/3 2/4 - ...