找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 211|回复: 13

[其他] 动态映射屏幕四边形到UV空间

[复制链接]

该用户从未签到

2

主题

14

帖子

5

积分

LV.1

Rank: 1

积分
5
QQ
发表于 2016-5-24 08:53:33 | 显示全部楼层 |阅读模式

</b>






本身在学Shader
今朝在找各类后果来实现练手
然后看到了这个

点击查看原图

点击查看原图



剖析后,感到焦点技巧就是把模子正常的UV映射到屏幕空间上的一个不规矩四边形上就可以了
大要是

点击查看原图

点击查看原图


(渣画风请疏忽)



1、起首当然要获得屏幕空间里面辨认图的坐标,妄想偷懒的我,直接放了四个Empty GameObject在辨认图的四个角,然后经由过程Camera.WorldToViewportPoint获得四个点在屏幕空间的坐标,然后把它转换成UV(屏幕空间xy都是-1~1,UV空间是0~1,并且dx和opengl的rendertexture似乎uv的v标的目的有所分歧),趁便把深度保留起来之后有效,所以每个点就是三个数字(u,v,depth)。把这四个点传到shader的p0~p3中
2、因为四边形无法经由过程简略的变换酿成别的一个四边形,所以我决议把UV空间以(x+y=1)为分隔线划成两个三角形来分辨对应屏幕空间不规矩四边形。
3、此刻题目酿成了三角形三个极点分辨都有一个uv值,求出三角形的中心某点由这三点插值出来的uv值。可以经由过程三角形内部线性插值方式来盘算。
4、直接这么盘算今后获得的UV会有相似于透视题目,如下图

点击查看原图

点击查看原图


5、焦点原因是屏幕空间算出来的UV是与透视后的屏幕坐标成线性关系,而我们此刻是要反推算透视前的UV坐标,所以透视前的UV坐标和屏幕空间算出来的UV两个都乘以深度z今后成线性关系(与正常软衬着做UV映射所发生的透视修改恰好相反)。修改后的UV如下

点击查看原图

点击查看原图


6、那么获得了准确的UV今后,就在Shader上把模子正常的UV映射曩昔就好。下图为模子加辨认图(手头没有其他模子,只好用球体来表现)

点击查看原图

点击查看原图


7、具体涂鸦后果(后面是电脑打开绘图东西然后用刷子刷辨认图,球就当做是模子了)

点击查看原图

点击查看原图





代码地址:https://github.com/Tangoyzx/PaintModel

(工程是5.2.1p4版本的,4.6似乎都没后果,看看能不克不及本身贯通Scene然后搬曩昔吧……)
(有些人会看到CUBE上的贴图是个黑底白字的什么CAMERA VIDEO,起首要包管你有摄像头,然后一般是由于BackgroundPlane的Texture不会顿时设置成摄像头的图像,我底本是设了30帧今后再往拿该Texture,不可的话看看本身改成点击拿Texture吧)

(大要发明移动端错乱的题目了,我小我用高通宣布iOS,发明BackgroundPlane的Texture在大要uv年夜于0.66之后的地位会变黑,也就是摄像头的内容并没有展满Texture,没有找到官方的获取摄像头满布景的Texture,也不知道这个题目在分歧平台分歧机种上会不会有分歧,今朝没有想到太好的解决方式……)



(EasyAR此刻官方Unity例子有更简略的实现计划,大师往看阿谁吧)

该用户从未签到

0

主题

5

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2016-5-24 20:09:35 | 显示全部楼层
帮帮顶顶!!

该用户从未签到

1

主题

6

帖子

6

积分

LV.1

Rank: 1

积分
6
QQ
发表于 2016-5-24 22:25:20 | 显示全部楼层
真是 收益 匪浅

该用户从未签到

0

主题

5

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2016-5-25 01:57:53 | 显示全部楼层
写的真的很不错

该用户从未签到

0

主题

5

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2016-5-25 05:50:46 | 显示全部楼层
小手一抖,钱钱到手!

该用户从未签到

0

主题

5

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2016-5-25 09:41:21 | 显示全部楼层
不错不错,楼主您辛苦了。。。

该用户从未签到

0

主题

10

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2016-5-25 12:46:47 | 显示全部楼层
路过,支持一下啦

该用户从未签到

5

主题

22

帖子

15

积分

LV.1

Rank: 1

积分
15
QQ
发表于 2017-5-19 06:49:10 | 显示全部楼层
增强现实,增强现实,增强现实。重要的事情说三遍

该用户从未签到

0

主题

5

帖子

0

积分

LV.1

Rank: 1

积分
0
QQ
发表于 2017-5-23 06:41:47 | 显示全部楼层
楼主写的很不错,关于AR的知识受教了

该用户从未签到

2

主题

30

帖子

6

积分

LV.1

Rank: 1

积分
6
QQ
发表于 2017-7-10 03:37:54 | 显示全部楼层
增强现实希望发展越来越好
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表