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

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

 找回密码
 注册
搜索
查看: 2056|回复: 9

Directx12 3D游戏程序_新秀篇(第一部分完成) [复制链接]

Rank: 12Rank: 12Rank: 12

注册时间
2010-3-3
积分
600
发表于 2016-9-29 09:54:56 |显示全部楼层
       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

书在帖子附件:
梦想的阳光照不到发霉的被子

Rank: 4

注册时间
2016-9-21
积分
26
发表于 2016-9-29 10:16:54 |显示全部楼层
楼主大神,附录里面可不可以加点显示原理类的东西

使用道具 举报

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

注册时间
2010-3-27
积分
5647
发表于 2016-9-29 12:29:09 |显示全部楼层
楼主如有翻译的意愿,建议翻译《Practical Rendering and Computation with Direct3D 11》。

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2014-4-25
积分
1713
发表于 2016-10-10 10:15:57 |显示全部楼层
哈哈...我好感兴趣LZ的职业经理啊o o听上去都是大风大浪。

使用道具 举报

Rank: 12Rank: 12Rank: 12

注册时间
2010-3-3
积分
600
发表于 2016-10-25 19:36:58 |显示全部楼层
好TM忧伤啊,貌似已经、大概、几乎没有什么人对DirectX开发感兴趣了。大家都堆在移动领域开发游戏,感觉DirectX淡出了主流。
另外感觉WinPhone10手机挺好,关键配个扩展坞,插上电视就是个电脑,可以在线看或者看下载好的电影。只是太贵了,不舍得买。

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2011-11-15
积分
1245
发表于 2016-10-27 10:50:50 |显示全部楼层
太基础了,并且翻译的书说句难听的,10本书9.9本都让人难以读懂,反倒是英文原版一遍就能看懂,建议要写书就原创内容,起码文字不用像翻译一样硬凑,硬翻

另外讲api的书太多,讲综合实例的书太少,如果楼主写过什么个人引擎,不防直接写成书,实用性和销量肯定比api翻译强

使用道具 举报

Rank: 12Rank: 12Rank: 12

注册时间
2010-3-3
积分
600
发表于 2016-12-15 21:04:08 |显示全部楼层

好惆怅,DirectX12改变好大,特别是DirectX12 UWP开发,感觉DirectX11那套更本不通。
如果没基础直接学习DirectX12 UWP开发,估计就是《DirectX12 UWP开发从想入门到放弃》了。

使用道具 举报

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

注册时间
2010-9-17
积分
2570
发表于 2016-12-28 16:26:30 |显示全部楼层
Gavin 发表于 2016-12-15 21:04
好惆怅,DirectX12改变好大,特别是DirectX12 UWP开发,感觉DirectX11那套更本不通。
如果没基础直接学习D ...

有没有什么材料是面向openCL/CUDA程序员转dx12/vulkan的

使用道具 举报

Rank: 13Rank: 13Rank: 13Rank: 13

注册时间
2011-5-7
积分
1736
发表于 2016-12-30 19:06:10 |显示全部楼层
下载不动啊

使用道具 举报

Rank: 1

注册时间
2016-11-29
积分
14
发表于 2017-2-6 13:31:19 |显示全部楼层
先感谢分享

使用道具 举报

最近看过此主题的会员

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

‹‹
我的工具栏

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

GMT+8, 2017-2-23 01:28 , Processed in 0.055701 second(s), 12 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部