3D游戏部分基础数学知识整理笔记1

3D游戏中的数学基础 一般的3D游戏都包括有摄像头,投影,粒子特效,动画特效,光照等技术,这里的技术大多涉及到坐标系的变换,本文就主要应用的数学知识作一个归纳总结。 0. 为什么要有转换(transform) 所谓的3D游戏并不是真实的3D游戏,其实质是将真实世界中的3D投影(projection)到2D屏幕,在投影到视网膜,被人类所感知。将3D对象投射到2D,就需要用到transform。 1. 阅读详情

详细内容参看《3D游戏编程大师技巧》或更专业的数学书籍。
1.很多图形算法都以这样的方式进行优化:在第一象限中解决问题,根据对称性将解决方案反射到其他象限。
2.2D笛卡尔坐标(Cartesian Coordinates)用(x,y)形式标示一个点,2D极坐标(polar coordinates)用(距离,角度)形式标示一个点。
3.2D极坐标转为2D笛卡尔坐标,x=距离*cos(角度),y=距离*sin(角度)。
4.2D笛卡尔坐标转为2D极坐标,距离=sqrt(x^2 + y^2),角度=tan^-1(y/x)。
5.2D极坐标,游戏Wolfenstein和光线投射技术的基础。坐标变换对于很多有关弹道、瞄准和导航的问题很重要。
6.3D笛卡尔坐标,三条轴构成三个平面:x-y、x-z、y-z,每个平面都将空间分成两个半空间,三个平面就分成了8个卦限(octans)。
7.3D笛卡尔坐标分左手坐标系(LHS,简单理解为z正方向指向屏幕内)和右手坐标系(RHS,简单理解为z正方向指向屏幕外)。
8.3D柱面坐标(cylindrical coordinate)在2D极坐标的基础上增加了一条z轴。(射击游戏控制相机、环境映射)
9.3D球面坐标使用两个角度和到原点的距离来定义点。两角分别是正z轴的夹角,2D极角。
10.以a代表某希腊字母,一些三角恒等式:
 正割:csc(a)=1/sin(a)
 余割:sec(a)=1/cos(a)
 余切:cot(a)=1/tan(a)
 勾股定理:sin(a)^2+cos(a)^2=1
 转换恒等式:sin(a)=cos(a-PI/2)
 反射恒等式:
  sin(-a)=-sin(a)
  cos(-a)=cos(a)
 角度相加恒等式:
  sin(a1+a2)=sin(a1)*cos(a2)+cos(a1)*sin(a2)
  cos(a1+a2)=cos(a1)*cos(a2)-sin(a1)*sin(a2)
  sin(a1-a2)=sin(a1)*cos(a2)-cos(a1)*sin(a2)
  cos(a1-a2)=cos(a1)*cos(a2)+sin(a1)*sin(a2)
11.应避免求角度,很慢。
12.矩阵平移、旋转、缩放等组合操作,可转为多个正弦和余弦等旋转变换的组合。不应盲目使用通用矩阵乘法。
13.向量可以表示速度、加速度等。向量被定义后,总是相对于原点的。
14.向量长度(范数norm)是各分量平方和的平方根。|u|
15.向量归一化(normalize),向量除以其长度。
16.点积u.v = ux * vx + uy * vy(标量)
 u.v = |u|*|v|*cos(a)
17.点积用来求夹角,夹角=cos^-1((u.v)/(|u|*|v|))
 u和v之间夹角是直角则点积为0
 u和v之间夹角是锐角则点积>0
 u和v之间夹角是钝角则点积<0
18.点积作用之一,计算向量在给定方向上的分量(投影)
 v必须被归一化。
 u在v上的投影:Projv u = ((u.v)*v)/(|v|*|v|)
19.点积满足的乘法定律
 u.v=v.u
 u.(v+w)=(u.v+u.w)
 k标量:k*(u.v)=(k*u).v=(u.(k*v))

至pdf page159...

