图书介绍

Vulkan开发实战详解 多平台完整源代码PDF|Epub|txt|kindle电子书版本网盘下载

Vulkan开发实战详解 多平台完整源代码
  • 吴亚峰编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115509390
  • 出版时间:2019
  • 标注页数:730页
  • 文件大小:351MB
  • 文件页数:745页
  • 主题词:图形软件-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Vulkan开发实战详解 多平台完整源代码PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 初识Vulkan1

1.1 Vulkan概览1

1.1.1 Vulkan简介1

1.1.2 支持Vulkan的游戏概览2

1.2 搭建开发环境4

1.2.1 Android平台开发环境的配置4

1.2.2 Windows平台开发环境的配置8

1.3 第一个Vulkan程序15

1.3.1 案例的运行效果15

1.3.2 Vulkan应用程序的基本架构15

1.3.3 3色三角形案例相关类的介绍20

1.3.4 Vulkan中的常用方法22

1.3.5 MyVulkanManager类的基本结构28

1.3.6 创建Vulkan实例31

1.3.7 获取物理设备列表32

1.3.8 创建逻辑设备32

1.3.9 创建命令缓冲33

1.3.10 获取设备中支持图形工作的队列35

1.3.11 初始化交换链35

1.3.12 创建深度缓冲41

1.3.13 创建渲染通道43

1.3.14 创建帧缓冲46

1.3.15 创建绘制用物体47

1.3.16 初始化渲染管线51

1.3.17 创建栅栏和初始化呈现信息62

1.3.18 初始化基本变换矩阵、摄像机矩阵、投影矩阵63

1.3.19 执行绘制63

1.3.20 销毁相关对象66

1.3.21 整体流程的执行67

1.3.22 顶点着色器和片元着色器68

1.4 Vulkan中立体物体的构建70

1.5 本章小结71

第2章 渲染管线和调试技术72

2.1 渲染管线72

2.2 着色器的预编译79

2.3 Vulkan调试技术81

2.4 Vulkan GPU大PK89

2.4.1 移动端GPU的4大家族89

2.4.2 PC端GPU中3大家族91

2.5 本章小结92

第3章 着色器编程语言——GLSL93

3.1 着色语言概述93

3.2 着色语言基础94

3.2.1 数据类型概述94

3.2.2 数据类型的基本使用98

3.2.3 运算符100

3.2.4 各个数据类型的构造函数102

3.2.5 类型转换104

3.2.6 存储限定符104

3.2.7 插值限定符107

3.2.8 一致块108

3.2.9 layout限定符109

3.2.10 流程控制111

3.2.11 函数的声明和使用113

3.2.12 片元着色器中浮点及整型变量精度的指定114

3.2.13 程序的基本结构114

3.3 特殊的内建变量115

3.3.1 顶点着色器中的内建变量115

3.3.2 片元着色器中的内建变量116

3.3.3 内建常量117

3.4 着色语言的内置函数117

3.4.1 角度转换与三角函数118

3.4.2 指数函数119

3.4.3 常见函数120

3.4.4 几何函数123

3.4.5 矩阵函数124

3.4.6 向量关系函数125

3.4.7 纹理采样函数126

3.4.8 微分函数129

3.4.9 浮点数打包与解包函数129

3.5 用invariant修饰符避免值变问题130

3.6 预处理器131

3.7 本章小结132

第4章 投影与各种变换133

4.1 矩阵相关类的介绍133

4.1.1 矩阵数学计算类——Matrix133

4.1.2 矩阵状态管理类——MatrixState3D134

4.2 摄像机的设置137

4.3 两种投影方式138

4.3.1 正交投影138

4.3.2 透视投影144

4.3.3 推送常量146

4.4 各种变换148

4.4.1 基本变换的相关数学知识148

4.4.2 平移变换149

4.4.3 旋转变换150

4.4.4 缩放变换151

4.4.5 基本变换的实质152

4.5 所有变换的完整流程153

4.6 绘制方式156

4.6.1 各种绘制方式概览156

4.6.2 点与线段绘制方式158

4.6.3 三角形条带与扇面绘制方式161

4.6.4 索引法绘制164

4.7 设置合理的视角169

4.8 设置合理的投影参数174

4.9 深度偏移178

4.10 卷绕和背面剪裁181

4.10.1 基本知识181

4.10.2 一个简单的案例182

4.11 间接绘制183

4.11.1 背景知识184

4.11.2 顶点法间接绘制184

4.11.3 索引法间接绘制186

4.12 本章小结188

