UnitY实用小工具或脚本——AR阴影以及遮挡

CSDN个人博客地址凯尔八阿哥专栏http://blog.csdn.net/zhangxiao13627093203,和蛮牛同步发表。
首先要说一下问题:+高通Vuforia实现增强现实的应用时候,是不能现实出阴影的。参考了网上的一个帖子做的非常好,而且实现步骤写的也非常详http://dev.arinchina.com/unity3dwz/ar6298/6298/
,如果没有注册这个网站的可以点作者的个人博客:http://mec0825.net/blog/?p=126。
而我接下来要将的还有一个要实现的效果也是基于这个例子的启发的灵感,首先还是一样描述一下问题:效果图如图

实现的效果就是一个龙从墙上(标志点Mark是一个画有龙背景),喷火而出。这当然是最终的效果啦,刚开始的时候是这样的

前面上出现了后面的龙的翅膀,如果要做到真实的感觉是,龙从墙里面钻出来,而不是从墙板上充气式的浮起来了,所以应该把这两个翅膀给遮住,另外后面的贴图也不能被侧面看到,而只能通过这个破铜看到才有立体的效果,因为背景只是一个贴图,从侧面你看的话就成了一个片。
这样就要有四个透明的Mask遮罩遮住后面的场景,而保障只能通过这个破洞看到后面的场景。

上下左右添加一个Plane然后给每一个Plane赋给如下一段Shader的材质就可以了

//一个Shader有多个SubShader。一个SubShader可理解为一个Shader的一个渲染方案
SubShader {
// "Queue"标签。定义渲染顺序 ,用户可以定义任意值,"Geometry"。值为2000。大部分物体在这个队列 .比如"Queue"="Geometry - 10"
Tags {"Queue" = "Geometry-10" }  
// Lighting On | Off 打开|关闭顶点光照.
Lighting Off
//ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual) 设置深度检测模式.见【 Cull and Depth page 】
ZTest LEqual
//ZWrite On | Off 设置深度写模式.见【 Cull and Depth page 】
ZWrite On
// ColorMask RGB | A | 0 | any combinaion of R,G,B,A 设置颜色写入mask, 0,表示关闭所有颜色通道写入.见【Material page】
ColorMask 0
//subshader中包含了一个通道(Pass)
Pass {}
}
}

你可能感兴趣的:(UnitY实用小工具或脚本——AR阴影以及遮挡)