第一人称视角的一种解决方案
a模型在以b模型为基准点,实现b模型旋转,其a模型还是会在a模型原来相对的一个点上。比如说,a模型在b模型左上方的某个位置,如果b模型绕摸个轴旋转了某个度数,其a模型还是相对与b模型在左上方某个位置。一次类推,可以位移缩放等。
现在就来简单的介绍一下这中情况在Android开发中的实现的具体的策略。
1.OpenGL ES在定点着色器中有一个步骤是模型的顶点需要左乘MVP矩阵,这一步骤中涉及到了三种坐标系的转换,从模型坐标系-->摄像机坐标系--->投影坐标系。从中可以看到矩阵的作用是将某个顶点所在的坐标系转化到另外一个坐标系。那么我们的解决上面的这个问题的思路就是从这里来的。
2.我们知道,在创建一个模型的时候,我们人为的规定这个模型的某个地方为坐标系原点,然后我们计算这个模型上的各个顶点的位置,并且按照索引法或者三角形绘制的方法绘制出来这个模型,显示到屏幕上。不知道有没有人注意到一点,构建一个模型的时候,其模型上某个顶点的位置是相对与自己规定的某个原点的,这个原点在这个模型坐标系中其是0,0,0,而在世界坐标系中,其是有一个坐标位置的x、y、z,我们初始化一个矩阵来构建一个此模型的矩阵,矩阵左乘这个顶点的其次坐标,可以看到是在构造模型时顶点的坐标来加上此原点在世界坐标系中的坐标。看懂的人现在应该就有了解决上面问题的一个大的轮廓了。看不明白的,可以多看几遍上面所说的理论。
3. 我们不妨把a模型所在的位置当作b模型上的一个顶点,其具体操作便是,我们使用a模型在世界坐标系下的坐标位置减去b模型在世界坐标系下的坐标位置(特殊的说明一下,在OpenGL中如果不加特殊的说明,我们自己设定的某个模型的位置的数据全部都是世界坐标系的坐标),现在我们得到的这个结果是上面步骤二中所说的某个顶点相对与其自身模型坐标系的坐标点,然后我们以b模型为ab混合模型的圆心初始化一个矩阵,并把位移、缩放,旋转等信息存放到矩阵中(注意,其位移、缩放、旋转等信息全部都是b模型的),然后我们用这个矩阵左乘刚才计算出来的a相对与b的坐标(齐次一下),然后得到最终的结果便是,b模型旋转,位移,缩放了多少以后,a相对与b模型还在b没有变化的位置。
总结一下,这种思路是根据OpenGL ES坐标系转化而来的一种组装多个模型为一个模型的一种算法,当然这种算法也可以实现将摄像机绑定到人的脑袋上实现第一人称视角,各位读者可以根据需要来判定是否用这种算法。
转载于:https://www.cnblogs.com/SmileSFL/p/5791007.html
第一人称视角的一种解决方案相关推荐
- 在场景中加入第一人称视角运行后一直往下掉的解决方案
问题描述 在场景中加入第一人称视角后,点击运行游戏,你会发觉自己一直在往下掉,像这样 解决方式 点击第一人称视角,在右侧的Inspector面板中找到关于第一人称视角的脚本 将Gravity Mult ...
- 7999元大疆最新无人机,支持第一人称视角极速拍摄,直接起飞
穿越山口.过火圈,体验2秒加速到100公里的急速飞行: 可以从第一视角体验拍摄效果,"就像是开启了第三只眼": 而且,只需要靠手部动作"单手操作",就能操控: ...
- 7999元大疆最新无人机,支持第一人称视角极速拍摄,网友:不是航拍,是直接起飞...
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 穿越山口.过火圈,体验2秒加速到100公里的急速飞行: 可以从第一视角体验拍摄效果,"就像是开启了第三只眼": 而且,只 ...
- ThingJS平台制作第一人称视角下的巡更效果
今天想要做一个类似巡更的过程,就像是在学校保安巡更,小区保安巡更一样.巡更需要用到相应的场景,比如说:园区.学校.超市以及工厂等等,然后需要规划好路线也就是巡更的路线,并且视角要跟随路线来变换,从而达 ...
- 关于Unity 3D第一人称视角移动时相机抖动的问题
Unity 3D中第一人称视角Camera相机抖动的原因及解决方法 文章目录 前言 问题反思 解决方法 错误代码 修改后数据 总结扩展 前言 在使用Unity自制第一人称FPS游戏时,场景运行时鼠标移 ...
- arduino 操纵杆_用Arduino做一台FPV(第一人称视角)遥控履带车
这次和大家分享的这个项目结合了3D打印,Arduino和FPV(第一人称视角)相机的相关知识. 非常适合有兴趣制造自己的RC履带车,或者只是想使用3D打印,Arduino和FPV进行创造的伙伴们. 步 ...
- 【游戏开发实战】Unity手游第一人称视角,双摇杆控制,FPS射击游戏Demo(教程 | 含Demo工程源码)
文章目录 一.前言 二.实现方案 1.无主之地,第一人称视角 2.我之前做的摇杆控制 3.第一人称视角 + 摇杆控制 三.开始实战 1.资源获取:Unity AssetStore 2.Low Poly ...
- 设计一个高性能三维渲染服务器,第一人称视角三维实景漫游系统渲染流水线架构研究.pdf...
文档介绍: 同济大学 硕士学位论文 第一人称视角三维实景漫游系统渲染流水线架构研究 姓名:张岩 申请学位级别:硕士 专业:结构工程 指导教师:谢步瀛 20040301 关键词摘要计算机辅助三维实景漫游 ...
- Unity3D 人称设置(第一人称视角、第三人称视角)
设置第一人称视角 1.把物体的坐标和摄像机的坐标设置成一样的,这样摄像机就在物体内部,就是第一人称的视角. 2.把摄像机拖拽进物体对象内,摄像机变成物体的子对象,这样摄像机就能跟着物体一起移动. 设置 ...
最新文章
- php限定名称写法,php命名空间:非限定名称、限定名称、完全限定名称实例详解...
- 程序员下班不关电脑? | 每日趣闻
- 【PP操作手册】成品入库和订单报工
- Java使用继承的语法是,Java使用继承
- asp.net中让GridView加上垂直流动条并让标头不动
- [UI] 精美UI界面欣赏[8]
- java重定向并保持同一个会话_当会话在Java Web应用程序中过期时,如何重定向到登录页面?...
- 中英文对照 —— 生物学基本概念
- python编程入门经典-Python编程入门经典PDF文档免费下载
- Python编写微信打飞机小游戏(六)
- 仿网易评论盖楼的留言板插件demo
- Java学习手册:大疆创新2020届校园招聘——软件类岗位B卷题二
- 英飞凌TC397移植FreeRTOS
- 计算机应用基础测试题的答案2015,在线测试卷--计算机应用基础(题目+答案)
- Windows系统怎么查看电脑操作系统位数
- 从视网膜到视皮层——视觉系统知多少
- BUU_re_[ACTF新生赛2020]rome
- 天创速盈带您速读:怎么提升拼多多关键词综合排名?方案如下
- 湖南湘江树图区块链创新中心暨区块链底层技术及应用湖南省重点实验室揭幕仪式...
- 员工信息管理系统(JavaWeb结课项目)
热门文章
- python处理时间加减
- ASP.NET生命周期详解(转)
- 十大经典排序算法动画与解析
- 【正一专栏】齐达内能熬过2018年的春天吗?
- 【Python学习系列二】Python默认编码和Eclipse环境的冲突问题
- git 裁切_图片居中裁切.html
- 16.16. 部分排序
- 蛋疼的配置go opengl的记录 running gcc failed: exit status 1 in golang in windows
- jquery rotate.js
- npm修改淘宝镜像飞速下载,npm install过程速度优化,npm删除镜像恢复默认