|
3年前我毁容式的翻译了《Beginning DirectX11 Game Programming》这边书,并上传到这个论坛和另外一个论坛里,本来想再抽时间对其修正一遍,可是后来原公司不行了,再后来辗转了2个家公司,所谓TM的创业,和TM的期权,就对Directx方面再也没有碰她。今年时间空余了很多,就想写个DirectX12的教程,目前只完成入门部分,都是Drectx11的内容,并没有Direct12的内容。
现在发上来,欢迎大家斧正;不对的地方,还请大家用力喷下。完成的内容如下所示:
目录
DirectX12 3D游戏程序设计 2
致谢 3
第一部分 DirectX入门 11
第一章 DirectX的邂逅 11
1.1 DirectX简介 11
1.1.1 DirectX是何物 11
1.1.2 DirectX的各个版本 11
1.1.3 DirectX和OpenGL 12
1.1.4 DirectX、OpenGL该学哪一个 13
1.2 DirectX的组件 13
1.2.1 DirectX的组件 13
1.2.2 DirectX逝去的组件 14
1.3 DirectX渲染管线基本概念 14
1.3.1 DirectX的固定渲染管线 14
1.3.2 DirectX的可编程渲染管线和着色器语言 16
1.3.3 DirectX新增的着色器 16
1.4 本章小结与练习 18
1.4.1 小结 18
1.4.2 习题 18
第二章 3D基础数学原理 20
2.1 坐标系 20
2.1.1 2D坐标系 20
2.1.2 3D坐标系 21
2.1.3 其他坐标系 22
2.2 向量 23
2.2.1 向量的概念 23
2.2.2 向量长度和归一化 24
2.2.3 向量的相加与相减 25
2.2.4 向量和标量的乘法 26
2.2.5 向量的点积 26
2.2.5 向量的叉积 27
2.2.6 位置和位移向量 27
2.3 矩阵 28
2.3.1 矩阵的定义 28
2.3.2 矩阵的加减法 28
2.3.3 矩阵的乘法 29
2.3.4 单位矩阵 30
2.3.5 转置矩阵 30
2.4 欧拉角 30
2.4.1 欧拉角的定义 30
2.5 四元素 31
2.5.1 四元素 31
2.6 本章小结与练习 32
2.6.1 小结 32
2.6.2 习题 32
第三章 Directx3D入门程序 33
3.1 第一个Directx3D程序 33
3.1.1 创建一个空项目 33
3.1.2 添加代码 37
3.1.3 代码分析 43
3.1.4 代码编译 46
3.2 渲染一个三角形 50
3.2.1 顶点 50
3.2.2 顶点缓存(Vertex Buffer) 51
3.2.3 加载Shader文件 53
3.2.4 输入布局(Input Layout) 54
3.2.5 图元 56
3.2.6 渲染三角形 56
3.2.7 释放资源 58
3.3 渲染旋转的立方体 58
3.3.1 颜色 58
3.3.2 索引缓存(Index Buffer) 59
3.3.3 常量缓存(Constant Buffer) 61
3.3.4 空间变换 62
3.3.5 渲染立方体 64
3.4 本章小结与练习 66
3.4.1 小结 66
3.4.2 习题 66
第四章 HLSL入门 67
4.1 HLSL基本语句 67
4.1.1 HLSL简述 67
4.1.2 基本数据类型Data Types 67
4.1.3 控制语句Flow Control 69
4.1.4 语义Semantics 70
4.1.5 寄存器register 71
4.1.6 着色器型号Shader Models 72
4.2 编写HLSL代码 72
4.2.1 全局变量 72
4.2.2 输入输出结构 73
4.2.3 入口函数 73
4.2.4 内置函数 75
4.2.5 顶点着色代码 75
4.2.6 像素着色代码 75
4.2.7 编译HLSL代码 75
4.3 纹理映射 77
4.3.1 贴图、纹理、DDS格式图片 77
4.3.2 制作DDS格式图片 77
4.3.3 纹理的UV坐标 78
4.3.4 纹理过滤(Texture Filtering) 80
4.3.5 纹理的寻址方式 81
4.4 渲染带纹理的立方体 83
4.4.1 着色器资源视图 83
4.4.2 纹理采样状态 84
4.4.3 纹理渲染 85
4.4.4 带纹理的HLSL代码 87
4.5 效果框架Effect11 88
4.5.1 Effect11简述 88
4.5.2 Effect11对象创建 88
4.5.3 Effect11的HLSL代码规范 91
4.5.4 Effect11接口和数据结构 93
4.5.5 Effect11的输入布局 94
4.5.6 Effect11的渲染 95
4.6 本章小结与练习 97
4.6.1 小结 97
4.6.2 习题 97
第五章 界面 98
5.1 DXUT11的对话框 98
5.1.1 对话框资源管理器 98
5.1.2 对话框及其控件 100
5.1.3 滑动控件 102
5.1.4 单选框 103
5.1.5 复选框 105
5.1.6 下拉框 106
5.2 Win32应用程序 108
5.2.1 什么是Win32 108
5.2.2 创建Win32窗口的代码 108
5.2.3 注册窗口 111
5.2.4 创建窗口 112
5.2.5 消息循环处理 113
5.2.6 消息回调函数 114
5.3 Direct3D初始化 114
5.3.1 设定Direct3D设备能力 114
5.3.2 设定数据交换链 116
5.3.3 创建设备和数据交换链 117
5.3.4 创建视口和得到DXGI 120
5.3.5 渲染目标和渲染目标视图 122
5.3.6 渲染、重组和释放 123
5.4 Direct2D初始化 126
5.4.1 创建Direct2D设备 126
5.4.2 创建Direct2D渲染目标位图 128
5.4.3 Direct2D渲染和重组 130
5.5 Direct2D界面元素 131
5.5.1 画刷的应用 131
5.5.2 渐变画刷设定 134
5.5.4 渐变画刷的创建 135
5.5.3 创建WIC对象 137
5.5.4 创建和绘制Direct2D位图 138
5.5.5 位图画刷 142
5.5.6 文本的渲染 143
5.6 本章小结与练习 146
5.5.1 小结 146
5.5.2 习题 146
第六章 相机和模型文件加载 148
6.1 虚拟相机 148
6.1.1 相机的介绍 148
6.1.2 透视相机的使用 149
6.1.3 正交相机格式 152
6.2 3D网格 154
6.2.1 3D网格介绍 154
6.2.2 sdkmesh格式转换 155
6.2.3 使用sdkmesh文件 156
6.3 本章小结与练习 159
6.3.1 小结 159
6.3.2 习题 159
第七章 光照 160
7.1 光 160
7.1.1 法线 160
7.1.2 光源 160
7.1.3 光反射 161
7.2 光照示例 163
7.2.1 环境反射示例 163
7.2.2 漫反射示例 164
7.2.3 镜面反射示例 168
7.2.4 点光源示例 173
7.3 本章小结与练习 178
7.3.1 小结 178
7.3.2 习题 178
第X部分 附录部分 179
附录A DirectX设备性能级别 179
附录B 纹理采样器过滤选项 179
附录C 纹理采样数据比较方式 180
附录D 系统值的语义 180
附录E HLSL内置函数 182
附录F Effects11 接口 187
附录G ID3DX11EffectVariable接口 188
书在帖子附件 文档5M,但是最大单个文件只能上传4M,切割上传了
Directx12 3D游戏程序_新秀篇(第一部分完成).zip.002
(2.63 MB, 下载次数: 1791)
Directx12 3D游戏程序_新秀篇(第一部分完成).zip.001
(3 MB, 下载次数: 1394)
新增的:
第二部分 DirectX12 UWP入门 182
第八章 DirectX12 UWP框架 182
8.1 UWP窗口创建 182
8.1.1 UWP和Win32的区别 182
8.1.2 DirectX12 UWP模版 183
8.1.3 UWP入口函数 184
8.1.4 创建和初始化视图 185
8.1.5 绑定窗口的事件 187
8.1.6 资源加载卸载和运行 188
8.2 UWP事件处理函数 191
8.2.1 生命周期事件 191
8.2.2 窗口事件 192
8.2.3 显示信息事件 193
8.3 DirectX12设备资源创建 194
8.3.1 DirectX12运行步骤类 194
8.3.2 DirectX12设备资源类 195
8.3.3 DirectX12设备创建 196
8.3.4 DirectX12命令队列/列表和围栏的创建 198
8.4 DirectX12视图资源创建 200
8.4.1 DirectX12数据交换链 200
8.4.2 DirectX12渲染目标视图 202
8.4.3 描述堆属性 205
8.4.4 DirectX12深度模板视图 205
8.5 DirectX12根签名 209
8.5.1 应用数据存储ApplicationData 209
8.5.2 根参数和描述符范围 211
8.5.3 根签名优化标识和根签名布局 213
8.5.4 创建根签名ID3D12RootSignature 215
8.6 DirectX12游戏资源创建 216
8.6.1 异步加载着色器 216
8.6.2 图像命令列表和管道状态 217
8.6.3 创建命令列表 220
8.6.4 创建顶点缓存视图和索引缓存视图 221
8.6.5 常量缓存视图 224
8.6.6 WaitForGpu 226
8.7 DirectX12游戏循环 227
8.7.1 游戏逻辑循环 227
8.7.2 游戏渲染循环 229
8.7.3 清除渲染目标视图和深度视图 230
8.7.4 渲染操作 231
8.8 UWP应用程序打包和离线安装 233
8.8.1 设置Win10开发人员模式 233
8.8.2 UWP应用程序打包 233
8.8.3 PC机离线安装UWP应用 237
8.9 本章小结与练习 238
8.9.1 小结 238
8.9.2 习题 239
第九章 DirectX12 UWP简单实例 240
9.1 UWP带纹理的立方体 240
9.1.1 构建立方体的顶点 240
9.1.2 DX12纹理采样器 241
9.1.3 带纹理的根签名和描述符堆 243
9.1.4 创建纹理的堆内存 244
9.1.5 将纹理资源上传到GPU 246
9.1.6 创建纹理的着色器资源视图(SRV) 247
9.1.7 将渲染的纹理绑定到渲染管线 248
9.2 UWP带光照的球体 249
9.2.1 创建一个球体 249
9.2.2 球的着色器代码 252
9.2.3 创建新的常量缓存 253
9.2.4 为球添加光照 256
9.3 多个物体的渲染 258
9.3.1 封装常量缓存视图的堆 258
9.2.2 渲染2个位置的球体 262
9.2.3 渲染2张不同的纹理 266
9.2.4 封装像素着色器的常量缓存 270
9.2.5 使用2个不同的渲染状态 271
9.4 本章小结与练习 276
9.4.1 DX12描述符的总结 276
第十章 XAML和DirectX12 278
10.1 创建XAML应用程序 279
10.1.1 XAML简述 279
10.1.2 创建xaml窗口 279
10.1.3 添加XAML控件 281
10.2 创建DirectX-XAML应用程序 285
10.2.1 DirectX12和XAML 285
10.2.2 创建DirectX12-XAML工程 286
10.2.3 适配DirectX12-XAML工程 288
10.3 有交互的DirectX-XAML应用程序 291
10.3.1 有交互的UI 291
10.3.2 响应鼠标 293
10.3.3 响应键盘 295
10.3.4 播放视频和声音 296
|
|