Direct3D11学习:(十)后续案例
简要目录
- 介绍
- 第一部分数学先决条件
- 第一章向量代数
- 第2章矩阵代数
- 第 3 章 转换
- 第二部分 Direct3D 基础
- 第 4 章 Direct3D 初始化
- 第 5 章 渲染管线
- 第 6 章 Direct3D 绘图
- 第 7 章 照明
- 第8章纹理
- 第 9 章 混合
- 第10章 刻印
- 第11章几何着色器
- 第12章计算着色器
- 第13章曲面细分阶段
- 第三部分主题
- 第14章构建第一人称相机
- 第15章实例化和截锥体剔除
- 第16章 采摘
- 第十七章立方体映射
- 第18章法线贴图和位移贴图
- 第19章 地形渲染
- 第20章粒子系统和流出
- 第21章阴影映射
- 第22章 环境遮挡
- 第23章 网格
- 第24章 四元数
- 第25章角色动画
- 附录 A Windows 编程简介
- 附录 B 高级着色器语言参考
- 附录 C 一些解析几何
- 附录 D 选定的解决方案
章节说明
第 1 章,向量代数:向量可能是计算机游戏中使用的最基本的数学对象。例如,我们使用向量来表示位置、位移、方向、速度和力。在本章中,我们研究向量和用于操作它们的操作。
第 2 章,矩阵代数:矩阵提供了一种高效且紧凑的方式来表示变换。在本章中,我们将熟悉矩阵及其上定义的操作。
第 3 章,变换:本章介绍三种基本的几何变换:缩放、旋转和平移。我们使用这些变换来操纵空间中的 3D 对象。此外,我们解释了坐标变换的变化,它用于将表示几何的坐标从一个坐标系变换到另一个坐标系。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap4.jpg)
第 4 章,Direct3D 初始化:在本章中,我们将了解 Direct3D 是什么以及如何初始化它以准备 3D 绘图。还介绍了基本的 Direct3D 主题,例如表面、像素格式、页面翻转、深度缓冲和多重采样。我们还学习了如何使用性能计数器来测量时间,我们用它来计算每秒渲染的帧数。此外,我们提供了一些调试 Direct3D 应用程序的技巧。我们开发和使用我们自己的应用程序框架——而不是 SDK 的框架。
第 5 章,渲染管线:在这一长篇中,我们将全面介绍渲染管线,这是根据虚拟相机所见生成世界 2D 图像所需的一系列步骤。我们学习如何定义 3D 世界、控制虚拟相机和绘制 3D 场景。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap6.jpg)
第 6 章,在 Direct3D 中绘图:本章重点介绍配置渲染管道、定义顶点和像素着色器以及将几何体提交到渲染管道进行绘图所需的 Direct3D API 接口和方法。还介绍了效果框架。在本章结束时,您将能够绘制网格、盒子、球体和圆柱体。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap8.jpg)
第 8 章,纹理:本章介绍纹理映射,这是一种通过将 2D 图像数据映射到 3D 图元来增加场景真实感的技术。例如,使用纹理映射,我们可以通过将 2D 砖墙图像应用到 3D 矩形上来为砖墙建模。涵盖的其他关键纹理主题包括纹理平铺和动画纹理转换。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap9.jpg)
第 9 章,混合:在本章中,我们将了解一种称为混合的技术,它允许我们实现许多特殊效果,例如透明度。此外,我们讨论了内在的剪辑功能,它使我们能够屏蔽图像的某些部分,使其不显示;例如,这可用于实现栅栏和大门。我们还展示了如何实现雾效果。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap10.jpg)
第 10 章,模板:本章描述模板缓冲区,它就像模板一样,允许我们阻止像素被绘制。为了说明本章的思想,我们对使用模板缓冲区实现平面反射进行了彻底的讨论。一个练习描述了使用模板缓冲区渲染场景深度复杂度的算法,并要求您实现该算法。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap12.jpg)
第 12 章,计算着色器:计算着色器是 Direct3D 公开的可编程着色器,它不是渲染管道的直接部分。它使应用程序能够使用图形处理单元 (GPU) 进行通用计算。例如,图像应用程序可以利用 GPU 通过计算着色器实现图像处理算法来加速图像处理算法。因为计算着色器是 Direct3D 的一部分,它读取和写入 Direct3D 资源,这使我们能够将结果直接集成到渲染管道。因此,除了通用计算之外,计算着色器仍然适用于 3D 渲染。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap13.jpg)
第 13 章,曲面细分阶段:本章探讨渲染管道的曲面细分阶段。细分是指将几何体细分为更小的三角形,然后以某种方式偏移新生成的顶点。增加三角形数量的动机是为网格添加细节。为了说明本章的思想,我们展示了如何根据距离对四边形面片进行镶嵌,并展示如何渲染三次贝塞尔四边形面片。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap15.jpg)
第 15 章,实例化和截锥体剔除:实例化是一种硬件支持的技术,可以多次优化具有不同属性(例如在场景中的不同位置和不同颜色)的相同几何图形的绘制。截锥体剔除是一种优化技术,如果整个对象完全位于虚拟相机的视野之外,我们会丢弃整个对象,使其不被提交到渲染管道。我们还展示了如何计算网格的边界框和球体。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap16.jpg)
第 16 章,拾取:本章说明如何确定用户用鼠标选择的特定 3D 对象(或 3D 图元)。在用户使用鼠标与 3D 世界进行交互的 3D 游戏和应用程序中,选择通常是必需的。我们还展示了如何计算网格的边界框和球体。
![空值](http://www.d3dcoder.net/Images/Book4/Thumbs/chap24.jpg)
第 24 章,四元数:在本章中,我们研究称为四元数的数学对象。我们展示了单位四元数表示旋转并且可以以简单的方式进行插值,从而为我们提供了一种插值旋转的方法。一旦我们可以插入旋转,我们就可以创建 3D 动画。
源码下载:
链接:https://pan.baidu.com/s/1ioXMLXcBR1DVbQ_7VW466Q