请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 853|回复: 4

Directx12 游戏开发_刃霜(添加了2个DX12的教程) [复制链接]

Rank: 12Rank: 12Rank: 12

注册时间
2010-3-3
积分
646
发表于 2017-9-30 15:22:05 |显示全部楼层
本帖最后由 Gavin 于 2017-9-30 23:51 编辑

好巧,上一次发布我的教程是一年前Directx12 3D游戏程序_新秀篇(第一部分完成) [复制链接]过了一年来发布第二个教程。其实早半年就搞完了,只是最后一节一直没有写完。

这都时间发送了很多事情,本来习以为常、理所当然的事情,都变得好压抑。有些事情很衰,从来没想过会到自己头上,如果上天有眼,我一定把挖来——喂狗!!!

后面的章节不知道,还会不会写下去,即使写下去,估计也不知道是猴年马月了。虽然知道没什么读者,也知道写得很渣,但是比起有些事情,这些更本就不重要。

代码部分放在QQ群共享里,得空会把它放到GitHub上。
完成的部分的目录如下(第二部分是新增的内容):
目录
DirectX12 3D游戏开发        2
致谢        3
第一部分 DirectX入门        12
第一章 DirectX的邂逅        12
1.1 DirectX简介        12
1.1.1        DirectX是何物        12
1.1.2        DirectX的各个版本        12
1.1.3        DirectX和OpenGL        13
1.1.4        DirectX、OpenGL该学哪一个        14
1.2 DirectX的组件        14
1.2.1        DirectX的组件        14
1.2.2        DirectX逝去的组件        15
1.3 DirectX渲染管线基本概念        16
1.3.1        DirectX的固定渲染管线        16
1.3.2        DirectX的可编程渲染管线和着色器语言        17
1.3.3        DirectX新增的着色器        18
1.4 本章小结与练习        21
1.4.1        小结        21
1.4.2        习题        21
第二章 3D基础数学原理        23
2.1 坐标系        23
2.1.1        2D坐标系        23
2.1.2        3D坐标系        24
2.1.3        其他坐标系        25
2.2        向量        26
2.2.1 向量的概念        26
2.2.2 向量长度和归一化        27
2.2.3 向量的相加与相减        28
2.2.4 向量和标量的乘法        29
2.2.5 向量的点积        29
2.2.5 向量的叉积        30
2.2.6 位置和位移向量        30
2.3 矩阵        31
2.3.1        矩阵的定义        31
2.3.2        矩阵的加减法        31
2.3.3        矩阵的乘法        32
2.3.4        单位矩阵        33
2.3.5        转置矩阵        33
2.4 欧拉角        33
2.4.1        欧拉角的定义        33
2.5 四元素        34
2.5.1        四元素        34
2.6 本章小结与练习        35
2.6.1        小结        35
2.6.2        习题        35
第三章 Directx3D入门程序        36
3.1 第一个Directx3D程序        36
3.1.1        创建一个空项目        36
3.1.2        添加代码        40
3.1.3        代码分析        46
3.1.4        代码编译        49
3.2 渲染一个三角形        53
3.2.1        顶点        53
3.2.2        顶点缓存(Vertex Buffer)        54
3.2.3        加载Shader文件        56
3.2.4        输入布局(Input Layout)        57
3.2.5        图元        59
3.2.6        渲染三角形        59
3.2.7        释放资源        61
3.3 渲染旋转的立方体        61
3.3.1        颜色        61
3.3.2        索引缓存(Index Buffer)        62
3.3.3        常量缓存(Constant Buffer)        64
3.3.4        空间变换        65
3.3.5        渲染立方体        67
3.4 本章小结与练习        69
3.4.1        小结        69
3.4.2        习题        69
第四章 HLSL入门        70
4.1 HLSL基本语句        70
4.1.1        HLSL简述        70
4.1.2        基本数据类型Data Types        70
4.1.3        控制语句Flow Control        72
4.1.4        语义Semantics        73
4.1.5        寄存器register        74
4.1.6        着色器型号Shader Models        75
4.2        编写HLSL代码        75
4.2.1        全局变量        75
4.2.2        输入输出结构        76
4.2.3        入口函数        76
4.2.4        内置函数        78
4.2.5        顶点着色代码        78
4.2.6        像素着色代码        78
4.2.7        编译HLSL代码        78
4.3        纹理映射        80
4.3.1        贴图、纹理、DDS格式图片        80
4.3.2        制作DDS格式图片        80
4.3.3        纹理的UV坐标        81
4.3.4        纹理过滤(Texture Filtering)        83
4.3.5        纹理的寻址方式        84
4.4 渲染带纹理的立方体        86
4.4.1        着色器资源视图        86
4.4.2        纹理采样状态        87
4.4.3        纹理渲染        88
4.4.4        带纹理的HLSL代码        90
4.5 效果框架Effect11        91
4.5.1        Effect11简述        91
4.5.2        Effect11对象创建        91
4.5.3        Effect11的HLSL代码规范        94
4.5.4        Effect11接口和数据结构        96
4.5.5        Effect11的输入布局        97
4.5.6        Effect11的渲染        98
4.6 本章小结与练习        100
4.6.1        小结        100
4.6.2        习题        100
第五章 界面        101
5.1 DXUT11的对话框        101
5.1.1        对话框资源管理器        101
5.1.2        对话框及其控件        103
5.1.3        滑动控件        105
5.1.4        单选框        106
5.1.5        复选框        108
5.1.6        下拉框        109
5.2 Win32应用程序        111
5.2.1        什么是Win32        111
5.2.2        创建Win32窗口的代码        111
5.2.3 注册窗口        114
5.2.4 创建窗口        115
5.2.5 消息循环处理        116
5.2.6 消息回调函数        117
5.3 Direct3D初始化        117
5.3.1        设定Direct3D设备能力        117
5.3.2        设定数据交换链        119
5.3.3        创建设备和数据交换链        120
5.3.4        创建视口和得到DXGI        123
5.3.5        渲染目标和渲染目标视图        125
5.3.6        渲染、重组和释放        126
5.4 Direct2D初始化        129
5.4.1        创建Direct2D设备        129
5.4.2        创建Direct2D渲染目标位图        131
5.4.3        Direct2D渲染和重组        133
5.5 Direct2D界面元素        134
5.5.1        画刷的应用        134
5.5.2        渐变画刷设定        137
5.5.4        渐变画刷的创建        138
5.5.3        创建WIC对象        140
5.5.4        创建和绘制Direct2D位图        141
5.5.5        位图画刷        145
5.5.6        文本的渲染        146
5.6 本章小结与练习        149
5.5.1        小结        149
5.5.2        习题        149
第六章 相机和模型文件加载        151
6.1 虚拟相机        151
6.1.1        相机的介绍        151
6.1.2        透视相机的使用        152
6.1.3        正交相机格式        155
6.2 3D网格        157
6.2.1        3D网格介绍        157
6.2.2        sdkmesh格式转换        158
6.2.3        使用sdkmesh文件        159
6.3 本章小结与练习        162
6.3.1        小结        162
6.3.2        习题        162
第七章 光照        163
7.1 光        163
7.1.1        法线        163
7.1.2        光源        163
7.1.3        光反射        164
7.2 光照示例        166
7.2.1        环境反射示例        166
7.2.2        漫反射示例        167
7.2.3        镜面反射示例        171
7.2.4        点光源示例        176
7.3 本章小结与练习        181
7.3.1        小结        181
7.3.2        习题        181
第二部分 DirectX12 UWP        182
第八章 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
第九章 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
第X部分 附录部分        250
附录A DirectX设备性能级别        250
附录B 纹理采样器过滤选项        250
附录C 纹理采样数据比较方式        251
附录D 系统值的语义        251
附录E         HLSL内置函数        253
附录F         Effects11 接口        259
附录G         ID3DX11EffectVariable接口        259
附录H         ID3DX11EffectVariable接口        260







