注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Vulkan 应用开发指南

Vulkan 应用开发指南

Vulkan 应用开发指南

定 价:¥89.00

作 者: [美] 格拉汉姆·塞勒斯(Graham Sellers) 著,李晓波 等 译
出版社: 人民邮电出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787115506801 出版时间: 2019-06-01 包装: 平装
开本: 16开 页数: 327 字数:  

内容简介

  本书系统地介绍下一代OpenGL规范Vulkan,揭示了Vulkan的独特性。本书主要内容包括:内存和资源、队列和命令、数据的移动、图像的展示、着色器和管线、图形管线对象、绘制命令、几何体的处理、片段的处理、同步、数据的回读以及多渲染通道等。本书适合图形程序开发人员、熟悉图形和计算API的程序员阅读,也可供对Vulkan感兴趣的专业人士阅读。

作者简介

  格拉汉姆·塞勒斯(Graham Sellers),AMD软件架构师和研究员,负责AMD的Radeon和Fire系列产品的OpenGL与Vulkan驱动程序的开发,在OpenGL ARB中代表AMD为核心OpenGL规范和扩展做出了大量贡献,拥有多项图形和图像处理专利。约翰·克赛尼希(John Kessenich),Vulkan方面的语言专家,LunarG公司架构师,自1999年以来积极参与开发OpenGL ARB与Khronos中的OpenGL、GLSL、Vulkan和SPIR-V。他创建了 SPIR-V,还创建了着色器编译器用于提高可移植性。

图书目录

目 录

第 1章 Vulkan概述 1
1.1 引言 1
1.2 实例、设备和队列 2
1.2.1 Vulkan实例 3
1.2.2 Vulkan物理设备 5
1.2.3 物理设备内存 8
1.2.4 设备队列 9
1.2.5 创建逻辑设备 11
1.3 对象类型和函数约定 14
1.4 管理内存 14
1.5 Vulkan里的多线程 15
1.6 数学概念 16
1.6.1 向量和矩阵 16
1.6.2 坐标系 17
1.7 增强Vulkan 17
1.7.1 层 17
1.7.2 扩展 20
1.8 彻底地关闭应用程序 23
1.9 总结 24
第 2章 内存和资源 25
2.1 主机内存管理 25
2.2 资源 30
2.2.1 缓冲区 31
2.2.2 格式和支持 33
2.2.3 图像 36
2.2.4 资源视图 46
2.2.5 销毁资源 52
2.3 设备内存管理 53
2.3.1 分配设备内存 54
2.3.2 CPU访问设备内存 56
2.3.3 绑定内存到资源上 59
2.3.4 稀疏资源 62
2.4 总结 68
第3章 队列和命令 69
3.1 设备队列 69
3.2 创建命令缓冲区 71
3.3 记录命令 73
3.4 回收利用命令缓冲区 76
3.5 命令的提交 77
3.6 总结 79
第4章 移动数据 80
4.1 管理资源状态 81
4.1.1 管线屏障 81
4.1.2 全局内存屏障 83
4.1.3 缓冲区内存屏障 86
4.1.4 图像内存屏障 87
4.2 清除和填充缓冲区 89
4.3 清空和填充图像 90
4.4 复制图像数据 92
4.5 复制压缩图像数据 96
4.6 拉伸图像 97
4.7 总结 98
第5章 展示 99
5.1 展示扩展 99
5.2 展示表面 100
5.2.1 在微软的Windows上展示 100
5.2.2 在基于Xlib的平台上展示 101
5.2.3 在Xcb上展示 102
5.3 交换链 103
5.4 全屏表面 110
5.5 执行展示 115
5.6 清除 117
5.7 总结 118
第6章 着色器和管线 119
6.1 GLSL概述 120
6.2 SPIR-V概述 122
6.2.1 如何表示SPIR-V 122
6.2.2 把SPIR-V传递给Vulkan 125
6.3 管线 126
6.3.1 计算管线 126
6.3.2 创建管线 127
6.3.3 特化常量 128
6.3.4 加速管线的创建 131
6.3.5 绑定管线 134
6.4 执行工作 135
6.5 在着色器中访问资源 136
6.5.1 描述符集 136
6.5.2 绑定资源到描述符集 145
6.5.3 绑定描述符集 150
6.5.4 uniform、纹素和存储
缓冲区 151
6.5.5 推送常量 154
6.5.6 采样图像 157
6.6 总结 162
第7章 图形管线 163
7.1 逻辑图形管线 163
7.2 渲染通道 166
7.3 帧缓冲区 172
7.4 创建一个简单的图形管线 174
7.4.1 图形着色器阶段 175
7.4.2 顶点输入状态 179
7.4.3 输入组装 183
7.4.4 细分状态 186
7.4.5 视口状态 187
7.4.6 光栅化状态 188
7.4.7 多重采样状态 190
7.4.8 深度和模板状态 190
7.4.9 颜色混合状态 191
7.5 动态状态 193
7.6 总结 195
第8章 绘制 196
8.1 准备绘制 197
8.2 顶点数据 199
8.3 索引绘制 200
8.3.1 只用索引的绘制 204
8.3.2 重置索引 205
8.4 实例化 206
8.5 间接绘制 208
8.6 总结 211
第9章 几何体处理 212
9.1 表面细分 212
9.1.1 表面细分配置 213
9.1.2 表面细分相关变量 218
9.1.3 表面细分示例:置换贴图 225
9.2 几何着色器 229
9.2.1 图元裁剪 235
9.2.2 几何着色器实例化 236
9.3 可编程顶点尺寸 237
9.4 线的宽度以及光栅化 239
9.5 用户裁剪和剔除 241
9.6 视口变换 247
9.7 总结 250
第 10章 片段处理 251
10.1 裁剪测试 251
10.2 深度和模板测试 253
10.2.1 深度测试 254
10.2.2 模板测试 258
10.2.3 早期片段测试 259
10.3 多重采样渲染 260
10.3.1 采样率着色 262
10.3.2 多重采样解析 263
10.4 逻辑操作 264
10.5 片段着色器输出 266
10.6 颜色混合 269
10.7 总结 271
第 11章 同步 272
11.1 栅栏 273
11.2 事件 279
11.3 信号量 282
11.4 总结 285
第 12章 回读数据 286
12.1 查询 286
12.1.1 执行查询 288
12.1.2 计时查询 293
12.2 通过主机读取数据 294
12.3 总结 295
第 13章 多通道渲染 296
13.1 输入附件 297
13.2 附件内容 303
13.2.1 附件的初始化 303
13.2.2 渲染区域 305
13.2.3 保存附件内容 306
13.3 副命令缓冲区 313
13.4 总结 315
附录A Vulkan函数 316
词汇表 318

本目录推荐