— 新闻中心 —
NEWS CENTRES座机:010-68706511
手机:13911980888
地址:北京市丰台区汉威国际广场二区一号楼
发布时间:2023-11-29 09:10:07 人气:
一个AR项目是如何开发的?通过上期内容相信你已经知道了AR都有哪些表现形式,那么本期来说说AR的软件部分是如何制作的?
AR程序通常分为三部分,第一是制作3d模型。第二是何何显示这个3d模型。第三是如何显示这个3d模型。相信你一定非常清楚这里面的核心在于第二和第三点。
第一步是制作3d模型,也就是我们经常说的建模,在很多人眼里觉得3d建模是最没有技术含量的工作。我经常听到甲方说:哎呀,拉倒吧,你们什么VR、AR、3d可视化不就是建模的吗?我们这技术员都会。
但真的是这样吗?,我们单独聊一期建模的技术吧。
这里简单说一下AR建模可以用3dmax、maya,高手是可以用最少的模型表面实现更精美的画面效果,能够兼顾加载速度和画面表现。而且这第一步说到的制作模型,除了3d模型之外,还包括贴图、纹理凹凸感和动画。
现在我们有了一个会动的3d模型了,任何人都可以把它拖到unity或者是UE4里,点一下发布,我们就能得到了一个手机游戏,就是这个3d模型在手机里动啊动的完全没有难度。
AR程序的第二步:何时显示这个3d模型。如果3d模型随时随地都能在手机上显示的话就不叫AR程序了。AR的特点就是用手机摄像头捕捉周围的环境,当手机找到触发信号之后才显示3d模型,比如售楼处的3d户型图,做这个项目的时候设计师是先做好了3d模型,但是隐藏起来给程序预置一张照片作为触发信号,当用户打开手机摄像头对着平面户型图扫描的时候,程序是在实时的对比,一直在找哪里的画面跟预置的图片是一样的。当摄像头找到预置图片的时候,一分析这两张图,百分之八十都一样,就是它了。于是就把第一步制作好的3d模型,从隐藏状态变成显示状态,我们就看到了。
但这样只是控制3d模型的显示和隐藏,当模型显示出来之后,它和周围的环境没有任何关系,所以还需要第三步。
第三步:如何显示这个3d模型。比如我们的手机摄像头像下,我应该看到模型的顶面,我的手机向前,我应该能看到模型的正面。如果手机在任何姿态下显示的模型都是相同的话,那就没有意思了。所以软件还要调用手机的陀螺仪,知道手机自己的姿态,从而推算出三维模型应该如何显示才是正确的。
实际上,这个姿态的判断不仅仅是陀螺仪,还有摄像头激光雷达进行交叉验证。总之我们知道手机能够判断出自己的位置和姿态就够了。你别以为程序员懂,他也只是会调用这个姿态的结果而已,于是现在这个3d模型可以根据手机的姿态不同显示出符合物理空间感的状态。
但是这样的AR软件没有纵深感,因为当实际物体出现在3d模型前面的时候,本来应该是遮挡住3d模型的,但是软件并不能够判断出有物体遮挡住了3d模型,软件甚至都不会有判断物体遮挡的这个过程。所以如果3d画面显示在所有物体前面时还好,如果有物体出现在3d模型的前面,而3d模型就遮挡住了物体,那么就会让人觉得无比违和,于是就出戏了。比如假设我后面的屏风是个3d的虚拟物体,根据空间关系判断,它应该出现在我后面,但是由于没有采集遮挡关系,这个屏风反而遮挡住了我,这就很难看了。
所以有的团队在做AR程序的时候,会把周围实际环境完整的建模出来,但是这个模型并不在程序里显现,它只是用来判断该显示的模型什么时候能看见什么时候会被遮挡,在触发3d模型显示的时候也不是用预设的照片跟摄像头的画面进行对比,而是用周围环境的3d模型跟摄像头的画面进行对比,这样操作就会让AR程序看起来更真实。
相关推荐
案例推荐