归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:16176回复:244

使用Vuforia在Unity3d实现阴影效果

楼主#
更多 发布于:2015-09-30 00:18
先上效果图:

图片:Screenshot_2015-09-30-00-07-51.png

图片:Screenshot_2015-09-30-00-08-18.png

图片:Screenshot_2015-09-30-00-08-08.png





再上源码:
链接:http://pan.baidu.com/s/1jGlL7xk 密码:
本部分内容设定了隐藏,需要回复后才能看到



以下内容摘自:http://mec0825.net/blog/?p=126

整备工作

1. 下载最新版本的 Unity5(我的demo使用Unity4.6.4f1)
2. 下载最新的 Vuforia SDK(Vuforia 5.0.5 ImageTarget案例)



搭建场景

将上面准备好的 Unity Package 导入到 Unity 中,设置 ARCamera 与 ImageTarget 中得参数。创建一个简单的 Cube 对象。注意不要忘记在 ARCamera 中设置 App License Key。

最后通过编译运行,我们就能看到结果了。



添加阴影

在 Unity 中我们通常给物体添加阴影来增加真实感。

但是我们直接这么做的话会在画面中也看到一个白色的平面。所以我们需要一个透明的平面,但能够接收阴影。为了达到这个目的,我们需要一个自定义的着色器。

Shader "FX/Matte Shadow" { 
    
Properties { 
    _Color ("Main Color", Color) = (1,1,1,1) 
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} 
    _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5 
} 
    
SubShader { 
    
    Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"} 
    LOD 200 
    Blend Zero SrcColor 
    
CGPROGRAM 
    
#pragma surface surf ShadowOnly alphatest:_Cutoff 
    
fixed4 _Color; 
    
struct Input { 
    float2 uv_MainTex; 
}; 
    
inline fixed4 LightingShadowOnly (SurfaceOutput s, fixed3 lightDir, fixed atten) 
{ 
    fixed4 c; 
    c.rgb = s.Albedo*atten; 
    c.a = s.Alpha; 
    
    return c; 
} 
    
void surf (Input IN, inout SurfaceOutput o) 
{ 
    
    fixed4 c = _Color; 
    o.Albedo = c.rgb; 
    o.Alpha = 1; 
    
} 
    
ENDCG 
    
} 
    
Fallback "Transparent/Cutout/VertexLit"
    
}

使用 Matte Shadow 制作材质球,再将它拖拽到我们的平面上,就得到了我们期望的效果。注意如果没看到阴影的话,很可能是 Scale 或者 Project Quality 设置的问题。(如果不出现阴影,将scale全部设置为1试试



从识别对象中浮现

要实现这个效果,我们需要使用 [Depth Shader](http://pan.baidu.com/s/1fLnFC)。原理是我们将使用一个透明但看不到内部的盒子将低于物料的物体隐藏起来。

在透明盒子上加上 DepthMask.shader,将 SetRenderQueue.cs 加在需要影藏的物体上。最终我们获得视频中的效果。
AR学院(www.arvrschool.com),从这里感触未来!

欢迎分享

Abel99
新手
新手
  • UID229
  • 粉丝0
  • 关注0
  • 发帖数5
沙发#
发布于:2015-09-30 11:02
xuexi xia
lcc2015
骑士
骑士
  • UID66
  • 粉丝0
  • 关注0
  • 发帖数29
  • 社区居民
  • 忠实会员
板凳#
发布于:2015-09-30 15:42
不错看看先
yxmlhyy
贫民
贫民
  • UID240
  • 粉丝0
  • 关注0
  • 发帖数3
地板#
发布于:2015-09-30 18:11
不错!感谢水哥!小弟前来学习学习
Everlasting
侠客
侠客
  • UID176
  • 粉丝0
  • 关注0
  • 发帖数19
  • 社区居民
  • 忠实会员
4楼#
发布于:2015-09-30 18:13
感谢楼主分享!!!!
dong100136
贫民
贫民
  • UID188
  • 粉丝0
  • 关注0
  • 发帖数2
5楼#
发布于:2015-10-06 00:46
dfafafasdfasfgfdsg 规范的公司打工
lqccfn
侠客
侠客
  • UID112
  • 粉丝0
  • 关注0
  • 发帖数8
  • 社区居民
6楼#
发布于:2015-10-09 11:49
我用的是unity5.1阴影怎么弄也出不来,不知道是不是版本问题
jsss12340
侠客
侠客
  • UID262
  • 粉丝0
  • 关注0
  • 发帖数22
7楼#
发布于:2015-10-10 10:14
,不知道是不是版本问题
z24015c
新手
新手
  • UID74
  • 粉丝0
  • 关注0
  • 发帖数14
8楼#
发布于:2015-10-10 10:34
很不错的功能看上去3d效果更加的真实,赞
langzi001_ar
圣骑士
圣骑士
  • UID91
  • 粉丝4
  • 关注4
  • 发帖数64
9楼#
发布于:2015-10-11 15:25
学习一下  看看
guriheng
骑士
骑士
  • UID124
  • 粉丝0
  • 关注1
  • 发帖数33
10楼#
发布于:2015-10-13 16:31
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
11楼#
发布于:2015-10-13 16:41
guriheng:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,回到原帖
??说点啥不好么
AR学院(www.arvrschool.com),从这里感触未来!
921942722
新手
新手
  • UID287
  • 粉丝0
  • 关注0
  • 发帖数12
12楼#
发布于:2015-10-15 20:56
看看再说
guriheng
骑士
骑士
  • UID124
  • 粉丝0
  • 关注1
  • 发帖数33
13楼#
发布于:2015-10-16 12:23
归海一啸:??说点啥不好么回到原帖
我不这样说。。。你会回复我????
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
14楼#
发布于:2015-10-16 12:36
guriheng:我不这样说。。。你会回复我????回到原帖
哈哈,机智~
AR学院(www.arvrschool.com),从这里感触未来!
上一页
游客

返回顶部