第5章 光照189

5.1 曲面物体的构建189

5.1.1 球体构建的基本原理189

5.1.2 案例效果概览190

5.1.3 开发步骤190

5.2 基本光照效果194

5.2.1 光照的基本模型194

5.2.2 环境光195

5.2.3 散射光199

5.2.4 镜面光205

5.2.5 3种光照通道的合成210

5.3 定位光与定向光212

5.4 点法向量和面法向量215

5.5 光照的每顶点计算与每片元计算218

5.6 本章小结223

第6章 纹理映射224

6.1 初识纹理映射224

6.2 一个简单的案例225

6.2.1 开发前的准备工作225

6.2.2 纹理相关类226

6.2.3 案例代码的开发241

6.2.4 图像的瓦片组织方式248

6.2.5 色彩通道的灵活组合250

6.3 纹理拉伸251

6.3.1 四种拉伸方式概览251

6.3.2 不同拉伸方式的案例254

6.4 纹理采样259

6.4.1 纹理采样概述259

6.4.2 最近点采样259

6.4.3 线性纹理采样260

6.4.4 MIN与MAG采样261

6.4.5 不同纹理采样方式的案例262

6.5 Mipmap纹理266

6.5.1 基本原理266

6.5.2 一个简单的案例268

6.6 多重纹理与过程纹理272

6.6.1 案例概览273

6.6.2 将2D纹理映射到球面上的策略273

6.6.3 案例的场景结构274

6.6.4 开发过程275

6.7 压缩纹理的使用283

6.7.1 Android平台下的压缩纹理284

6.7.2 PC中Windows平台下的压缩纹理286

6.8 点精灵289

6.8.1 基本知识289

6.8.2 一个简单的案例289

6.9 3D纹理292

6.9.1 3D棋盘纹理的准备293

6.9.2 3D棋盘纹理案例的开发294

6.10 2D纹理数组297

6.10.1 2D纹理数组的准备297

6.10.2 2D纹理数组案例的开发298

6.11 各向异性过滤302

6.11.1 背景知识303

6.11.2 一个简单的案例303

6.12 本章小结305

第7章 更逼真的场景——3D模型的加载306

7.1 obj模型文件概述306

7.1.1 obj文件的格式306

7.1.2 用3ds Max设计3D模型307

7.2 加载obj文件308

7.2.1 加载仅有顶点坐标数据与面数据的obj文件308

7.2.2 加载后自动计算面法向量312

7.2.3 加载后自动计算平均法向量315

7.2.4 加载纹理坐标317

7.2.5 加载顶点法向量320

7.3 双面光照321

7.4 本章小结324

第8章 独特的场景渲染技术——混合与雾325

8.1 混合技术325

8.1.1 基本知识325

8.1.2 源因子和目标因子326

8.1.3 简单混合效果的案例328

8.2 地月系云层效果的实现330

8.3 雾333

8.3.1 雾的原理与优势333

8.3.2 雾的简单实现334

8.4 本章小结336

第9章 常用3D开发小技巧337

9.1 标志板337

9.1.1 案例效果与基本原理337

9.1.2 开发步骤338

9.2 灰度图地形341

9.2.1 基本原理341

9.2.2 开发前的准备工作342

9.2.3 普通灰度图地形342

9.2.4 过程纹理地形344

9.2.5 Mipmap地形347

9.2.6 顶点着色器采样纹理地形351

9.3 高真实感地形353

9.3.1 基本思路353

9.3.2 地形设计工具EarthSculptor的使用354

9.3.3 一个简单的案例356

9.4 天空盒与天空穹358

9.4.1 天空盒358

9.4.2 天空穹359

9.4.3 天空盒与天空穹的使用技巧361

9.5 简单镜像效果361

9.5.1 基本原理361

9.5.2 基本效果案例362

9.5.3 升级效果案例364

9.6 非真实感绘制366

9.6.1 基本原理与案例效果366

9.6.2 具体开发步骤368

9.7 描边效果的实现370

9.7.1 沿法线挤出轮廓370

9.7.2 视空间中挤出373

9.8 本章小结374

第10章 两种测试及片元丢弃375

10.1 剪裁测试375

10.1.1 基本原理与核心代码375

10.1.2 一个简单的案例375

10.2 模板测试377

10.2.1 基本原理377

10.2.2 一个简单的案例380

10.3 片元丢弃操作383

10.4 任意剪裁平面385

10.4.1 基本原理385

10.4.2 茶壶被任意平面剪裁的案例386

10.5 本章小结387

