在增强现实中,除了虚拟物体本身的模型材质等因素,影响物体真实性的主要是光照、反射、阴影。接下来3DCAT实时渲染云平台将带您从这三个方面探索如何让AR物体更真实!

AR光估测

要让一个虚拟物体很好的融入现实背景中,首先与周围环境的光照得一致,包括光照的方向、强弱。光估测就是提供对现实环境的光照分析,将现实世界的光照感觉拓展到数字场景中,我们利用光照估计技术评估环境光,利用环境光中的光照信息来动态调整虚拟对象的光照效果。

下面是在Unity3d中利用AR Foundation来实现光估测的具体实现: 我们首先要打开AR Foundation光照估计功能,在Hierarchy窗口中,依次选择AR Session Origin→AR Camera,然后在Inspector窗口的AR Camera Manager组件中,选择其Light Estimation Mode为“Ambient Intensity”,如下图所示。

然后新建一个C#脚本,命名为LightEstimation,编写如下代码。

为应用该脚本,我们将该脚本挂载在场景中的Dierctional Light对象上,并将AR Session Origin→AR Camera赋给脚本的mCameraManager属性,如下图所示。

环境探针

环境探测器是AR世界中的位置,可捕获真实环境的纹理和照明信息。每个探针都具有位置、比例、方向和边界体积的属性。使用它们的方法是应用从设备相机捕获的真实世界的纹理和图像,并将它们用作Cubemap。纹理通常为360度图像格式。当将其应用于适当的材料时,它会产生一般逼真的反射和照明,并受到现实世界的影响。

在AR Foundation使用环境反射的基本步骤如下

1、在场景中的AR Session Origin对象上挂载AR Environment Probe Manager组件并作相应设置;

2、确保需要反射的虚拟对象带有反射材质并能反射Probe;

3、使用自动或者手动方式设置反射探头捕获环境信息供反射体使用。

按照上述步骤,首先我们在AR Session Origin对象上挂载AR Environment Probe Manager组件,我们选择手动设置反射探头,因此我们不勾选“Automatic Placement”并选择纹理过滤模式为“Trilinear”,如下图所示。

AR阴影

阴影的产生与光源密切相关,阴影的产生也与环境光密切相关。阴影还影响人对空间环境的判断,是构建立体空间信息的重要参考因素。为使虚拟物体产生阴影,我的思路是在虚拟物体下方放置一个接受阴影的对象,这个对象需要能接受阴影但又不能有任何材质表现,即除了阴影部分,其他地方需要透明,这样才不会遮挡现实世界中的物体。

阴影生成一方面需要有光源,另一方面还需要有一个接受并显示阴影的载体。本节中我们将采用Unity内置的阴影解决方案生成AR实时阴影,光源采用Directional Light,使用一个Plane做阴影授受对象。

首先,我们制作一个接受阴影且透明的Plane,在Project窗口中新建一个Shader,命名为ARShadow,编写以下cg代码,该shader的功能就是显示阴影。

然后新建一个材质,亦命名为ARShadow,选择shader为刚才编写的ARShadow.shader。在Hierarchy窗口中新建一个Plane,将其Scale改小一点,修改为(0.1,0.1,0.1),然后将ARShadow材质赋给它,并制作成Prefab,命名为ARPlane,删除Hierarchy窗口中的Plane,到此,接受阴影的平面制作完成。

在Unity菜单栏依次选择 Edit →Project Settings,打开Project Settings对话框,选择Quality选项卡,点击其右侧Android下的黑色小三角图标,在下拉菜单中选择Very High或者Ultra,然后选择Shadows为Hard Shadows Only,选择Shadow Projection为Close Fit。

以上就是3DCAT实时渲染云平台整理的从光照、反射、阴影三个方面让AR物体更真实的方法。项目通过AR Foundation开发好后,后续需要分享给用户试用或者进行产品演示、正式上线使用等,可以上传到3DCAT实时渲染云平台,生成应用访问URL,这样用户不论是使用何设备、什么配置的机器,都可以随时访问您的AR应用项目。用户不用再次去专门下载APP,而且每次更新迭代应用,无需手动升级应用,轻量设备,简易访问。3DCAT实时渲染云平台是一个三维应用的托管运行平台,在云端提供强大的图形实时渲染计算服务,平台配备弹性GPU资源集群,支持自动负载均衡和伸缩扩容,支持海量用户同时安全访问应用。欢迎试用,也可以体验目前已上线的一些3D应用demo:https://www.3dcat.live/

了解更多虚拟仿真相关资讯,请关注3DCAT实时渲染云平台https://www.3dcat.live/


相关阅读推荐:

【Unity】Unity中AR Foundation的使用

3DCAT实时渲染云在虚拟展会中的应用

【实时渲染】实时3D渲染如何加速汽车线上体验应用推广

