当前课程知识点:游戏程序设计 >  第三章 《《三维几何学基础》 》 >  3.4 四元数 >  3.4 四元数

返回《游戏程序设计》慕课在线视频课程列表

3.4 四元数在线视频

下一节:4.1 游戏循环概述(上)

返回《游戏程序设计》慕课在线视频列表

3.4 四元数课程教案、知识点、字幕

四元数呢

它是一个超复数

它是用通过一个十部和三个元素组成

它可以通过ijk这个方式来表示

然后unity

也提供了一个四元数的类

用来我们处理旋转

那么四元数我们在unity里面

或者是在我们游戏里面用的

主要我们可以理解为

它是一个可以表示出

沿任意轴旋转旋转的一个一个

沿任意轴旋转的一个方式

它不像刚才我们提到了欧拉角的旋转方式

因为欧拉角呢

在旋转的旋转的过程中会有很多弊端

比如著名的像那个万象解锁这种问题

就是因为我们欧拉角旋转

它可以有各种任意方向变换的一个顺序

也就是说

假设我们是一个SY自己的一个旋转

那么它可以是先X轴在Y轴

在Z轴的旋转也可以先Y轴

在X轴在Z轴

不同的旋转方式会得到不同的结果

并不能得到统一

但是四元数呢

它很好的去描述出了这个我们旋转需求

也就是说它可以避免了

像万象解锁的那种需求

那种问题万象解锁呢

也就是说

当我们一个物体

沿着各个轴进行旋转的时候

当三

三个轴的旋转角度全为九十度的时候

它不一定能达到我们预期的效果

但是我们四元数呢

它是一个沿着轴向的一个旋转

我们可以直接通过四元数定义我们的轴向

以及它的旋转角度

就可以达到我们要旋转的要求

这也是四元数可以解决

欧拉角不能解决了一些问题

四元数的乘法

和我们的矩阵乘法其实是是类似的

它也不满足交换律

也是可满足结合律

这个是一个四元数的一个推导过程

然后四元数的摸和四元数的归一化

都和那个我们刚才提到的向量是一样的

它也是对unity也会提供它相应的方法

去得到一个归一化的四元数

然后这是四元数的的旋转

四元数主要是描述了一个就像刚才我说的

四元数主要是描述了一个

旋转轴一起旋转角度

在游戏里面

59
unity这个它里面也是这么描述的

也提供了相应的方法去描述四元数的旋转

也就是说

四元数它是通过定义

它可以定义为一个一个任意一个轴

然后以以任意一个旋转角度

沿着任意一个旋转角度去旋转

而不是像欧拉角那样

它是先沿着某一个轴旋转多少角度

再沿着某一个轴继续旋转

而是直接沿着任意一个轴去旋转多少角度

四元数的差值我们分为两种

一个是线性插值

一个是球面差值

四元数的差值呢

它本身两种插值方式

得到的结果是不相同的

因为四元数的差值呢

它如果线性插值的话

我们是不保证它的长度变换的

但是球面差值是可以保证它的长度变换的

这也是两个最大的区别

四元数的差值主要我们用到四元数

大量用到四元数

在游戏中用到了骨骼动画的运算

给骨骼动画中

它的旋转是占大多数运算过程的

那么如果是简单的旋转的

如果两个骨骼动画的之间的数据差值呢

如果我们用线性插值的话就很容易引起

因为它的长度是不保证

会引起整个我们骨骼动画

在游戏中运算的一个形变

那么

四元数可以很好的通过这个球面差值

来解决这个问题

也就是说

这两个骨骼动画中两个矩阵在旋转的时候

那么他们通过它的这个

球面差值就可以保证长度的变换

也就是说

不会造成我们骨骼动画一个模型的形变

四元数这边的也给大家留一个

小一点的作业也就是说

我们在游戏中

四元数以欧拉角是可以互换的

可以说用大家可以去推导一下

四元数与欧拉角的一个转换过程

以及欧拉角到四元数的一个转换过程

游戏程序设计课程列表:

第一章 《游戏开发导论》

-1. 1什么是游戏(上)

--1.1 什么是游戏(上)

--选择题

-1.2 什么是游戏(下)

--1.2 什么是游戏(下)

--选择题

-1.3 游戏是如何开发出来的

--1.3 游戏是如何开发出来的

-1.4 游戏引擎(上)