第11章 顶点着色器的妙用388

11.1 飘扬的旗帜388

11.1.1 基本原理388

11.1.2 开发步骤389

11.2 扭动的软糖392

11.2.1 基本原理392

11.2.2 开发步骤393

11.3 风吹椰林场景的开发394

11.3.1 椰子树随风摇摆的基本原理395

11.3.2 开发步骤396

11.4 展翅飞翔的雄鹰400

11.4.1 基本原理400

11.4.2 开发步骤400

11.5 二维扭曲402

11.5.1 基本原理403

11.5.2 开发步骤403

11.6 吹气膨胀特效406

11.6.1 基本原理406

11.6.2 开发步骤406

11.7 本章小结407

第12章 片元着色器的妙用408

12.1 程序纹理技术408

12.1.1 砖块着色器408

12.1.2 沙滩球着色器410

12.2 数字图像处理411

12.2.1 卷积的基本知识411

12.2.2 平滑过滤412

12.2.3 边缘检测413

12.2.4 锐化处理414

12.2.5 浮雕效果414

12.2.6 图像渐变415

12.2.7 卡通渲染416

12.3 分形着色器418

12.3.1 曼德布罗集简介418

12.3.2 曼德布罗集着色器的实现419

12.3.3 将曼德布罗集纹理应用到实际物体上421

12.3.4 茱莉亚集着色器的实现421

12.4 3D纹理的妙用423

12.4.1 噪声函数的基础知识423

12.4.2 柏林噪声生成工具426

12.4.3 3D噪声木纹理茶壶的开发427

12.5 体积雾429

12.5.1 基本原理429

12.5.2 开发步骤430

12.6 粒子系统火焰的开发431

12.6.1 火焰的基本原理431

12.6.2 普通版火焰433

12.6.3 点精灵版火焰441

12.7 本章小结444

第13章 真实光学环境的模拟445

13.1 反射环境模拟445

13.1.1 案例效果与基本原理445

13.1.2 开发前的准备工作446

13.1.3 开发步骤447

13.2 折射环境模拟449

13.2.1 案例效果与基本原理449

13.2.2 开发步骤450

13.3 色散效果模拟452

13.3.1 案例效果与基本原理452

13.3.2 开发步骤452

13.4 菲涅尔效果的模拟453

13.4.1 案例效果与基本原理453

13.4.2 开发步骤454

13.5 凹凸映射455

13.5.1 案例效果与基本原理455

13.5.2 法向量纹理图的生成456

13.5.3 切向量的计算458

13.5.4 案例的开发459

13.6 镜头光晕464

13.6.1 案例效果与基本原理464

13.6.2 镜头光晕案例465

13.7 投影贴图468

13.7.1 案例效果与基本原理468

13.7.2 开发步骤470

13.8 绘制到纹理472

13.8.1 案例效果与基本原理472

13.8.2 开发步骤473

13.9 高级镜像476

13.9.1 案例效果与基本原理476

13.9.2 开发步骤477

13.10 高真实感水面倒影480

13.10.1 案例效果与基本原理480

13.10.2 开发步骤481

13.11 本章小结484

第14章 阴影及高级光照485

14.1 多重渲染目标485

14.1.1 基本知识485

14.1.2 一个简单的案例486

14.2 阴影的重要性491

14.3 平面阴影493

14.3.1 案例效果与基本原理493

14.3.2 开发步骤494

14.4 阴影映射497

14.4.1 案例效果与基本原理497

14.4.2 距离纹理的生成498

14.4.3 阴影场景的绘制501

14.5 阴影贴图506

14.5.1 案例效果与基本原理506

14.5.2 开发步骤507

14.6 静态光照贴图508

14.6.1 案例效果与基本原理508

14.6.2 使用3ds Max制作静态光照贴图509

14.6.3 案例的开发510

14.7 聚光灯高级光源512

14.7.1 第一种实现的案例效果与基本原理513

14.7.2 第一种实现案例的开发步骤514

14.7.3 第二种实现的案例效果与基本原理515

14.7.4 第二种实现案例的开发步骤516

14.8 延迟渲染517

14.8.1 案例效果与基本原理517

14.8.2 开发步骤518

14.9 环境光遮挡522

14.9.1 基本原理522

14.9.2 一个简单的案例524

14.9.3 效率的提升526

14.9.4 平滑处理528

14.10 本章小结529

第15章 几种高级着色器特效530

15.1 运动模糊530

15.1.1 普通运动模糊530

15.1.2 高级运动模糊533

