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 对象。此外,我们解释了坐标变换的变化,它用于将表示几何的坐标从一个坐标系变换到另一个坐标系。
空值
第 4 章,Direct3D 初始化:在本章中,我们将了解 Direct3D 是什么以及如何初始化它以准备 3D 绘图。还介绍了基本的 Direct3D 主题,例如表面、像素格式、页面翻转、深度缓冲和多重采样。我们还学习了如何使用性能计数器来测量时间,我们用它来计算每秒渲染的帧数。此外,我们提供了一些调试 Direct3D 应用程序的技巧。我们开发和使用我们自己的应用程序框架——而不是 SDK 的框架。
第 5 章,渲染管线:在这一长篇中,我们将全面介绍渲染管线,这是根据虚拟相机所见生成世界 2D 图像所需的一系列步骤。我们学习如何定义 3D 世界、控制虚拟相机和绘制 3D 场景。
空值
第 6 章,在 Direct3D 中绘图:本章重点介绍配置渲染管道、定义顶点和像素着色器以及将几何体提交到渲染管道进行绘图所需的 Direct3D API 接口和方法。还介绍了效果框架。在本章结束时,您将能够绘制网格、盒子、球体和圆柱体。
空值
第 7 章,照明:本章展示了如何创建光源并通过材质定义光与表面之间的交互。特别是,我们展示了如何使用顶点和像素着色器实现定向光、点光和聚光灯。
空值
第 8 章,纹理:本章介绍纹理映射,这是一种通过将 2D 图像数据映射到 3D 图元来增加场景真实感的技术。例如,使用纹理映射,我们可以通过将 2D 砖墙图像应用到 3D 矩形上来为砖墙建模。涵盖的其他关键纹理主题包括纹理平铺和动画纹理转换。
空值
第 9 章,混合:在本章中,我们将了解一种称为混合的技术,它允许我们实现许多特殊效果,例如透明度。此外,我们讨论了内在的剪辑功能,它使我们能够屏蔽图像的某些部分,使其不显示;例如,这可用于实现栅栏和大门。我们还展示了如何实现雾效果。
空值
第 10 章,模板:本章描述模板缓冲区,它就像模板一样,允许我们阻止像素被绘制。为了说明本章的思想,我们对使用模板缓冲区实现平面反射进行了彻底的讨论。一个练习描述了使用模板缓冲区渲染场景深度复杂度的算法,并要求您实现该算法。
空值
第 11 章,几何着色器:本章展示了如何编写几何着色器,它的特殊之处在于它们可以创建或破坏整个几何图元。一些应用程序包括广告牌、细分和粒子系统。此外,本章还解释了原始 ID 和纹理数组。
空值
第 12 章,计算着色器:计算着色器是 Direct3D 公开的可编程着色器,它不是渲染管道的直接部分。它使应用程序能够使用图形处理单元 (GPU) 进行通用计算。例如,图像应用程序可以利用 GPU 通过计算着色器实现图像处理算法来加速图像处理算法。因为计算着色器是 Direct3D 的一部分,它读取和写入 Direct3D 资源,这使我们能够将结果直接集成到渲染管道。因此,除了通用计算之外,计算着色器仍然适用于 3D 渲染。
空值
第 13 章,曲面细分阶段:本章探讨渲染管道的曲面细分阶段。细分是指将几何体细分为更小的三角形,然后以某种方式偏移新生成的顶点。增加三角形数量的动机是为网格添加细节。为了说明本章的思想,我们展示了如何根据距离对四边形面片进行镶嵌,并展示如何渲染三次贝塞尔四边形面片。
空值
第 14 章,构建第一人称摄像头:在本章中,我们将展示如何设计一个摄像头系统,使其表现得更像您在第一人称游戏中所期望的那样。我们展示了如何通过键盘和鼠标输入来控制相机。
空值
第 15 章,实例化和截锥体剔除:实例化是一种硬件支持的技术,可以多次优化具有不同属性(例如在场景中的不同位置和不同颜色)的相同几何图形的绘制。截锥体剔除是一种优化技术,如果整个对象完全位于虚拟相机的视野之外,我们会丢弃整个对象,使其不被提交到渲染管道。我们还展示了如何计算网格的边界框和球体。
空值
第 16 章,拾取:本章说明如何确定用户用鼠标选择的特定 3D 对象(或 3D 图元)。在用户使用鼠标与 3D 世界进行交互的 3D 游戏和应用程序中,选择通常是必需的。我们还展示了如何计算网格的边界框和球体。
空值
第 17 章,立方体映射:在本章中,我们将展示如何使用环境映射将环境反射到任意网格上;此外,我们使用环境贴图对天空球体进行纹理处理。
空值
第 18 章,法线贴图和置换贴图:本章展示了如何使用法线贴图获得详细的实时光照结果。此外,我们展示了如何将曲面细分与置换贴图相结合,以增加对象的几何细节。
空值
第 19 章,地形渲染:本章展示了如何使用高度图和多纹理技术创建、纹理、光照和渲染 3D 地形。此外,我们展示了如何在地形上平稳地“行走”相机。
空值
第 20 章,粒子系统:在本章中,我们将学习如何对由许多行为相似的小粒子组成的系统进行建模。例如,粒子系统可用于模拟飘落的雪和雨、火和烟雾、火箭轨迹、洒水器和喷泉。
空值
第 21 章,阴影映射:阴影映射是一种实时阴影技术,它可以对任意几何体进行阴影处理(它不仅限于平面阴影)。此外,我们还学习了如何渲染到纹理,以及投影纹理的工作原理。
空值
第 22 章,环境光遮蔽:照明在使我们的场景看起来逼真方面起着重要作用。在本章中,我们通过估计场景中一个点被入射光遮挡的程度来改进光照方程的环境项。我们涵盖了静态网格和实时屏幕空间方法。
空值
第 23 章,网格:本章展示如何从文件中加载复杂模型,并展示如何设计一组简单的类来处理网格。
空值
第 24 章,四元数:在本章中,我们研究称为四元数的数学对象。我们展示了单位四元数表示旋转并且可以以简单的方式进行插值,从而为我们提供了一种插值旋转的方法。一旦我们可以插入旋转,我们就可以创建 3D 动画。
空值
第 25 章,角色动画:本章扩展了“网格”章节,从文件中加载复杂的模型,但带有动画数据。我们涵盖了角色动画的理论,并展示了如何使用复杂的步行动画为典型的人类游戏角色制作动画。
 
 
源码下载:

链接:https://pan.baidu.com/s/1ioXMLXcBR1DVbQ_7VW466Q

posted @ 2022-04-02 00:05  szmtjs10  阅读(92)  评论(0编辑  收藏  举报