投影纹理映射--将纹理投影到CUBE墙

本文介绍了如何在Unity3D中利用投影纹理映射技术,将纹理投射到CUBE墙面上。通过在主摄像机添加投影机组件并设置合适的视锥范围,实现了将投影纹理无缝拼接到CUBE墙的效果。关键在于将物体空间顶点转换到投影机空间,利用unity_Projector矩阵进行坐标转换,并在shader中进行采样,从而完成着色。
摘要由CSDN通过智能技术生成

投影纹理映射–将纹理投影到CUBE墙

效果图:
在这里插入图片描述
效果还可以。

这个是利用投影纹理映射的原理,使用投影机将投影的纹理映射到视锥范围内的物体上的一个应用。

具体底层的原理有很多优秀的贴子,可以参考[投影纹理映射],这里讲得很详细。(https://blog.csdn.net/liu_lin_xm/article/details/4850526)

原理这里就不多做赘述了,直接说具体的实现。

在这里插入图片描述
我在主摄像机(Camera)添加了投影机组件(Projector)。
这里可以添加到任何地方,关键在元projector 的视锥范围能覆盖这里的CUBE墙。

投影机可以用他自己的材质,对其投射的范围在做一次着色。

以上这些就是搭建的环境,核心是如何给投射到的物体再进行着色。

这个材质拿到的顶点数据,是投影机投射到的所有物体的顶点,我们这里不能使用常规的方式获取到物体顶点的UV然后对纹理进行采样,这里需要划重点。
从效果图上可以看出 其实每个CUBE都只采用到投射纹理对应的一小部分,并且能够拼接出一副完整的画面。
这里需要把物体的物体空间顶点坐标转换到投影机空间,然后基于投影机空间去做采样。

Unity内部提供了float4x4 unity_Projector 物体空间转投影机空间的矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值