如何让AR物体更真实?的更多相关文章

  1. Framer – 将视觉搞转换为更真实的动态原型

    Framer 是一个 JavaScript 框架,简化了创建现实原型,实现完整的3D效果.以一种简单,可读的和强大的方式定义交互和创建动画. 另外还有 Framer Generator  是一个桌面应 ...

  2. AR Engine毫秒级平面检测,带来更准确的呈现效果

    近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验.AR的应用场景十分广泛,涉及娱乐.社交.广告.购物.教育等领域:AR可 ...

  3. 《虚拟伙伴》AR增强现实应用开发总结

    一.概述 1.1选题背景 随着时代的发展,人们的生活节奏越来越快,生活质量也越来越高,但却在繁忙之中忽略或者忘记了关心自己成长时代最重要或者最正确的事情和道理.虽然现在有很多社交平台,如微博,微信,f ...

  4. 面试题 -AR VR MR以及CR的简单介绍

    AR 增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互 ...

  5. VR AR MR

    VR.AR和MR的区别? VR就是创造一个完全取代现实的世界,让人感觉「我怎么在这里?」 AR则是在现实世界的图像中叠加一些东西,让人感觉「哎?这里多了个本来不存在的东西」 MR则是虚拟物体完全和现实 ...

  6. VR与AR的发展趋势分析

    概要 你是否想象过与神秘的深海生物近距离接触?你是否梦想过穿戴钢铁侠那样的超先进科技装备成为超级英雄?你又是否幻想过与梦中的女神面对面的交流?这些可能在以前都只能是存在于脑海中的幻想,可是在如今有一项 ...

  7. 一文解读VR/AR/MR (转)

    1.VR=虚拟世界 VR,英文是Virtual Reality,中文是虚拟现实. VR眼镜 再细节一点来说,就是模拟一个三维的虚拟世界,在这个虚拟世界中,人们可以感受到视觉.听觉.触觉等方面的刺激. ...

  8. 对话|首席研究员童欣:从长远看,AR的应用范围远比VR广泛

    ​童欣博士现任微软亚洲研究院网络图形组首席研究员.1993年毕业于浙江大学计算机系,获工学学士学位:1996年获浙江大学计算机系硕士学位:1999年获清华大学计算机系博士学位,同年加入微软亚洲研究院. ...

  9. 用AR Engine手部骨骼跟踪能力实现虚拟手表试戴

    AR技术的落地应用,推动着电商领域的不断升级,通过增强现实为用户带来了虚拟与现实结合的AR购物体验.如AR试衣.AR试鞋.AR试妆等功能的出现让用户在手机上就能体验产品的佩戴效果,可以让用户更直观.更 ...

  10. unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇

    最近逃课做游戏,逃的有几门都要停考了,呵呵呵,百忙之中不忘超炒冷饭,感觉之前的人皮效果还是不够好,又改进了一些东西 首先上图 放大看细节 显而易见的比上次的效果要好很多,此次我把模型用3dmax进行了 ...

随机推荐

  1. flutter3+dart3聊天室|Flutter3跨平台仿微信App语音聊天/朋友圈

    全新研发flutter3+dart3+photo_view跨多端仿微信App界面聊天Flutter3-Chat. flutter3-chat基于最新跨全平台技术flutter3+dart3+mater ...

  2. DELPHI IDE 代码智能提示

  3. Python-pymysql如何向SQL语句中传参

    方法一:不传递参数 ## 方式一.不传递参数 id = "01" name = "语文" sql = "select * from course wh ...

  4. 树莓派安装Ubuntu系统

    树莓派版本: Raspberry Pi 4B 操作系统 : Ubuntu Server 20.04_x64 树莓派官网: https://www.raspberrypi.org/ ubuntu官网:  ...

  5. CF1348

    传送门 A: 一个组 \(2^n+2^1+\dots+2^{\frac{n}{2}-1}\),另一个组剩下的. B: 考虑不停循环. 如果不同的数字超过 \(k\),无解. 否则先把原序列去重,然后把 ...

  6. Transform LiveData

    查询资料的其中一个场景: 创建一个回调函数,当查询后台的时候,后台有结果了,回调对应的回调函数,并将结果保存到LiveData中. public class DataModel {     ...   ...

  7. 前端学习 node 快速入门 系列 —— 项目版权格式化

    其他章节请看: 前端学习 node 快速入门 系列 项目版权格式化 需求 替换整个项目的版权信息,替换文件为 .c 和 .h 结尾. 分析 版权信息通常都在文件开头,通过是否有 copyright 来 ...

  8. mysql 外键索引入门介绍,为什么工作中很少有人使用?

    背景 以前工作学习中,一直被告诫不要使用外键,所以也没有仔细整理过. 这里记录一下笔记. 外键 是什么? MySQL 的外键(Foreign Key)是一种关系型数据库中用于建立表与表之间关联关系的重 ...

  9. 从零开始手写缓存框架(二)redis expire 过期原理及实现

    前言 我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache. 本节,让我们来一起学习一下如何实现类似 redis 中的 expire 过期功能. 过期是一个非 ...

  10. STC系列8位MCU在Windows下的开发

    STC系列 MCS-51 8位MCU 简介 STC的8位MCU有89/90/10/11/12/15/8(A/F/G/H)这几个大系列, 都是8051衍生的8位单片机, 每个系列的特点如下 STC89系 ...