VR狙击枪望远镜的制作方法(镜面处理及多屏投射方法)
来源:互联网 发布:预约学车软件 编辑:程序博客网 时间:2024/04/30 18:09
最近在学习VR Vive,今天研究了一下一些狙击的小游戏,发现现在普遍的狙击类的游戏都是通过鼠标或者键盘点击来获取瞄准镜,这个思路和VR是不符的。在VR中,应当和现实一样,通过狙击枪的望远镜进行瞄准。于是,我进行了一些研究。
我在网上查了不少Unity放大镜、望远镜等等的制作方法,发现都是通过改变摄像机的位置或者改变Camera中Projection下的参数来改变屏幕的视野。但是这些在VR中实现都有各种各样的缺点,会改变整个屏幕的视野而不是我们想要的区域的放大,或者可能产生穿透物体的情况。
这里我采用双摄像机的做法。
首先在望远镜前段Create一个新的Camera,用于获取放大后的区域的视野,改小Field of View的值,减小视野范围,屏幕大小不变,得到放大物体、“望远”的效果。
然后新建一个RenderTexture,用于获取上面Camera的的图像,得到放大后的画面。方法是将RenderTexture拖到Camera的Target Texture中。
最后将RenderTexture制作成一个材质球,在望远镜前端Create一个Plane,并使用该材质球作为材质,改变Plane的大小和方向,使之与望远镜更切合。
至此,VR望远镜就制作成功了,在VR游戏运行过程中,还可以通过修改Field of View的值来改变放大倍数。关于瞄准精度,可以通过在Plane上增加额外的贴纸,或者使用射线方法制作红外线瞄准等方法解决。
我在网上查了不少Unity放大镜、望远镜等等的制作方法,发现都是通过改变摄像机的位置或者改变Camera中Projection下的参数来改变屏幕的视野。但是这些在VR中实现都有各种各样的缺点,会改变整个屏幕的视野而不是我们想要的区域的放大,或者可能产生穿透物体的情况。
这里我采用双摄像机的做法。
首先在望远镜前段Create一个新的Camera,用于获取放大后的区域的视野,改小Field of View的值,减小视野范围,屏幕大小不变,得到放大物体、“望远”的效果。
然后新建一个RenderTexture,用于获取上面Camera的的图像,得到放大后的画面。方法是将RenderTexture拖到Camera的Target Texture中。
最后将RenderTexture制作成一个材质球,在望远镜前端Create一个Plane,并使用该材质球作为材质,改变Plane的大小和方向,使之与望远镜更切合。
至此,VR望远镜就制作成功了,在VR游戏运行过程中,还可以通过修改Field of View的值来改变放大倍数。关于瞄准精度,可以通过在Plane上增加额外的贴纸,或者使用射线方法制作红外线瞄准等方法解决。
阅读全文
0 0
- VR狙击枪望远镜的制作方法(镜面处理及多屏投射方法)
- “狙击波”病毒预防及处理办法
- 浅谈图片投射方法的应用
- 处理VR透镜畸变的三种方法
- 天文爱好者的望远镜
- 关于望远镜的视角
- VR SelectROI的实现方法(2)
- Open War I: 野王复活与视野,望远镜视野,近距离射击,远程狙击
- 一种基于手机网络共享服务的网络连接的方法及手机的制作方法
- 光棍节 要吃 光棍面 《光棍面的制作方法》
- [极品狙击枪!
- 狙击枪一
- Unity 狙击枪开镜
- 观鸟望远镜的选择
- Unity狙击枪的视野放大和缩小
- 明式家具面的处理方法
- 手持望远镜-基本指标-辨识方法
- 奇迹般的狙击英雄
- 类似FaceU贴纸功能的快速实现:AiyaEffects项目求Star
- 新的开始
- 变量与字符串的连接
- 了解一点浏览器的工作流程
- Nginx连接Memcached
- VR狙击枪望远镜的制作方法(镜面处理及多屏投射方法)
- 大一
- 135. Candy
- SVG使用简介
- cl.exe和link.exe 命令参数详解
- NVIDIA Jetson TX1 系列开发教程之三:Nsight Eclipse Edition基础
- jQuery总结
- 四、TCP粘包与拆包
- UIView的bounds属性小记