3D游戏程序设计基础PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:金禾工作室编著
- 出 版 社:北京:兵器工业出版社
- 出版年份:2006
- ISBN:7801727118
- 页数:388 页
第1章 第一个3D程序 1
1.1 3D空间初体验 2
1.1.1 视窗 2
1.1.2 3D世界的坐标 3
1.1.3 右手坐标系 3
1.1.4 左手坐标系 4
1.1.5 Direct3D和OpenGL 4
1.1.6 采用右手坐标系的优点 4
1.2 如何设定视窗的视野范围 5
1.2.1 默认值 6
1.2.2 系统变量 6
1.2.3 单位的意义 6
1.2.4 决定视窗与Camera的距离 7
1.2.5 决定视窗的大小 7
1.2.6 决定观察的最远距离 8
1.3 创建第一个D3D程序 9
1.3.1 本书使用的软件工具 9
1.3.2 安装软件注意事项 9
1.3.3 开始安装DirectX 9 10
1.3.4 以EmptyProject建立D3D程序 11
1.4 D3D基本Framework解说 16
1.4.1 InitApp() 21
1.4.2 IsDeviceAcceptable() 22
1.4.3 ModifyDeviceSettings() 23
1.4.4 OnCreateDevice() 25
1.4.5 OnResetDevice() 26
1.4.6 OnFrameMove() 27
1.4.7 OnFrameRender() 28
1.4.8 OnLostDevice() 32
1.4.9 OnDestroyDevice() 32
1.5 在视窗中加入一个三角形 33
1.5.1 介绍3D中的数据项 33
1.5.2 准备顶点信息 34
1.5.3 设定Material 41
1.5.4 着色状态值的设定 45
1.5.5 将World Matrix初始化 47
1.5.6 View Matrix的设定 47
1.5.7 Projection Matrix的设定 48
1.5.8 建立光源 50
1.5.9 设定CullMode 52
1.5.10 转动三角形 53
1.5.11 画出三角形 55
1.5.12 释放资源 56
1.6 D3D名词解释 57
1.6.1 什么是Device 57
1.6.2 CPU、3D显卡与效能的关系 58
1.6.3 Buffer是一种内存吗 59
1.6.4 Vertex Buffer和Buffer有什么不同 60
1.6.5 3D中的颜色值——Color Value RGBA 63
1.6.6 Normal Vector与Light Vector 64
1.6.7 Color Buffer是什么样的内存 67
1.6.8 Depth Buffer与Z Buffer 69
1.6.9 Full Screen是全屏幕吗 71
第2章 加上贴图效果 75
2.1 由三角形到正方形 76
2.1.1 正方形的组成 76
2.1.2 介绍Index Buffer 76
2.1.3 使用Index Buffer建立正方形 77
2.2 关于材质与贴图 83
2.2.1 什么是贴图 83
2.2.2 认识贴图坐标 83
2.2.3 其他贴图方法 85
2.3 Texture技巧演练 86
2.3.1 建立Texture相关程序代码 86
2.3.2 介绍SetTextureStageState()函数 91
2.3.3 D3D中Color值的运算 94
2.3.4 Filter与贴图的关系 98
第3章 从平面到立体 99
3.1 制作每个面都有贴图的立方体 100
3.1.1 立方体共点时的贴图问题 100
3.1.2 解决问题 101
3.2 打造一个六面不同贴图的立方体 101
3.2.1 准备Vertex Buffer 101
3.2.2 填入Vertex Data 107
3.2.3 准备贴图 109
第4章 贴图效果的进一步介绍 113
4.1 建立一片漂亮的地板 114
4.1.1 建立地板的准备工作 114
4.1.2 着手建立地板的程序代码 115
4.2 试试各种贴图方法 119
4.2.1 Wrap(Repeat)贴图法 119
4.2.2 Clamp贴图法 121
4.2.3 Mirror贴图法 123
4.3 改进贴图品质 125
4.3.1 分辨率不足的问题 125
4.3.2 介绍MipMap贴图取样 127
4.3.3 MipMap与Filter贴图取样的比较 130
第5章 移形换位——坐标变换 133
5.1 空间坐标变换 134
5.1.1 3D空间中旋转的基本概念 134
5.1.2 投影的坐标变换(Projection) 137
5.1.3 位移的坐标变换(Translation) 139
5.1.4 旋转的坐标变换(Rotation) 142
5.1.5 矩阵具有结合律 143
5.1.6 World Matrix 144
5.1.7 View Matrix 145
5.1.8 Projection Matrix 146
5.1.9 位移效果的矩阵函数 146
5.1.10 旋转效果的矩阵函数 148
5.1.11 World Space与Object Space 150
5.1.12 矩阵相乘不具备交换律 151
5.2 给地板施定身法 155
5.2.1 找出画地板前的World Matrix 155
5.2.2 声明一个单位矩阵指定给地板 156
5.2.3 关闭PUREDEVICE 158
5.3 让Camera自由走动 159
5.3.1 增加Camera移动的按键控制 159
5.3.2 声明变量来储存Camera的位置 161
5.3.3 使用矩阵函数 164
5.3.4 使用MatrixStack for Rotating Cube 167
5.3.5 使用MatrixStack for Camera并加上旋转功能 171
5.3.6 如何让Camera绕着自己的坐标系旋转和移动 180
第6章 模型加载介绍 185
6.1 用Vertex Buffer建立模型 186
6.1.1 建立墙面的Vertex Buffer 186
6.1.2 正式在OnFrameRender()里画出墙面 189
6.1.3 在OnDestroyDevice()里释放资源 190
6.1.4 修改Camera的位置及步伐 191
6.2 使用3ds max制作含Material的模型 192
6.2.1 在3ds max中加入转文件程序 193
6.2.2 如何简单制作模型 193
6.2.3 设定模型的Material 194
6.2.4 将模型Export出去 197
6.3 在场景中加载3ds max模型 199
6.3.1 把程序与s3d_model.lib做连结 199
6.3.2 在程序中加载含Material的模型 201
6.4 激活Specular效果 206
6.4.1 激活Specular的步骤 206
6.4.2 动手开启Specular的光源设定 207
6.5 使用3ds max的Texture模型 209
6.5.1 如何在Max中设定模型Texture 210
6.5.2 将含Texture的模型加入场景 213
第7章 激活光源效果 219
7.1 物体的受光原理 220
7.1.1 红花为什么那样红 220
7.1.2 黑色头发会反射黑光吗 221
7.2 为3D世界建立光源 221
7.2.1 光源的种类 221
7.2.2 光源的位置与方向 221
7.2.3 如何激活光源效果 223
7.2.4 在场景中加入Point Light 223
7.2.5 在场景中标记光源的位置 228
7.2.6 在场景中加入Spot Light 230
7.2.7 在场景中标记光源的方向 236
7.3 制作迷人的舞台灯光效果 238
7.3.1 让灯光动起来 238
7.3.2 制作明暗不定的多彩灯光 241
7.3.3 让Cube也动起来吧 248
7.4 顶点数与光源的关系 249
7.4.1 计算顶点的颜色 249
7.4.2 增加顶点数量来强化光源效果 250
7.4.3 动态调整地板顶点数量的小程序 251
7.4.4 动态地调整墙壁的顶点数量 261
7.4.5 增加光源开关的机制 269
第8章 若隐若现的透明效果 281
8.1 为透明作准备 282
8.1.1 更新模型 282
8.1.2 使用Material填入Square的颜色 284
8.1.3 关于Color Operation的疑惑 289
8.1.4 使用Texture Factor填入Square的颜色 290
8.1.5 让Cube动起来 293
8.1.6 再复制一个Cube 295
8.2 正式进入透明的殿堂 302
8.2.1 透明的定义 302
8.2.2 设定透明的步骤 303
8.2.3 为Material Square透明化 303
8.2.4 为Texture Factor Square透明化 311
8.2.5 把Cube也一起透明化吧 314
8.2.6 Cull Face的设定 319
第9章 绚丽的镜面反射效果 321
9.1 为反射效果做准备 322
9.1.1 更换模型 322
9.1.2 整理OnFrameRender() 323
9.2 反射技巧第一步——地板透明化 327
9.2.1 复习透明的步骤 327
9.2.2 动态控制地板的透明度 331
9.3 反射技巧第二步——画出反射对象 334
9.3.1 认识Scale矩阵 334
9.3.2 利用Scale矩阵做出反射效果 335
9.3.3 改变反射对象的旋转方向 336
9.3.4 画出反射的Cube 337
9.3.5 探讨画出反射Cube失败的原因 339
9.3.6 修正反射部分的光线 344
9.3.7 画出其他反射对象 347
9.4 反射技巧第三步——Stencil Buffer 350
9.4.1 请Stencil Buffer登场 351
9.4.2 设定Stencil Buffer内存 352
9.4.3 Clear Stencil Buffer 356
9.4.4 在Stencil Buffer里做记号 357
9.4.5 Stencil Test 361
9.4.6 将所有地板下的反射对象都藏起来吧 363
第10章 阴影效果 368
10.1 为阴影做准备 369
10.1.1 更换模型 369
10.1.2 阴影的形成过程 370
10.2 为Cube画出阴影 371
10.2.1 设定投影的变换矩阵 371
10.2.2 设定阴影的颜色及透明度 374
10.2.3 画出Cube的阴影 376
10.3 阴影重叠的问题 377
10.3.1 画出其他对象的阴影 377
10.3.2 发现阴影破碎的问题 381
10.4 解决阴影重叠问题 381
10.4.1 向硬件寻找可以使用Stencil Buffer功能组合 382
10.4.2 使用Stencil Buffer解决阴影破碎问题 382
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《BBC人体如何工作》(英)爱丽丝.罗伯茨 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《陶瓷工业节能减排技术丛书 陶瓷工业节能减排与污染综合治理》罗民华著 2017
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019