原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数 学习目标: 学习如何使用几何学和数字描述 Vector: 学习 Vector 的运算方法及其在几何学上的应用: 熟悉在 DirectXMath library 中的 Vector 相关的类和函数. 1 向量 一个向量代表的是一个拥有大小和方向的量.类似力(拥有力的大小和方向).位移(移动的方向和距离).速度(速度的大小和方向)等,例如下图(图 1.1…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习如何定义将一个纹理映射到一个三角形上: 学习如何创建和启用纹理: 学习纹理如何被过滤后生产一个更加平滑的图像: 学习如何将一个纹理通过地址模式展开多次: 学习如何将多个纹理合并成一个新贴图和特殊效果: 学习一些基本的纹…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘法如何被看成是线性组合: 理解单位矩阵.转置矩阵.矩阵的行列式和逆矩阵: 熟悉DirectX Math库中矩阵相关的类和函数: 1 矩阵的定义 一个m x n的矩阵M是一个有实数组成的m行n列的矩阵. 两个具有相同行数和列数的矩阵,每个对应的元素都相等的情况下,两个矩阵相等: 两个矩阵具有相同的行和…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 全书总结 本系列文章中可能有很多翻译有问题或者错误的地方:并且有些章节描述的也不太清晰. 所以请务必结合原书学习!!! ^ @ ^ 优化总结 总结书中提到的所有需要优化的细节 第一章:向量代数 1.向量的基本运算: 2.DX数学库中向量的接口. 第二章:矩阵代数 1.矩阵的定义,基本计算和特性: 2.矩阵的行列式,伴随矩阵和逆矩阵: 3.DX数学库中矩阵的接口. 第三…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化 第一章:向量代数 1.向量计算的时候,使用XMVECTOR(可以利用SIMD优点):类成员变量使用XMFLOAT2 (2D),XMFLOAT3 (3D),和XMFLOAT4 (4D) . 2.向函数传递参数的时候(XMVECTOR可以直接传递到SSE/SSE2)前三个参数类型要定义为FXMVECTOR: 第四个要定义为GXMVECTOR: 第五个…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换在数学理论,以及如何遍历基于树结构的网格层级: 理解顶点混合的想法以及数学理论: 学习如何从文件加载动画数据: 学习如何在D3D中实现角色动画. 1 框架的层级结构 1.1 数学公式 例如,有下面的结构: 每根子骨骼的坐标系都可以跟父骨骼关联,第一根骨骼与世界坐标系关联: 如果矩阵A0是第一根骨骼的…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及复数相乘如何在平面上表达旋转: 理解四元数以及它的运算: 理解单位四元数如何表达3D旋转: 学习如何转换旋转变量的表达: 学习如何对单位四元数线性差值,并且理解它等价于几何上的3D角度差值: 熟悉DirectX Math库中的四元数类和操作. 1 回顾复数 四元数可以看做是一个复数,所以我们先要回顾…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 熟悉环境光遮蔽的基本思路,以及通过光线跟踪的实现方法: 学习如何在屏幕坐标系下实现实时模拟的环境光遮蔽. 1 通过光线追踪实现的环境光遮蔽 其中一种估算点P遮蔽的方法是光线跟踪.我们随机跟踪点P半圆内的光线,然后查看和网格相交的光线.如果跟踪了N条光线,相交了h条,那么点P的遮蔽值为: 只有交点q…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影贴图算法:还有一些更复杂和效果更好的阴影算法,比如cascading shadow maps[Engel06],都是基于基本阴影算法扩展出来的. 学习目标 熟悉基本阴影贴图算法: 学习投射纹理如何工作: 找到正交投射: 理解阴影贴图锯齿问题和一些常用的修复它们的策略. 1 渲染场景深度 阴影贴图算法…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图 学习目标 理解为什么需要法线贴图: 学习法线贴图如何保存: 学习法线贴图如何创建: 学习法线贴图中的法向量的坐标系统是如何与物体空间的三角形的坐标系统关联的: 学习如何在顶点和像素着色器中实现法线贴图. 1 使用法线贴图的原因 找到一种方法在光滑的平面上,显示出更多的细节(比如粗糙的砖块). 如果使用曲面细分是可以增加实际的细节的,但是我们还是需要…