编辑推荐
适读人群 :面向Windows平台上的3D开发人员。 全面讲解了 Direct3D 12 新版本的流水线状态对象、根签名、捆绑包、命令列表、 资源堆和屏障等新功能。
以实例程序演示了 Direct3D 12 的渲染流水线和计算流水线,帮助读者透彻掌握 Direct3D 12的底层实现,为读者今后用 HLSL5.1 编写着色器打下扎实的基础。
综合应用部分将本书各章中的知识巧妙地结合在一起,便于学以致用。
内容简介
Direct 3D 12编程指南 系统介绍了Direct3D 12各方面的知识,包括开始前的准备工作,如何创建DirectX 12项目,编程后的步骤,以及关于多线程、命令队列、资源结构、图形流水线、计算流水线和GPU内部传参等内容,zui后讲解了一个基于Direct3D 12实现的字体引擎。Direct 3D 12编程指南 重点介绍Direct3D 12的知识,而且减少对计算机图形学中通用知识的介绍,因为读者完全可以在其他的书中得到这些知识。
Direct 3D 12编程指南 的适用对象为面向Windows平台的3D开发人员。
作者简介
作者张羽乔,曾先后供职于盛大和腾讯游戏开发部门,现于金山西山居从事剑网三重制版的自研引擎的开发,在Direct3D领域有着丰富的经验。
目录
目 录
第1章 开始前的准备 1
1.1 创建DirectX 12项目 1
1.1.1 安装Windows 10和
Visual Studio 2015 1
1.1.2 新建解决方案和项目 1
1.1.3 配置使用Windows 10 SDK 3
1.1.4 新建main.cpp 4
1.1.5 新建rendermain.cpp 7
1.1.6 链接dxgi.lib和d3d12.lib库 7
1.1.7 生成并调试 8
1.2 COM简介 9
1.2.1 构建分布式系统 9
1.2.2 接口和实现的彻底分离 10
章末小结 10
第2章 开始Direct3D 12编程 11
2.1 设备、命令队列和交换链 11
2.1.1 启用调试层 11
2.1.2 创建设备 11
2.1.3 创建命令队列 13
2.1.4 创建交换链 15
2.1.5 呈现交换链缓冲 18
2.2 渲染到交换链缓冲前的准备 19
2.2.1 渲染到交换链缓冲的两种方式 19
2.2.2 创建渲染目标视图 20
2.2.3 创建命令分配器和命令列表 22
2.3 以归零方式渲染到交换链缓冲 24
2.3.1 转换资源屏障 24
2.3.2 执行命令列表 26
2.3.3 小结 27
2.4 以绘制方式渲染到交换链缓冲 28
2.4.1 图形流水线初探 28
2.4.2 绘制一个三角形 44
章末小结 68
第3章 多线程 69
3.1 命令队列 69
3.1.1 不同命令之间的原子性 69
3.1.2 同一命令内部的并发性 70
3.2 围栏 71
3.3 命令分配器和命令列表 73
3.3.1 复习并深入 73
3.3.2 捆绑包 75
3.4 资源屏障 78
3.4.1 转换资源屏障 79
3.4.2 别名资源屏障 82
3.4.3 无序访问视图资源屏障 83
3.5 Draw Call 83
章末小结 84
第4章 资源 85
4.1 资源的结构 85
4.1.1 逻辑结构 85
4.1.2 物理结构 89
4.2 资源的创建 95
4.2.1 GPU架构 95
4.2.2 资源堆 97
4.2.3 资源 101
4.3 CPU访问资源 105
4.3.1 概念 105
4.3.2 加载DDS文件(一) 107
4.4 GPU访问资源 110
4.4.1 复制—加载DDS
文件(二) 110
4.4.2 解析—MSAA 112
4.5 图形流水线访问资源 115
4.5.1 索引缓冲 115
4.5.2 顶点缓冲 118
4.5.3 流输出缓冲 125
4.5.4 描述符堆和描述符 133
4.5.5 根签名再探 136
章末小结 157
第5章 图形流水线再探 158
5.1 输出混合阶段 158
5.1.1 深度阶段 160
5.1.2 模板阶段 163
5.1.3 融合阶段 167
5.2 几何着色器阶段 173
5.3 细分阶段 178
5.3.1 外壳着色器阶段 179
5.3.2 细分阶段 181
5.3.3 域着色器阶段 184
5.3.4 小结 185
章末小结 190
第6章 计算流水线 191
6.1 计算流水线状态 191
6.2 计算流水线启动 194
6.3 无序访问资源视图 195
6.4 二次贝塞尔曲线 197
章末小结 203
第7章 GPU内部传参 204
7.1 谓词 204
7.2 间接执行 206
7.2.1 创建命令签名 206
7.2.2 添如间接执行命令 209
7.3 查询 212
章末小结 219
第8章 字体引擎 220
8.1 TrueType字体 220
8.2 绘制字形 225
章末小结 247
Direct 3D 12编程指南 下载 mobi epub pdf txt 电子书 格式
评分
☆☆☆☆☆
拿到书急切地看了下,很失望,原因是和OpenGL著名的红宝书(OpenGL编程指南(第x版))做了比对,同样是“编程指南”,这本“Direct3D 12编程指南”写的过于笼统和粗略。尽管该书声称“不要求读者掌握Win32 API、COM和之前版本的Direct3D的相关知识”,但是如果没有这些预备知识,很难读懂书中的源码。该书最大的问题是没有对Direct3D绘制过程中涉及到的概念做详细的阐述,仅仅就是一两句话的解释,然后就开始解释对应函数的参数含义,这种写法仅对有相当Direct3D经验的读者适用。虽然是按照图形流水线的顺序讲解的,但是和OpenGL红宝书的全面翔实相比,相差甚远。插图敷衍,代码字体偏小不易阅读,感觉作者是匆忙写就的一本关于D3D的小册子(或者是技术博客),用于和已经有相当D3D经验的程序员交流,而不是面向准备初学D3D的读者(尽管作者声称阅读此书不需要有D3D经验)。相比之下,OpenGL红宝书从简到难,步步为营,逐步深入,引人入胜。这本书和OpenGL红宝书的差别,就像计算机专业国内大学教材和国外大学教材的差别(相信很多读者都有这样的体会,直接阅读英文原版教材,竟然比阅读中文教材还容易理解)。最后,此书价格相对贵,感觉不值。
评分
☆☆☆☆☆
感觉不太好,和理想的差远了
评分
☆☆☆☆☆
拿到书急切地看了下,很失望,原因是和OpenGL著名的红宝书(OpenGL编程指南(第x版))做了比对,同样是“编程指南”,这本“Direct3D 12编程指南”写的过于笼统和粗略。尽管该书声称“不要求读者掌握Win32 API、COM和之前版本的Direct3D的相关知识”,但是如果没有这些预备知识,很难读懂书中的源码。该书最大的问题是没有对Direct3D绘制过程中涉及到的概念做详细的阐述,仅仅就是一两句话的解释,然后就开始解释对应函数的参数含义,这种写法仅对有相当Direct3D经验的读者适用。虽然是按照图形流水线的顺序讲解的,但是和OpenGL红宝书的全面翔实相比,相差甚远。插图敷衍,代码字体偏小不易阅读,感觉作者是匆忙写就的一本关于D3D的小册子(或者是技术博客),用于和已经有相当D3D经验的程序员交流,而不是面向准备初学D3D的读者(尽管作者声称阅读此书不需要有D3D经验)。相比之下,OpenGL红宝书从简到难,步步为营,逐步深入,引人入胜。这本书和OpenGL红宝书的差别,就像计算机专业国内大学教材和国外大学教材的差别(相信很多读者都有这样的体会,直接阅读英文原版教材,竟然比阅读中文教材还容易理解)。最后,此书价格相对贵,感觉不值。
评分
☆☆☆☆☆
好
评分
☆☆☆☆☆
还未看,市面上中文版的DX书籍很少,感谢作者
评分
☆☆☆☆☆
好
评分
☆☆☆☆☆
书不错的,正在看书不错的,正在看书不错的,正在看
评分
☆☆☆☆☆
感觉不太好,和理想的差远了
评分
☆☆☆☆☆
书不错的,正在看书不错的,正在看书不错的,正在看