【D3D11游戏编程】学习笔记四:准备工作 (注:【D3D11游戏编程】学习笔记系列由优快云作者BonChoix所写,转载请注明出处:http://blog.youkuaiyun.com/BonChoix,谢谢~)          现在可以开始接触D3D了,但是在开始前,还有一小部分准备工作要做,即配置开发环境。        配置环境相当简单,属于一劳永逸那种。接触过游戏编程的同学绝大多数应该很熟悉这个步骤了,但为了保证一致,防止后面学习过 阅读详情

相关推荐

C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型

据说80%、90%Unity 3D程序员是自学的,大多数是看看书、实战视频、源码分析;而科班出生的同学会有3D数学这门核心课–估计占一个学期、会有作业等。为了赶上科班同学的水平,花点时间,补补数学知识,会使得自己少走一些弯路。一句话:”3D数学模型很关键。“

技术团队博客 2万+

3D游戏数学基础中的计算原理及几何意义(一、矩阵)

-前言- 在3D开发中,矩阵的运算是极为频繁的,几乎任何关于3D场景中的对象运算都会用到矩阵的知识。 -正文- 在我们日常游戏开发中使用到的矩阵多为方针(行数等于列数),通常为2x2、3x3、4x4的方阵。 下面列举一个一般的3x3方阵: 对角矩阵及单位矩阵 对角矩阵是矩阵中非对角线元素均为0则为对角矩阵,上面3x3方阵中当m12,m13,m23,m21,m31,m32为0是为对角矩阵...

分享即学习 2787

十二步教你学会3d游戏建模,成功入行

学习目标: 通过大型的3D游戏引擎制作游戏世界和各种物件的3D模型,并有计算机处理后得到真实感较强的3D图像。未来可从事概念设计师、场景设计师、角色设计师、动画设计师、关卡设计师等多种职位。 第一阶段:美术基础   (1)基础绘画技能(素描、速写、色彩等)   (2)了解人物基本的比例和结构   (3)计算机绘画技术   (4)综合艺术修养 第二阶段:软件基本操作   (1)掌握2D游戏模型贴图的制作   (2)简单而准确的游戏设计意识   (3)熟练掌握2D软件的基本操作   (4)流畅使用三维制作软件

3D游戏建模零基础入门教程-次世代角色场景教学 4988

向量的叉积

假设存在向量u(ux, uy, uz), v(vx, vy, vz), 求同时垂直于向量u, v的向量w(wx, wy, wz). 因为w与u垂直,同时w与v垂直,所以: (ux * wx) + (uy * wy) + (uz * wz) = 0; (vx * wx) + (vy * wy) + (vz * wz) = 0; 定义向量u = (ux, uy, uz)和向量 v = (vx,

microsoftwin32的专栏 760

如何破解游戏包中的素材与3D模型

我们做游戏的时候,往往缺素材,动画, 3D模型,如何解决这些问题呢?今天我们给大家介绍一个好用的技巧。 1: 我要做什么样的游戏, 用什么风格? 我们开始做游戏的时候,往往不知道自己要做什么样的游戏,或者自己有一个好的想法,但是不知道最终如何落地,系统的规划好,用什么美术风格, 这个时候,可以参考别人做好的游戏,我们去哪里找要做的游戏,或类似题材的呢?一般我们都是去AppStrore上面去查找,AppStore根据游戏的类型,都给我们分类放好了,比如:动作,休闲,益智,音乐等类型, 同时AppStore上有

walajiao的博客 4858

3D游戏编程作业1

3D游戏编程作业 作业题目 阅读 Tracy Fullerton, GAME DESIGN WORKSHOP 第2-4章(游戏结构、基本元素、戏剧元素)。选择一款你喜欢的中等规模游戏如“植物大战僵尸体”为案例,根据教材中一个或一组练习要求,回答该游戏的分析与设计问题。 作业内容 练习2.1:想一个游戏 1、描述任何一款玩过的游戏 植物大战僵尸:植物大战僵尸是一款即时战略塔防游戏,玩家可以收集资源(阳光)来购买不同的植物卡牌,然后通过种植不同的植物来抵御各种僵尸的入侵,避免房屋主人的脑子被僵尸吃掉,从而获得胜

weixin_43953962的博客 1244

3D数学知识

3D数学知识快速浏览

午夜支枕听河流 893

游戏原画和3D游戏建模,哪个更胜一筹?

游戏原画师和3D游戏建模,哪个更胜一筹?今天给大家简单分析一波,希望能给有选择困难症的伙伴们提供到一些帮助。 美术基础是原画师必备的,不算是优势。但是如果你往建模方向走的话,很多学建模的同学美术基础都要弱一些,那么美术基础好就是优势了。游戏原画设计分为2个岗位:角色原画设计和场景原画设计;3D建模分为4个岗位:手绘低模3D角色,手绘低模3D场景,次世代角色高模,次世代场景高模。 一、从美术基础方面来看 1、如果你的美术功底非常好,学过3年以上传统绘画,并且有一定想象力和创造力,建议你学原画; 2、如果你更

zihong522的博客 1313

Unity 3D 开发中需要掌握的数学基础知识概要整理(一)

目录 Unity 3D 开发中需要掌握的数学基础知识概要整理(一) 学习目的: 一、3D 数学基础知识介绍 二、Unity 中的几种常用坐标系 三、向量的基本概念 Unity 3D 开发中需要掌握的数学基础知识概要整理(一) 学习目的: 3D数学:研究在3D几何世界中的数学问题。被广泛的应用于使用计算机来模拟3D世界的领域,比如图形学,游戏,虚拟现实和动画等。 ...

仙魁XAN 4496

未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录

这个事就发生在前两天,我们公司的wifi模块被客户用到了咖啡机上,客户寄了一台整机给我们协助调试,还送了几包咖啡豆,本想着还能打个咖啡喝一喝的,但就在咖啡机刚寄过来第一天,就出事了。而这个事故的发生,竟然仅仅是因为同事接了个串口模块到电脑调试打印导致的。谁也想不到,这个3.3V的供电的wifi模块居然还有这么大的威力。直接将usb转TTL串口模块的转换芯片给爆开了,咖啡机也给弄坏了,据同事描述当时情况就只见到一片火光和一声巨响,状况比较惨烈,所幸的是笔记本电脑没有烧坏,但是直接给崩蓝屏了。 ...

fangye945a的博客 6193

UE4-(IK)实现人物脚贴合地面解决斜坡上脚无旋转无法贴合地面问题

在斜面上脚陷入模型中,需要设置旋转值对脚的骨骼进行一个旋转。 解决思路:在射线检测中可以获取到检测点的法线方向,根据法线方向来计算出脚应该向哪个方向进行适当的旋转,在斜坡上,人物脚需要旋转的轴为x轴和y轴以便来贴合地面,z轴方向的旋转是不需要进行修改的。 如图所示,我们需要求得水平面与斜坡的夹角用来得出人物在x轴上的脚旋转量,在蓝图中提供反正切函数,反正切 = 锐角的邻边/对边 所以 反正切值(脚x轴值(roll)) = 法线Y轴值/法线Z轴 值。 现在将上图的人物想象成面向屏幕,脚需...

Stone的博客 3317

DirectX学习笔记--3D基本数学知识整理

最近在看《Direct9.0 3D游戏编程基础》以及浅墨大神的《windows游戏编程从零开始》两本书,希望能通过博客来记录一下自己的学习历程,整理相关的知识,方便查阅。 一.数学知识整理 1.对于2D,我们只需要一个二维坐标系,但是3D,就需要3D的坐标系。描述3D的坐标系分为左手坐标系和右手坐标系,二者的差别体现在z轴的方向上,左手坐标系z轴正方向穿进纸面,右手反之。对于屏幕,自然

puppet_master的专栏 1146

如何设计一个处理物联网设备数据流的后端系统。

设计一个处理物联网设备数据流的后端系统,需要综合考虑设备数据采集、传输、处理、存储等多个方面,保证系统能够处理海量数据,具备高可用性、扩展性和安全性。合理选择适当的技术架构和工具(如MQTT、Kafka、InfluxDB等),并确保系统能够灵活应对不断变化的业务需求和设备接入。

weixin_53227829的博客 839

【Visual C++】游戏开发笔记三十一 回归季:游戏开发资料整理打包下载&专栏行文思路整理

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。http://blog.youkuaiyun.com/zhmxy555/article/details/8147229作者:毛星云    邮箱: happylifemxy@163.com    阔别近三个月,游戏开发笔记系列文章终于又与大家见面了。 其实,有很多话想跟大家说,有关这个专栏的书写方向与书写风格。于是,浅墨郑重地在文章标题中打下“回归季”

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 2万+

告别手动打点!用Cesium为你的大疆无人机快速生成区域巡查航线(保姆级教程)

本文详细介绍了如何利用Cesium平台为大疆无人机快速生成区域巡查航线的保姆级教程。通过自动化航线规划,告别传统手动打点的繁琐操作,实现高效、无死角的区域覆盖。文章涵盖环境搭建、实战案例及高级优化技巧,特别适合无人机操作员和巡检工作者提升工作效率。

weixin_30399821的博客 519

DDR内存Prefetch机制详解:从DDR1到DDR4的技术演进与性能提升

本文深入解析DDR内存Prefetch机制从DDR1到DDR4的技术演进与性能提升。通过分析Prefetch技术的实现原理与Burst传输的协同机制,揭示DDR1的2n Prefetch、DDR2的4n Prefetch、DDR3的8n Prefetch以及DDR4的Bank Group架构创新如何显著提升内存带宽与系统性能。

weixin_30369041的博客 538

3d数学基础:图形和游戏开发(第2版)_游戏引擎编程需要哪些基本数学知识?

现今,想要从头写一个功能强大的3D引擎,个人的力量恐怕难以胜任,即使能力足够,时间恐怕也不允许。在这个美好的开源时代,你只需具备修改各种引擎的能力便足以满足开发游戏的各项需求。现代游戏引擎的复杂级别已不同于以往。引擎中有错综复杂的功能模块,以及同样重要且复杂的游戏编辑器,其中的任何一方面内容都足以独立成书。然而本书篇幅有限,实在难以面面俱到。我们将在这里迈出第一步,在游戏开发的海洋中扬帆起航。2....

weixin_34185033的博客 591

081、LLC谐振变换器的短路特性与保护

本文深入分析了LLC谐振变换器在短路工况下的特性与保护策略。作者通过实际案例指出,LLC在输出短路时会出现谐振电流失控、ZVS条件丧失等危险现象,导致MOS管炸毁。文章详细阐述了短路保护的三大难点:响应速度、频率与电流的耦合、重启策略,并提出了硬件级快速保护、频率快速拉升、打嗝模式等实用解决方案。作者分享了关键参数设计经验,包括电流检测阈值设置、最高频率限制和保护响应时间控制,并通过实测波形验证了保护效果。最后总结出五点重要经验,强调硬件保护的必要性和系统设计的注意事项,为LLC变换器的短路保护设计提供了有

Jack010169的博客 76

Unity 3D游戏开发从入门进阶到高级

本文精心整理了Unity3D游戏开发相关的学习资料,涵盖入门、进阶、性能优化、面试和书籍等多个维度,旨在为Unity开发者提供全方位、高含金量的学习指南.欢迎收藏

2401_86900375的博客 3382

使用CiteSpace软件对知网文献进行关键词共现/聚类/突现分析

一、基本概念CiteSpace(引文空间)是一款专注于分析科学分析中蕴含的潜在知识的软件。它是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。通过可视化的手段,CiteSpace能够呈现科学知识的结构、规律和分布情况,并因此将这种分析得到的可视化图形称为“科学知识图谱”。二、主要功能和用途知识图谱构建:根据科学文献的引用关系,CiteSpace可以生成知识图谱,帮助研究人员更好地理解学术领域中不同文献之间的联系和演化过程。主题聚类分析。

m0_64336780的博客 1万+

复旦微实现串口在线升级BOOT.BIN

将该 demo 生成的 app(升级用)和 fsbl、最简化 bit 文件(可选)打包成 BOOT.BIN,作为 golden image 烧写在 qspi flash 偏移 0 地址开始的位置,其中最简化 bit 文件为在线升级功能提供必要的物理通道(如果不需要,可以不打包该文件),golden image 一旦发布基本不需要进行升级,由该 golden image 负责和上位机进行通信交互,完成业务 app、业务 bit 文件、uboot 以及操作系统 image 等文件在线升级,在qspi flash

wangjie36的博客 3174

3D游戏动漫建模零基础全套教程集

3D游戏动漫建模零基础全套教程集 3D游戏动漫建模零基础全套教程集 今天的分享就到这里了,想要学习更多3D游戏建模教程,可以关注我。私聊:游戏建模 如果你觉得对你有用,可以留下您的评论,谢谢^_^!如果你想学 我整理了2020最新的0基础入门和进阶教程,无私分享,加次世代游戏建模学习q u n : 809870691即可获取,内附:开发工具和安装包,以及系统学习路线图 3D游戏动漫建模零基础全套教程集 3D游戏动漫建模零基础全套教程集 3D游戏动漫建模零基础全...

Hadoop环境搭建教程 1332

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

3D游戏 和 3D电影

好吧  无意间看到有人发帖问这个问题··· 然后,我深思了会,发现,我也搞不明白 所以,整理下  网上搜集 到的资料 thx to the authers    参考:  http://zhidao.baidu.com/question/420882157.html%3Cimg%20src=             http://zhidao.baidu.c

2045

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【游戏开发3D数学笔记】1.有话说在前面

一.前言        这个分类的文章主要是我学习《3D数学基础:图形与游戏开发》这本书所做的一些笔记,笔记之中难免会使用书上的原句。然后我也会将查阅的一些相关资料融在一起。所以在使用原句的时候我尽量使用紫色标注:         [该颜色内容为书中的的原句]         对于我自己觉得需要注意的地方,我会使用红色标注:         [该颜色内容为需要注意的地方]二.还是前言

YzlCoder的记事本 788

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

3D游戏部分基础数学知识整理笔记2

1.叉积,u*v=|u|*|v|*sin(a)*n,n是单位法线向量,与u和v都垂直。2.虚数,i=sqrt(-1), i*i=-1。3.复数是一个实数与虚数的和。z=(a+b*i)4.四元数是超复数。从数学上说,术语超复数可以指任何东西,但通常指有多个虚部的

qwidget的专栏 521

【Visual C++】游戏开发笔记三十一 回归季 游戏开发资料整理打包下载 专栏行文思路整理

【Visual C++】游戏开发笔记三十一 回归季 游戏开发资料整理打包下载 专栏行文思路整理

hftugv的博客 412
上一篇: My Class for Directory Operation
下一篇: 无痛运行OGRE和CEGUI中的例子
hhf
hhf
博客等级 码龄17年 25粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值