Unity 矩阵简介

news2024/11/25 18:34:06

前言:与向量一样,矩阵也是3D数学的基础。要正确进行物体的位移、旋转和缩放变换,就必须要用到矩阵。

3D游戏中的向量一般只有3个维度,但矩阵要使用4×4矩阵,主要原因你是要用矩阵实现平移,3×3矩阵是不够的。4×4矩阵是能够进行所有常用变换的最小矩阵


常用矩阵介绍

由于矩阵算法的问题涉及面很广,本文只展示单独的平移、旋转和缩放矩阵,让小伙伴们对矩阵有一个直观的认识,消除陌生感

1.平移矩阵

向量v乘以上述向量 ,相当于让向量v的x、y、z分量分别变化为最后一行的xyz

 2.旋转矩阵

 此矩阵可以让向量沿着x轴旋转α角

3.缩放矩阵

 

 缩放矩阵可以对向量的各个分量进行缩放,向量v与上述矩阵相乘后,其三个分量分别缩放上图中的x、y、z倍


矩阵变换的最强大的地方在于,它可以通过矩阵乘法进行组合,组合以后通过一个矩阵就可以表示一组连续的变换操作。假设有3个矩阵S、R、T分别进行缩放、旋转、位移操作,三者相乘得到了M矩阵。那么有:vSRT=vM

虽然矩阵功能强大,但由于其使用有一定门槛,因此Unity封装了一些矩阵和变换矩阵,用户可以直接使用。旋转相关的问题还可以用四元数(Quaternion)来解决,进一步降低了直接操作矩阵的必要性

齐次坐标

在3D数学中,齐次坐标就是将原本的三维向量(x,y,z)用四维向量(x,y,z,w)来表示

引入齐次坐标有以下目的:

  • 更好地区分坐标点和向量。在三维空间中,(x,y,z)既可以表示一个点,也可以表示一个向量。如果采用齐次坐标,则可以使用(x,y,z,1)代表坐标点,而用(x,y,z,0)代表向量。
  • 统一用矩阵乘法表示平移、旋转和缩放变换。3×3矩阵可以用于表示旋转和缩放矩阵,但无法表示平移。用4×4矩阵就可以表示所有的常常用变换
  • 齐次坐标是计算机图形学中的一个非常重要的概念,但在游戏逻辑开发中很少考虑齐次坐标的问题,只在处理渲染问题或编写着色器时会用到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++类和对象下

专栏:C/C 个人主页:HaiFan. 专栏简介:本章为大家带来C类和对象相关内容。 类和对象下 类的默认成员函数构造函数析构函数拷贝构造函数运算符重载 const成员再谈构造函数构造函数体赋值初始值列表 explicit关键字static成员友元内部类匿名对象…

【MySQL】表的操作

目录 一.使用Cmd命令执行操作 1.使用(mysql -uroot -p)命令进入数据库 2.创建一个角色表用于操作(创建表之前先使用数据库) 3.查看表 4.插入数据 5.查看表中内容 6.修改表 1.修改表名 2.修改字段名 3.修改字段的数据类型 ALTER TABL…

Vue3-黑马(十一)

目录: (1)vue3-router-布局和菜单 (2)vue3-进阶-router-图标二次封装-单文件组件 (3)vue3-进阶-router-图标的二次封装-函数式组件 (1)vue3-router-布局和菜单 主页做…

收藏:如何一步步成为技术领域专家

经常有人问我,为什么有的人工作10年仍然平台无奇,而有的人只用3年时间,就已经脱颖而出,成绩斐然。我说,是呀,有些参加工作多年却仍然只会复制粘贴简单业务代码,有些人在大学就写出Linux操作系统…

英文论文(sci)解读复现【NO.9】基于注意机制的葡萄叶片病害检测

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

(免费分享)基于微信小程序的旅游系统(带文档)

随着互联网的趋势的到来,各行各业都在考虑利用互联网将自己的信息推广出去,最好方式就是建立自己的平台信息,并对其进行管理,随着现在智能手机的普及,人们对于智能手机里面的应用旅游服务软件也在不断的使用&#xff0…

vue-8:Vuex状态管理模式库 + map辅助函数简写

为什么存:存仓库的多组件可以数据共享 核心api this.$store 每个组件都可以获取$store this.$store.commit("同步方法名", 参数) 调用同步方法,修改store中的数据 this.$store.dispatch("异步方法名", 参数) 调用异步方法&#x…

分布式数据库集成解决方案