--1.4 游戏引擎(上)

-1.5 游戏引擎(下)

--1.5 游戏引擎(下)

--单选题

-1.6 如何成为一个游戏开发者

--1.6 如何成为一个游戏开发者

--多选题

第二章 《游戏服务器概述 》

-2.1 什么是游戏服务器

--2.1 什么是游戏服务器

--单选题

-2.2 游戏服务器的和分类发展

--2.2 游戏服务器的和分类发展

--单选题

-2.3 核心技术和实现难点

--2.3 核心技术和实现难点

--单选题

-2.4 设计原理与方法论

--2.4 设计原理与方法论

--单选题

第三章 《《三维几何学基础》 》

-3.1 三维坐标系统

--3.1 三维坐标系统

--多选题

-3.2 向量与运算

--3.2 向量与运算

--单选题

-3.3 矩阵与线性变换

--3.3 矩阵与线性变换

--双选题

-3.4 四元数

--3.4 四元数

--多选题

第四章 《游戏循环及实时模拟》

-4.1 游戏循环概述(上)

--4.1 游戏循环概述(上)

--多选题

-4.2 游戏循环概述(下)

--4.2 游戏循环概述(下)

--单选题

-4.3 《无尽之路》的实现

--4.3 《无尽之路》的实现

--单选题

-4.4 支撑游戏的功能

--4.4 支撑游戏的功能

--选择题

-4.5 支撑游戏的机制与系统

--4.5 支撑游戏的机制与系统

--多选题

第五章 《随机数在游戏中的应用》

-5.1 基本介绍

--5.1 基本介绍

--单选题

-5.2 随机数生成器

--5.2 随机数生成器

--单选题

-5.3 随机数分布与应用

--5.3 随机数分布与应用

--单选题

第六章 《游戏性系统》

-6.1 什么是游戏玩法开发

--6.1 什么是游戏玩法开发

--单选题

-6.2 建立愿景 Vision

--6.2 建立愿景 Vision

--单选题

-6.3 划定边界 Scope

--6.3 划定边界 Scope

-6.4 迭代 Iteration

--6.4 迭代 Iteration

--单选题

-6.5 迭代 Iteration+抛光Polish

--6.5 迭代 Iteration+抛光Polish

--单选题

第七章 《实时图形渲染管道》

-7.1实时图形渲染管道 宏观渲染系统

--7.1实时图形渲染管道 宏观渲染系统

--单选题

-7.2实时图形渲染管道 应用阶段

--7.2实时图形渲染管道 应用阶段

--单选题

-7.3实时图形渲染管道 几何阶段

--7.3实时图形渲染管道 几何阶段

--单选题

-7.4实时图形渲染管道 光栅化阶段

--7.4实时图形渲染管道 光栅化阶段

--单选题

-7.5实时图形渲染管道 总结 参考

--7.5实时图形渲染管道 总结 参考

第八章 《材质着色与光照》

-8.1 物理回顾1

--8.1 物理回顾1

--单选题

-8.2 物理回顾2

--8.2 物理回顾2

--单选题

-8.3 材质 1

--8.3 材质 1

-8.4 材质 2

--8.4 材质 2

-8.5 材质3

--8.5 材质3

-8.6局部光照

--8.6局部光照

--单选题

-8.7 全局光照

--8.7 全局光照

--单选题

第九章 《游戏动画》

-9.1 动画介绍

--9.1 动画介绍

--多选题

-9.2 游戏动画介绍

--9.2 游戏动画介绍

-9.3 动画技术类型

--9.3 动画技术类型

--多选题

-9.4 骨骼蒙皮动画

--9.4 骨骼蒙皮动画

--多选题

-9.5 动画流水线

--9.5 动画流水线

--多选题

-9.6 动画前沿趋势

--9.6 动画前沿趋势

--多选题

第十章 《网络同步技术》

-10.1 .基本概念

--10.1 .基本概念

--多选题

-10.2 设计目标

--10.2 设计目标

--多选题

-10.3 传输数据分析

--10.3 传输数据分析

--多选题

-10.4 常用同步方案 1

--10.4 常用同步方案 1

-10.4 常用同步方案 2

--10.4 常用同步方案 2

-10.4 常用同步方案 3

--10.4 常用同步方案 3

-10.4 常用同步方案 4

--10.4 常用同步方案 4

