前言 最近在学粒子系统,看这之前的<<3D图形编程基础 基于DirectX 11 >>是基于Direct SDK的,而DXSDK微软已经很久没有更新过了并且我学的DX11是用Windows SDK来实现. 顺手安利一波:我最近在学DirectX11 with Windows SDK 教程 博客地址:https://www.cnblogs.com/X-Jun/p/9028764.html 所以下面的都是基于这个教程和上面提到的那本书来写的 推荐看到教程17章和书里第15章之后再来看这…
前言 在这一章中,我们主要关注的是如何模拟一系列粒子,并控制它们运动.这些粒子的行为都是类似的,但它们也带有一定的随机性.这一堆粒子的几何我们叫它为粒子系统,它可以被用于模拟一些比较现象,如:火焰.雨.烟雾.爆炸.法术效果等. 在这一章开始之前,你需要先学过如下章节: 章节 11 混合状态 15 几何着色器初探 16 流输出阶段 17 利用几何着色器实现公告板效果 学习目标: 熟悉如何利用几何着色器和流输出阶段来高效存储.渲染粒子 了解我们如何利用基本的物理概念来让我们的粒子能够以物理上的真实方…
前言 上一章我们知道了如何使用几何着色器将顶点通过流输出阶段输出到绑定的顶点缓冲区.接下来我们继续利用它来实现一些新的效果,在这一章,你将了解: 实现公告板效果 Alpha-To-Coverage 对GPU资源进行读/写操作 纹理数组 实现雾效 在此之前需要额外了解的章节如下: 章节回顾 深入理解与使用2D纹理资源(重点阅读纹理数组) 15 几何着色器初探 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX1…
前言 DirectX11 With Windows SDK完整目录:http://www.cnblogs.com/X-Jun/p/9028764.html 由于考虑后续的项目需要有一个比较好的演示环境,因此这里将先从摄像机这个专题入手.在这之前,需要复习一下有关世界矩阵和观察矩阵的内容. DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 世界矩阵和观察矩阵 若已知物体所…
前言 在很早之前的纹理映射中,纹理存放的元素是像素的颜色,通过纹理坐标映射到目标像素以获取其颜色.但是我们的法向量依然只是定义在顶点上,对于三角形面内一点的法向量,也只是通过比较简单的插值法计算出相应的法向量值.这对平整的表面比较有用,但无法表现出内部粗糙的表面.在这一章,你将了解如何获取更高精度的法向量以描述一个粗糙平面. DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇…
前言 尽管在上一章的动态天空盒中用到了Render-To-Texture技术,但那是针对纹理立方体的特化实现.考虑到该技术的应用层面非常广,在这里抽出独立的一章专门来讲有关它的通用实现以及各种应用. 章节回顾 深入理解与使用2D纹理资源(重点阅读ScreenGrab库) 23 立方体映射:动态天空盒的实现 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 再述Rende…
前言 上一章的静态天空盒已经可以满足绝大部分日常使用了.但对于自带反射/折射属性的物体来说,它需要依赖天空盒进行绘制,但静态天空盒并不会记录周边的物体,更不用说正在其周围运动的物体了.因此我们需要在运行期间构建动态天空盒,将周边物体绘制入当前的动态天空盒. 没了解过静态天空盒的读者请先移步到下面的链接: 章节回顾 22 立方体映射:静态天空盒的读取与实现 DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群: 727623616 可以一起探讨DX11…
前言 由于个人觉得龙书里面第4章提供的Direct3D 初始化项目封装得比较好,而且DirectX SDK Samples里面的初始化程序过于精简,不适合后续使用,故选择了以Init Direct3D项目作为框架,然后还使用了微软提供的示例项目,两者结合到一起.建议下载项目配合阅读. 这一章内容大部分属于龙书的内容,但仍有一些不同的地方.因为后续的所有项目都使用该基础框架,你也可以直接使用第一章的项目源码,然后需要了解以下差异部分: ComPtr智能指针 新的HR宏 D3D11.1设备的创建 其…
前言 对于3D游戏来说,合理的光照可以让游戏显得更加真实.接下来会介绍光照的各种分量,以及常见的光照模型.除此之外,该项目还用到了多个常量缓冲区,因此还会提及HLSL的常量缓冲区打包规则以及如何设置多个常量缓冲区. DirectX11 With Windows SDK完整目录 Github项目源码 除此之外你还需要了解下面内容: 章节内容 深入理解HLSL常量缓冲区打包规则 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 颜色向量 一个4D的颜色向量…
前言 注意:从这一章起到后面的所有项目无一例外都利用了Direct2D与Direct3D互操作性,但系统要求为Win10, Win8.x 或 Win7 SP1且安装了KB2670838补丁以支持Direct3D 11.1(DXGI1.2).否则将无法显示所有文本.如果你的Win7系统运行程序无法显示文本,强烈建议打上上述补丁 在DX11,要显示文字可以说是一件比较麻烦的事情.DX9诸如Id3dXFont用于显示文字的接口类都已经被抛弃掉了.目前行之有效的两种显示文字的方法如下: 使用包含文字的位…