AR捡取纹理功能实现 colARmix&涂涂乐

1 准备工作,对于AR开发人员这个都是废话

a)        确定开发环境Unity(32位)+Vuforia(vuforia现在暂时不支持unity64的编辑)            
b)        构建工程,创建场景

2 注册用于图画的线框标识图,作为识别对象,在三维制作软件(3dsMax、maya等)里面把线框图作为纹理赋给你的增强对象

3 获取ImageTarget四个角点,利用Camera的函数WorldToViewportPoint从世界坐标转换到视口坐标,加以判断,目的就是做到ImageTarget全部在视口内。

如果是NGUI,NGUI使用自己独立的正交摄像机,转换步骤如下: 

1. 使用透视摄像机把世界坐标转换到屏幕坐标
        Vector3 pos = Camera.main.WorldToScreenPoint(worldPos);
        pos.z = 0f;   //z一定要为0.

        2. 使用UI摄像机转换到NGUI的世界坐标
        Vector3 pos2 = UICamera.currentCamera.ScreenToWorldPoint(pos);

        3. 赋值给NGUI控件
        temp.transform.position = pos2; //temp为NGUI控件.

4 保证识别对象全部显示在视口内之后,利用Vuforia API提供的函数GetCameraImage()提取运行时图片,具体做法
见:https://developer.vuforia.com/forum/faq/unity-how-can-i-reset-frame-format-scene-reload

5 这里得到的图片就是手机屏幕看到的,里面应确保ImageTarget全部显示在视野内,获取图片的同时,确定ImageTarget四个角点在图片中的位置,把得到的图片数据以像素的形式保存到颜色数组(Color32[])中

6 写一个图像展开(就是图形图像学里面的一些变换)算法,就是根据ImageTarget四个角点在图片中的位置,获取颜色数据中的有效像素点,根据Imagetarget纹理大小,新创建一个Texture2D,以利用算法得到ImageTarget时时纹理,用什么算法具体自己研究,不在这里公开

7 把纹理替换掉增强对象上的纹理即可。


【个人广告】
希望大家可以支持我的个人微信号“小游戏情报局

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耳朵里有只风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值