Gavin于2017-9-30 23:04补充以下内容:
老天呀,我忘记把附件上传了。改天上传吧。
梦想的阳光照不到发霉的被子

Rank: 5Rank: 5

注册时间
2016-4-13
积分
82
发表于 2017-10-11 21:50:26 |显示全部楼层
其实还是有人看的,国内讲 DirectX11/12 开发的资料少的可怜,大家都去用 unity3D 什么的了……祝你早日成书。

使用道具 举报

Rank: 16Rank: 16Rank: 16Rank: 16

注册时间
2016-9-22
积分
2724
发表于 2017-10-12 08:53:24 |显示全部楼层
感谢楼主,在DirectX11/12资料这么少的情况下,每一位能为我们小白学习进步提供方向的人都特别感谢,谢谢。

使用道具 举报

Rank: 4

注册时间
2017-9-17
积分
37
发表于 2017-10-12 22:58:15 |显示全部楼层
非常感谢,正好解决了我的需要。国内学习原意学习DirectX11/12 的人还是不少,对这方面的资料的需求仍然很大。

使用道具 举报

Rank: 5Rank: 5

注册时间
2017-8-28
积分
94
发表于 前天 22:26 |显示全部楼层
谢谢分享,辛苦辛苦

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-10-23 23:14 , Processed in 0.079522 second(s), 12 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部