概念学习:

向量

向量简介

我们将所有彼此平行的向量进行平移,使其起点与坐标原点重合,当某一向量的起始端与坐标原点重合,我们成该向量处于标准位置。这样,我们就可用向量的终点坐标来描述一个处于标准位置的向量。 我们通常用小写粗体字母表示一个向量,又是也是用大写粗体字母,比如:2D,3D,4D向量分别表示为:\(u=(u_{x},u_{y})\), \(N=(N_{x},N_{y},N_{z})\),\(c=(c_{x},c_{y},c_{z},c_{w})\)。 D3DX库中,类D3DXVECTOR3表示3D空间中的向量。

向量相等

几何学中,如果两个向量长度和方向都相同,那么这两个向量相等。

向量长度

\(||u||= \sqrt{u_x^2+u_y^2+u_z^2}\)

向量规范化

向量的规范化就是使向量的模变为1,即变为单位向量。可以通过将向量的每个分量都除以该向量的模来实现向量的规范化。

向量加法

向量加法定义为两个向量对应分量分别相加,只有维数相同的两个分量才能进行加法运算。

\(u+v = (u_x+v_x, u_y+v_y, u_z+v_z)\)

向量减法

\(u-v = u+(-v) = (u_x-v_x, u_y-v_y, u_z-v_z)\)

数乘

标量可以与向量相乘,顾名思义,该运算可对向量进行缩放。

\(ku = (ku_x,ku_y,ku_z)\)

点积

点积是向量代数所定义的两种乘法之一,其运算规则如下:

\(u*v = u_x*v_x + u_y*v_y + u_z*v_z\)

上述公式并不具有明显的几何意义,由余弦定理,可以发现\(u*v = ||u|| * ||v|| * cosθ\),即两向量的点积等于两者夹角的余弦再乘以两个向量的模的乘积。

叉积

叉积运算规则如下:

\(a*b = x_1*y_2-x_2*y_1 = a * b * sinθ\)

矩阵

矩阵相等

矩阵数乘

矩阵加法

矩阵乘法

若A为\(m*n\)的矩阵,B为\(n*p\)矩阵,则乘积AB有意义,且等于一个\(m*p\)矩阵

单位矩阵

逆矩阵

矩阵转置

一个\(m*n\)矩阵的转置是一个\(n*m\)的矩阵。我们用符号\(M^T\)表示矩阵M的转置

游戏开发3D基础知识的更多相关文章

  1. Unity游戏开发面试基础知识

    面试第一次知识总结: 一.Unity基本操作 1.unity提供哪几种光源? 点光源.平行光.聚光灯.区域光. 2.物体发生碰撞的必要条件什么? 两个物体必须有碰撞体Collider组件,一个物体上必 ...

  2. 【Unity3D游戏开发】基础知识之Tags和Layers (三二)[转]

    Tags和Layers分别表示是Unity引擎里面的标签和层,他们都是用来对GameObject进行标识的属性,Tags常用于单个GameObject,Layers常用于一组的GameObject.添 ...

  3. 【笔记】《DirectX 9.0 3D游戏开发编程基础》:Direct3D初始化

    Direct3D初始化大概分为4个步骤: 1.获取接口IDirect3D9的指针.(Direct3DCreate9函数调用). 该接口用户获取系统中物理硬件设备的信息并创建接口IDirect3DDev ...

  4. HTML5游戏开发技术基础整理

    随着HTML5标准终于敲定.HTML5将有望成为游戏开发领域的的热门平台. HTML5游戏能够执行于包含iPhone系列和iPad系列在内的计算机.智能手机以及平板电脑上,是眼下跨平台应用开发的最佳实 ...

  5. html5游戏开发-零基础开发《圣诞老人送礼物》小游戏

    开言: 以前lufy前辈写过叫“ HTML5游戏开发-零基础开发RPG游戏”的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为 ...

  6. 《DirectX 9.0 3D游戏开发编程基础》必备的数学知识 读书笔记

    最近在看游戏导航源码,但是看了几天感觉看不懂.里面全是一些几何运算,以及一些关于3d方面的知识.发现自己缺少3d这方面的知识,正好也想研究一下3d游戏开发的基本原理,于是决定买本书看看了,后来在ope ...

  7. [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版

    大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...

  8. css 3d 基础知识

    css3d 总结 3d transform (3D变形)(rotate skew scale translate) 基础知识 perspective (视距,景深) perspective-origi ...

  9. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

随机推荐

  1. 论文研读Unet++

    Unet++: A Nested U-Net Architecture for Medical Image Segmentation Unet++ 论文地址 这里仅进行简要介绍,可供读者熟悉其结构与特 ...

  2. MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的 ...

  3. 03-Spring profile实用精简版介绍

    为什么说是实用精简版,没办法,工作太忙压力大啊,菜是原罪啊,所以接下来写的一些博客可能都是更偏实用性,精简点,方便自己回顾,快速上手使用即可,毕竟感觉不详细还有书不是吗. profile是用来干什么的 ...

  4. 微服务-springcloud学习资料链接

    API文档:https://springcloud.cc/spring-cloud-dalston.html#_spring_cloud_netflix 中文社区:http://springcloud ...

  5. 微服务-springboot多环境配置(开发生产测试环境切换)

    springboot根据spring.profiles.active会去寻找应该加载开发环境配置还是生产环境配置 application.properties #生产环境,开发环境,测试环境切换 pr ...

  6. 关于sql 中delete, truncate,drop的理解与总结

    关于文章,本文是在网上查找资料整理而来,方便以后记忆 delete 命令删除的数据可以恢复, truncate 命令删除的数据是不可以恢复的,全删的那种 drop 命令删除的数据不可恢复,连表结构都删 ...

  7. ORM的记录添加和删除

    记录查询包括:跨表查询(重点),  分组查询,聚合查询,  F与Q查询 查询之前需要先添加数据: 一对多添加: def addrecord(request): Book.objects.create( ...

  8. IDEA永久使用

    IDEA永久使用 一.在https://www.cnblogs.com/zyx110/p/10799387.html中下载下面图片中箭头所指的部分 下载完成后双击打开,除了以下图片提示内容,一路下一步 ...

  9. c++学习书籍推荐《Exceptional C++ Style》下载

    百度云及其他网盘下载地址:点我 编辑推荐 软件“风格”所要讨论的主题是如何在开销与功能之间.优雅与可维护性之间.灵活.性与过分灵活之间寻找完美的平街点.在本书中,著名的C++大师Herb Sutter ...

  10. 新手上路——it人如何保持竞争力

    新手上路——如何保持竞争力 JINGZHENGLI 套用葛大爷的一句名言:21世纪什么最贵,人才.哪你是人才还是人材?还是人财或人裁?相信大家都不是最后一种.何如保持住这个光环呢?就需要我们保持我们独 ...