15.2 遮挡透视效果536

15.2.1 案例效果与基本原理536

15.2.2 开发步骤538

15.3 积雪效果541

15.3.1 案例效果与基本原理541

15.3.2 开发步骤541

15.4 背景虚化542

15.4.1 案例效果与基本原理542

15.4.2 开发步骤543

15.5 泛光效果545

15.5.1 案例效果与基本原理545

15.5.2 开发步骤546

15.6 色调映射548

15.6.1 案例效果与背景知识548

15.6.2 开发步骤549

15.7 体绘制550

15.7.1 案例效果与基本原理550

15.7.2 开发步骤551

15.8 本章小结553

第16章 骨骼动画554

16.1 开发骨骼动画554

16.1.1 骨骼动画的基本原理554

16.1.2 开发步骤557

16.1.3 机器人模型在地面上运动时的问题563

16.2 ms3d骨骼动画文件的加载566

16.2.1 ms3d文件的格式566

16.2.2 将3ds Max动画文件转换为ms3d文件570

16.2.3 加载ms3d文件案例的开发574

16.3 自定义格式骨骼动画的加载591

16.3.1 bnggdh文件的格式591

16.3.2 Bnggdh类594

16.3.3 加载bnggdh文件的案例594

16.4 本章小结606

第17章 让应用运行得更流畅——性能优化607

17.1 着色器的优化607

17.1.1 计算量及计算频率的相关问题607

17.1.2 其他需要注意的问题608

17.2 纹理图的优化609

17.3 3D图形绘制的优化610

17.3.1 CPU阶段的优化610

17.3.2 几何阶段的优化611

17.3.3 光栅化阶段的优化612

17.4 图元重启612

17.4.1 基本原理612

17.4.2 一个简单的案例613

17.5 几何体实例渲染614

17.5.1 基本原理614

17.5.2 基于实例渲染的土星光环案例615

17.6 视锥体剪裁620

17.6.1 AABB包围盒的基本原理620

17.6.2 AABB包围盒的计算621

17.6.3 视锥体剪裁的基本思路及实现策略622

17.6.4 一个简单的案例623

17.7 遮挡查询626

17.7.1 相关方法626

17.7.2 基本原理和实现策略626

17.7.3 一个简单的案例627

17.8 计算着色器的使用630

17.8.1 基础知识630

17.8.2 动态法向量光照水面案例633

17.9 多线程并发渲染640

17.9.1 基本原理641

17.9.2 飞船案例的开发641

17.10 多子通道渲染646

17.10.1 基本原理646

17.10.2 一个简单的案例647

17.11 细节级别LOD652

17.12 本章小结653

第18章 杂项654

18.1 四元数旋转654

18.1.1 基本原理与案例效果654

18.1.2 开发步骤656

18.2 3D拾取技术662

18.2.1 案例效果与基本原理662

18.2.2 开发步骤665

18.3 多重采样抗锯齿670

18.3.1 基本知识与案例效果670

18.3.2 一个简单的案例671

18.4 保存屏幕截图674

18.5 Windows系统窗口缩放676

18.6 曲面细分着色器677

18.6.1 基本知识677

18.6.2 一个简单的案例680

18.7 几何着色器685

18.8 macOS、iOS与Linux平台下Vulkan应用的开发688

18.8.1 macOS与iOS平台下Vulkan应用程序的开发688

18.8.2 Linux平台下Vulkan图形应用程序的开发692

18.9 本章小结700

第19章 基于Vulkan的3D休闲游戏——方块历险记701

19.1 游戏背景及功能概述701

19.1.1 游戏开发背景概述701

19.1.2 游戏功能简介701

19.2 游戏的策划及准备工作702

19.2.1 游戏的策划703

19.2.2 游戏的开发准备工作703

19.3 游戏的架构705

19.3.1 各类的简要介绍705

19.3.2 游戏框架简介706

19.4 布景相关类707

19.4.1 3D布景类——My3Dlayer707

19.4.2 总绘制类——MyDraw712

19.4.3 摄像机管理类——CameraUtil716

19.4.4 3D物体创建类——Square3D717

19.5 机关与方块相关类718

19.5.1 方块管理类——ZFTManager718

19.5.2 地刺机关管理类——DiCiBox721

19.5.3 掉落块机关管理类——DiaoLuoManager722

19.6 游戏入口及辅助工具类724

19.6.1 游戏入口类——main724

19.6.2 触控监听类——Touch2D726

19.7 着色器的开发728

19.8 游戏的优化及改进730

热门推荐