--多选题

-10.5 方案对比

--10.5 方案对比

--多选题

第十一章 《游戏常用几何学》

-11.1 基本图元

--11.1 基本图元

--单选题

-11.2 图元距离(上)

--11.2 图元距离(上)

--单选题

-11.2 图元距离(下)

--11.2 图元距离(下)

--单选题

-11.3 图元相交测试+ 其他几何方法

--11.3 图元相交测试+ 其他几何方法

--单选题

第十二章 《游戏物理模拟》

-12.1 著名物理引擎介绍

--12.1 著名物理引擎介绍

--单选题

-12.2 物理引擎原理(上)

--12.2 物理引擎原理(上)

--单选题

-12.3 物理引擎原理(下)

--12.3 物理引擎原理(下)

--单选题

-12.4 游戏中的物理体

--12.4 游戏中的物理体

--单选题

-12.5 物理引擎使用入门

--12.5 物理引擎使用入门

--单选题

第十三章 《开发工具 》

-13.1开发语言

--13.1开发语言

--单选题

-13.2 开发环境

--13.2 开发环境

--单选题

-13.3 腾讯开发组件介绍

--13.3 腾讯开发组件介绍

--单选题

-13.4 网络通信+业务框架介绍

--13.4 网络通信+业务框架介绍

--多选题

第十四章 《分布式系统设计 》

-14.1 进程间通信(上)

--14.1 进程间通信(上)

-14.2 进程间通信(下)

--14.2 进程间通信(下)

-14.3 通信格式

--14.3 通信格式

-14.4 并发模型

--14.4 并发模型

-14.5 超时处理

--14.5 超时处理

-14.6 大系统小做(上)

--14.6 大系统小做(上)

--多选题

-14.7 大系统小做(下)

--14.7 大系统小做(下)

-14.8 架构层面的技术支持(上)

--14.8 架构层面的技术支持(上)

--单选题

-14.9 架构层面的技术支持(下)

--14.9 架构层面的技术支持(下)

-14.10 分布系统的关键能力

--14.10 分布系统的关键能力

--多选题

第十五章 《游戏人工智能》

-15.1 游戏人工智能综述

--15.1 游戏人工智能综述

-15.2 人工智能在游戏中主要方法 上

--15.2 人工智能在游戏中主要方法 上

--多选题

-15.3人工智能在游戏中主要方法 (下)

--15.3人工智能在游戏中主要方法 (下)

-15.4 人工智能在游戏制作中的应用领域1

--15.4 人工智能在游戏制作中的应用领域1

--多选题

-15.5 人工智能在游戏制作中的应用领域2

--15.5 人工智能在游戏制作中的应用领域2

-15.6 人工智能在游戏制作中的应用领域3

--15.6 人工智能在游戏制作中的应用领域3

--多选题

-15.7 人工智能在游戏运营中的应用实践(上)

--15.7 人工智能在游戏运营中的应用实践(上)

-15.8 人工智能在游戏运营中的应用实践(下)

--15.8 人工智能在游戏运营中的应用实践(下)

--多选题

第十六章 《游戏支撑系统 》

-16.1 游戏支撑系统(1)

--16.1 游戏支撑系统(1)

--单选题

-16.2 游戏支撑系统(2)

--16.2 游戏支撑系统(2)

--单选题

-16.3 游戏支撑系统(3)

--16.3 游戏支撑系统(3)

--单选题

-16.4 游戏支撑系统(4)

--16.4 游戏支撑系统(4)

--单选题

-16.5 游戏支撑系统(5)

--16.5 游戏支撑系统(5)

第十七章 《游戏逻辑服务器和反外挂》

-17.1 游戏逻辑服务器(上)

--17.1 游戏逻辑服务器(上)

--单选题

-17.1 游戏逻辑服务器(下)

--17.1 游戏逻辑服务器(下)

-17.2 外挂与反外挂(上)

--17.2 外挂与反外挂(上)

-17.2 外挂与反外挂(下)

--17.2 外挂与反外挂(下)

--多选题

第十八章 《运行环境和运维 》

-18.1运行环境

--18.1运行环境

--多选题

-18.2物理部署

--18.2物理部署

--多选题

-18.3系统的可运维性

--18.3系统的可运维性

--多选题

-18.4运维案列分析

--18.4运维案列分析

--多选题

3.4 四元数笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。