分布式数据库集成解决方案 分析访问部署扩展.1 以界面方式创建数据库(采用DBCA) # 背景 由于公司业务的发展,要求在其它三个城市设立货仓,处理发货业务。公司本部运行着一套用Sybase数据库的MIS系统可以实现发货,该系统…

【多线程】线程池

目录 线程池是什么 标准库中的线程池 描述线程池工作原理 为什么不推荐使用系统自带的线程池 实现线程池 线程池是什么 线程池就是在池子里放的线程本身,当程序启动时就创建出若干个线程,如果有任务就处理,没有任务就阻塞等待。 想象这…

hive集成hbase Bytes.toByte处理字段 隐射为null乱码 加#b为0问题

解决hive集成hbase Bytes.toByte处理字段 隐射为null乱码 为0问题 错误例子(一) create external table bigdata_student(id string,name string,age int )stored by org.apache.hadoop.hive.hbase.HBaseStorageHandler with SERDEPROPERTIES ("h…

内网渗透(七十二)之域权限维持之伪造域控

伪造域控 2022年1月10日,国外安全研究员Kaido发文称发现了一种新的伪造域控方式,安全研究员只需要新建一个机器账户,然后修改机器账户的UserAccountControl属性为8192。活动目录就会认为这个机器账户就是域控,然后就可以使用这个新建的机器账户进行DCSync操作了。由于修改…

系统开发与运行

系统开发与运行 系统分析与设计 需求分析 需求工程 结构化分析与设计 测试基础知识 系统运行与维护 软件架构介绍 系统分析概述 系统分析是一种问题求解技术,它将一个系统分解成各个组成部分, 目的是研究各个部分如何工作、交互,以实现其系统目标…

Android系统启动全流程分析

当我们买了一个手机或者平板,按下电源键的那一刻,到进入Launcher,选择我们想要使用的某个App进入,这个过程中,系统到底在做了什么事,伙伴们有仔细的研究过吗?可能对于Framework这块晦涩难懂的专…

数据流畅驰骋:探秘Logstash在大数据领域的卓越表现【上进小菜猪大数据系列】

上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。 摘要:Logstash是大数据领域中常用的数据处理引擎,能够高效地采集、转换和输出数据。本文将深入介绍Logstash的基本概念、工作原理和常见应用场景&#xff0…

科学计算库-Pandas随笔【及网络隐私的方法与策略闲谈】

文章目录 8.2、pandas8.2.1、为什么用 pandas ?8.2.2、pandas Series 类型8.2.3、pandas 自定义索引8.2.4、pandas 如何判断数据缺失?8.2.5、pandas DataFrame 类型8.2.6、pandas 筛选8.2.7、pandas 重新索引8.2.8、pandas 算数运算和数据对齐8.2.9、pan…

linux 内核开启调试选项

前言 嵌入式 linux 经常要编译 linux 内核,默认情况下编译出的内核镜像是不带调试信息的,这样,当内核 crash 打印 PC 指针和堆栈信息时,我们需要反汇编来确认出错位置,不直观。 如果内核开启了调试选项,我…

控制系统中的闭环带宽

控制系统中的闭环带宽是指反馈控制系统中控制器输出与被控对象输入之间的频率范围。具体来说,闭环带宽是在稳定性和响应速度之间做出的折衷,越高的闭环带宽通常意味着更快的响应速度,但也可能导致系统变得不稳定。 在实际应用中,…

HTML <base> 标签

实例 <head> <base href="http://www.w3school.com.cn/i/" /> <base target="_blank" /> </head><body> <img src="eg_smile.gif" /> <a href="http://www.w3school.com.cn">W3School<…

JAVA常用ApI - Object和Objects

文章目录 目录 文章目录 前言 一 .Object是什么&#xff1f; 二 .Object的常用方法 1.tostring 1.1 返回值 1.2 重写toString方法 3.clone(克隆) 1.克隆接口 三.Objects 总结 前言 大家好,我是最爱吃兽奶,今天给大家讲一下java中的object和object的工具类objects 那…

泰裤辣,可以利用AI测测Vue知识的掌握程度。

以下是一些常见的Vue面试题&#xff1a; 可以先试着回答&#xff0c;以下是参考答案。 1. 什么是Vue&#xff0c;它的优点是什么&#xff1f; Vue是一套用于构建用户界面的渐进式JavaScript框架&#xff0c;它以简洁的API和响应式数据绑定的特性来大大简化了前端开发过程。Vue…