3D数学基础:图形与游戏开发---随笔三
多坐标系
3.1 为什么要使用多坐标系?
不同的情况下使用不同的坐标系更加方便。(定义一个坐标系是为了我们方便描述一件事情,而在不同的领域它有不同的作用,比如相对论)
3.2 一些有用的坐标系
- 世界坐标系。整个世界的坐标系(理论上的)。
- 每个物体的位置和方向。
- 摄像机的位置和方向。
- 世界中每一点的地形是什么(如山丘、建筑、湖泊等)。
- 各物体从哪里来、到哪里去(NPC的运动策略。)。
- 物体坐标系。物体本身的坐标系(每个物体都有自己的坐标系,轴必两两垂直,但并不一样会与世界坐标系轴平行)。
- 周围有需要互相作用的物体吗?(我要攻击它吗?)
- 哪个方向?在我前面吗?我左边一点?右边?(我应该向它射击还是转身就跑?)
- 摄像机坐标系。2D平面可以看到的3D场景(我们电脑能看到的3D场景)。
- 3D空间中的给定点在摄像机前方吗?
- 3D空间中的给定点在屏幕上,还是超出摄像机平截椎体的左、右、上、下边界?(平截椎体就是摄像机能观察到的金字塔区域)
- 某个物体是否在屏幕上?它的部分在,或全部不在?
- 两个物体,谁再前面?(该问题称作可见性检测)
- 惯性坐标系。与世界坐标系的轴平行,并且与物体坐标系具有相同原点的坐标系。
3.3 嵌套式坐标系
想象一下,我们每个物体都有自己的坐标系。举例子(一只羊):羊的身体,羊的头部、尾巴、鼻子、眼睛、耳朵、4条腿。身体坐标系中可以嵌套头部的坐标系,而头部的坐标系可以嵌套鼻子、眼睛、耳朵的坐标系。这样就嵌套了坐标系。从而方便了我们的描述(例如耳朵轻微晃动,只要改变耳朵的物体坐标系)。
3.4 描述坐标系
我们要提出一个重要的问题:怎样在一个坐标系中描述另一个坐标系?
其实就是将各个坐标之间原点的描述。想象一下,你已经知道世界坐标系与物体坐标系的原点。并且物体坐标系的原点坐标在世界坐标系中已经是一个已知的点,假设是这个物体坐标系的原点在世界坐标系中为(1,1,1)吧。那我们就可以通过(1,1,1)这个点对物体坐标系上每个点做四则运算,就可以知道这个物体坐标系上的任意一点在世界坐标系的描述。
3.5 坐标系转换
当然,上面的方法如果算起来,会特别麻烦。因为我们用的是物体坐标系与世界坐标系之间的转换,如果物体坐标系与世界坐标系的轴不是平行的话,那我们就需要进行很复杂的计算。
因此,我们引入了惯性坐标系,作为中介。先将物体坐标系旋转成惯性坐标系(我们知道惯性坐标系与世界坐标系平行,并且以物体坐标系作为原点),再将惯性坐标系转换成世界坐标系。
这样,我们就得到一个从物体坐标系到世界坐标系的转换。而且相当的方便,因为我们只要经过一次旋转+几次平移就可以得到我们想要的物体坐标系在世界坐标系上的描述。
3D数学基础:图形与游戏开发---随笔三相关推荐
- 3D数学基础:图形与游戏开发---随笔五
向量运算 5.1 线性代数与几何 数学中专门研究向量的分支称作线性代数. 5.2 符号约定 变量是代表未知量的占位符.本书用不同的字体来区分不同的变量: 标量,用斜体的小谢罗马或者希腊字母表示,如a. ...
- 3D数学基础:图形与游戏开发---随笔四
向量 向量是2D.3D数学研究的标准工具. 4.1 向量--数学定义 对数学家而言,向量就是一个数字列表,对程序员而言则是另一种相似的概念--数组.数学上,一个向量就是一个数组. 数学上,区分向量和标 ...
- 3D数学基础:图形与游戏开发---随笔二
笛卡尔坐标系统 笛卡尔不仅创立了解析集合,将当时完全分离的代数学和几何学联系到一起,还在回答"怎样判断某件事物是真的?"这个哲学问题上迈出了一大步,使后来的一代代哲学家能够轻松起来 ...
- 3D数学基础:图形与游戏开发---随笔一
简介 1.1 什么是3D数学 3D数学是一门和计算几何相关的学科,计算几何则是研究用数值方法解决几何问题的学科.这两门学科广泛应用于那些使用计算机来模拟3D世界的领域. 1.3 阅读本书需要的基础知识 ...
- 3d数学基础:图形和游戏开发(第2版)_游戏引擎编程需要哪些基本数学知识?
现今,想要从头写一个功能强大的3D引擎,个人的力量恐怕难以胜任,即使能力足够,时间恐怕也不允许.在这个美好的开源时代,你只需具备修改各种引擎的能力便足以满足开发游戏的各项需求.现代游戏引擎的复杂级别已 ...
- 3d数学基础图形与游戏开发第二版_游戏开发完整学习路线,都在这里了
在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的. 平台与编程语言选 ...
- 3d数学基础图形与游戏开发 英文版_1850款文字标题字幕条,AE图形预设包,logo生成神器...
2019最新1850款组文字LOGO动画预设,一键生成! 包含图形元素/字幕/logo/动画转场/背景等 所有的元素都支持AE和PR 所有元素的 颜色.位置.大小.文字.Logo等 都可以修改,包含G ...
- 3d数学基础:图形和游戏开发(第2版)_人教版五年级数学上册教学计划进度表
文末有打印资料的方法 往期回顾: 统编版五年级语文上册第1课<白鹭>视频+课件+练习 统编版五年级语文上册第2课<落花生>视频+课件+练习 统编版五年级语文上册第3课<桂 ...
- 3D Math Primer for Graphics and Game Development -- 图形与游戏开发(3D数学基础) (简介)...
3D Math Primer for Graphics and Game Development //z 2014-04-28 13:18:20 L.247'38500 BG57IV3@XCL T20 ...
最新文章
- 鸿蒙初开踏青时主要内容,袖珍世界之鸿蒙初开
- rea t插件 vscode_推荐VSCode12个比较实用的插件
- .net API跨域
- Highcharts JS去除Highcharts.com链接的方法
- 自我分析colly的robots源码
- 一个10篇一作SCI博士的走心分享----宏组学研究之“道” (完整收藏版)!!
- 2014.8.20日结
- SAP License:更改MM物料基本计量单位
- JDBC11 封装+资源配置文件管理
- C语言的考试系统,C语言考试系统.doc
- 如何给屏幕设置一个充满全屏幕的背景图片
- 设计模式---002适配模式(转载自我的老师 Alley-巷子)
- var foo = 1; (function foo() { foo = 100; console.log(foo); }()) console.log(foo);
- 从《人民的名义》看声纹识别技术在案件侦查中的应用
- php禁用session和cookies,session与cookie的区别是什么?如果客户端禁用了cookie功能,将会对session有什么影响?...
- MMORPG游戏的典型架构
- 脱壳2 (15PB pack)
- 开心网 开心网 到底哪个是开心网?
- point-wise element-wise
- win11的数字签名驱动认证关闭
热门文章
- NYOJ 837 Wythoff Game
- Ubuntu16.04下Hadoop 2.7.3的安装与配置
- 使用 JIRA 4.0 + Greenhopper 4.0 进行项目状态跟踪(转)
- python-IO多路复用,select模块
- pat 乙级1033 旧键盘打字(20)
- Java 接口小总结;
- sql server 提示无法彻底删除_复制-而无法删除数据库或重新配置发布订阅
- JavaScript学习13 JavaScript中的继承
- Android开源项目发现---ProgressBar 篇(持续更新)
- 在asp.net中控制回车键