Skip to main content
 首页 » 资源教程 » Vuforia教程

如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果

2016年08月31日 16:00:5716340

直接用Unity+Vuforia是没有阴影效果的,因为要使用AR效果就要用到ARCamera,但是ARCamera有bug导致阴影出现不了,当然我们会有解决方法
首先,当然是先将灯光弄好,为阴影的出现打下基础,然后将下面这段代码扔给ARcamera就行啦

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using Vuforia;  
  4.   
  5. public class FixProjectionMatrix : MonoBehaviour, IVideoBackgroundEventHandler  
  6. {  
  7.     private Camera[] mCameras;  
  8.   
  9.     // Use this for initialization  
  10.     void Start()  
  11.     {  
  12.         mCameras = VuforiaBehaviour.Instance.GetComponentsInChildren<Camera>();  
  13.         VuforiaBehaviour.Instance.RegisterVideoBgEventHandler(this);  
  14.     }  
  15.   
  16.     // Update is called once per frame  
  17.     void Update()  
  18.     {  
  19.   
  20.     }  
  21.   
  22.     public void OnVideoBackgroundConfigChanged()  
  23.     {  
  24.         foreach (var cam in mCameras)  
  25.         {  
  26.             var projMatrix = cam.projectionMatrix;  
  27.             for (int i = 0; i < 16; i++)  
  28.             {  
  29.                 if (System.Math.Abs(projMatrix[i]) < 1e-6)  
  30.                 {  
  31.                     projMatrix[i] = 0.0f;  
  32.                 }  
  33.             }  
  34.             cam.projectionMatrix = projMatrix;  
  35.         }  
  36.     }  
  37. }  

还没解决?接着看
一、看你的Light是否正确,Shdow Type默认是No Shadow的,有没有选择为Hard Shadows,当然Soft Shadow也是可以,但是性能消耗比较大,而且一些手机可能不支持,查看Strength是不是太弱了,调的太低也会出现看不到阴影的现象。


如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果 Vuforia教程 第1张

二、在Unity3D中,Camera离物体近时阴影能显现,远一点就看不到了(或者干脆一开始就看不到),可能是你阴影的可视距离没有调整好,在Edit 》ProjectSettings 》Quality 》Shadow Distance调整即可

如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果 Vuforia教程 第2张

三、以上是在Unity中显示阴影,但如果导出到手机上发现竟然阴影又不见了呢?

(1)同样是打开在Edit 》ProjectSettings 》Quality ,看红框部分,绿色钩钩的是你生成到对应平台使用的QualitySetting,因此不仅在Light中要选择Shadow Type的类型,还要看你生成到Android的Levels,这里的Shadows有没有选呢~~~

如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果 Vuforia教程 第3张

(2)还不行?到Edit 》Project Settings 》Player,看Rendering Path是不是Forward,还有不要勾选Use Direct3D 11,因为有一些手机是不支持的,当然如果你使用的是Unity5.4等的版本的话,你选择Direct3D9也是可以的

如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果 Vuforia教程 第4张

如何使Unity+vuforia做出来的模型导入到Android手机中能够实现阴影效果 Vuforia教程 第5张

评论列表暂无评论
发表评论