AR技术应用 の 照片透视效果
来源:互联网 发布:svn linux登录 编辑:程序博客网 时间:2024/06/05 07:21
嘿嘿嘿、
---------------------------------------------------------------
最近在各个死宅群和技术群,
大家不约而安利了由矢吹老师的作品《ToLove》结合AR做的APP。
-----------------------
-----------------------------------------------------
制作思路:
使用AR增强现实的效果,
在识别到一整张大的原图之后,
在一样的位置出现一张一样大小的同样的彩色图片,
但识别看到的东西添加一个圆形的Mask。
-by PA
------------------------------------------------
嘿嘿,
这种看来简(shen)单(shi)好玩的手机小应用,
这种看来简(shen)单(shi)好玩的手机小应用,
深受欢迎,而且广泛流传,
想起几年前,
玩的GalGame,还是用打砖块或者鼠标移动过关的方式进行脱衣,
不禁赞叹技术在进度,时光在流逝。。。。
咳咳,
其中制作过程其实非常简单,接下来让我们自己动手做一个吧!
所需工具:电脑 配合 摄像头/手机(安卓)
制作引擎:Unity3D
SDK技术:VuforiaAR(以及各种AR技术都可以)
美术素材:黑白角色图片 and 对其上色但天气热的图片
-------------------------------------------------------
正片:
打开Unity,(VuforiaAR需要32位)
创建你的色情游戏项目,
记录你的项目名字,
我创建的就叫ShenShiAR,等下需要用到。
-----------------------------
现在需要导入AR技术的SDK包,
我这里用一个叫VuforiaAR,识别比较稳定,
方面起见,也可以使用太虚VoidAR。
我这里用一个叫VuforiaAR,识别比较稳定,
方面起见,也可以使用太虚VoidAR。
------------------------------------------------
如果使用Vuforia,
我们要注册一个的账号。
注册完后,下载其SDK,并导入Unity。
然后在Vuforia官网导航栏点击Develop,
然后按Add License Key为你的APP创建一个License。
-----------------------------------
之后输入的Application Name需要对应刚刚创建的Unity项目名字,
如我创建的是:ShenShiAR。
----------
创建完成后,便会出现你刚创建的项目,然后点击其名字,
便可以查看Key,复制Key(等下需要用)。
---------------
然后继续在Devolop中选择TargetManager,
按AddDatebase创建一个照片的库,如我的叫ShenShiJPG。
创建完成后点击ShenShiJPG,
上传一张识别用的图,即黑白图片。
------------------
上传完毕后勾选你的图片,然后Download Datebase。
把下载好的包拖进Unity Project面板的Asset里。
准备工作上面就做完了,
接下来编辑Unity。
-----------------------------------------------------------
新建一个场景(Ctrl+N),
把场景里面的东西先删掉,
然后在Project面板里的 Vuforia/Prefabs/ImageTarget 和 ARCamera 拉进场景里。
①在ARCamera里填写你刚获得的LicenseKey,
②勾选LoadDateSet 并勾选Active激活识别,
③连接摄像头。
----------------------
选择场景中的ImageTarget在面板里选择刚导入的图片,
在ImageTarget下面Create一个Plane,调节其大小至合适。
-----------------
运行一下,便可以观察AR的效果。
--------------
接下来,
在Unity添加一个层Layer:BackGround,
设置ARCamera下面的Camera的Culling Mask只勾选BackGround,
把场景找ARCamera下的Camera的BackGroundPlane的Layer设置为BackGround,
这一步为了让识别到的物体不可见。
在场景ARCamera下Create一个新的Camera,并设置其Clear Flags为Solid Color,Filed of View的值为31.7063,
在Asset里Create一个RenderTexture,并拖进新创建的Camera的Target Texture里。
新建一个UGUI Canvas设置RanderMode为Screen Space -Camera,新建一个Camera拉入其RenderCamera中,
添加一个Imaga作为眼镜框,添加眼镜框的图到SourceImage,
再建一个Image,添加作为遮罩的图片,Add Component 添加脚本Mask,取消勾选Show Mask Graphic,
在其下面添加UI - RawImage,把之前创建的RenderTexture拉入。
-------------------------------------
至此,AR透视功能基本制作完成。
官方动图似乎还加了点镜面的扭曲效果,非常真实,细节很到尾,官方好强!好绅士!
。。。。
咳咳,欢迎交流。
第一次写这么低端,而且长的攻略,
感觉,非常累。
感觉只要达到Unity入门水平,甚至新手都能一步步操作过来,
不过可能比较乱,不解之处请提出。
所以大家能感受到辛劳就回复感谢就行 :)
-------------------------------------------------
如果使用太虚,
把下载好的太虚VoidAR的SDK包解压缩,
然后把VoidAR-v0.0.9(64).unitypackage和一个补丁,
分别拉进Unity的Project面板Asset里面,
然后Unity会弹出一个小窗口,
按下Import,SDK导入就完成了。
在选择StreamingAssets目录,把你的素材图片,拖进去。
-------------
在VoidAR/Scene里,双击打开ImageDemo场景
-------------------------
接下来把场景里面的东西替换成自己的素材。
先选择其中一个ImageTarget,
然后在Inspector面板里,
把Marker(Script)中的ImageFilePath的值改成你的图片的名字,例如我的叫imoto.jpg。
成功后可以在场景看到图片被替换了。
-----------
-------------------
然后把其下面叫C001_Char的模型选中然后按Delete删掉。
对着ImageTarget右键→3D Object→创建Plane。
----------------------------
把上色后的图也拉入Asset目录下,
然后给Plane上贴图。
按R调节Plane的大小至合适
----------------------
.....
运行发现,识别的大小居然和场景中的不一样!!!
尼玛....虽然影响不大...
所以大家可能要一步步运行测试合适的大小
要是有别的方法可以解决要告诉我噢....
......
我在Vuforia里做过..
自信了就直接过来写文章了...
截图那么多张....浪费我人参....
....
接下来的步骤参考上面。
------------------------------------
最后,献上发布和源项目供参考。
应用APK下载:http://pan.baidu.com/s/1mi4GMPa
项目源文件:http://pan.baidu.com/s/1geCIpub (Unity5.0.2)
识别图,论一个会画画的程序猿
识别后的图:
------------------------------------
End
0 0
- AR技术应用 の 照片透视效果
- AR 透视头盔
- 透视效果
- 透视技术
- wphone 开发 跳转应用市场 全景透视效果
- AR技术
- AR技术应用 の 如何做一个Pokemon GO这只皮卡丘是你的吗?
- AR 应用
- 应用增强现实(Augmented Reality,AR) 技术展示产品
- 增强现实技术(AR)及扩展应用
- AR技术在魔术上的应用II
- 增强现实技术(AR)及扩展应用
- 增强现实技术(AR)及扩展应用
- 增强现实技术(AR)及扩展应用
- 盘点20款让你脑洞大开的AR技术应用
- SLAM+AR 技术与应用的一些思考
- iOS实现透视效果
- iOS实现透视效果
- 理解Fragment生命周期
- Java ConcurrentModificationException异常原因和解决方法
- G++ 版本问题
- 开启重力感应
- MySQL 通用查询日志(General Query Log)
- AR技术应用 の 照片透视效果
- 用window.dialogArguments时出现window.dialogArguments is undefined
- 协同过滤与内容过滤
- JAVA实现AES加密
- Eclipse常用快捷方式
- Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
- python多线程thread
- 在eclipse4.5中导入hadoop源码
- 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?