logo
分类于: 职场办公 互联网

简介

Vulkan 应用开发指南

Vulkan 应用开发指南 0.0分

资源最后更新于 2020-08-23 08:25:49

作者:格拉汉姆·塞勒斯(Graham Sellers)

译者:李晓波

出版社:人民邮电出版社

出版日期:2019-01

ISBN:9787115506801

文件格式: pdf

标签: 计算机图形学 编程 图形学

简介· · · · · ·

下一代OpenGL规范已经重新进行了设计,从而使得应用程序可以直接控制GPU的加速。本书系统地介绍下一代OpenGL规范Vulkan、它的目标以及构建其API的关键概念,揭示了Vulkan的独特性。

本书讨论的主题非常宽泛,从绘图命令到内存,再到计算着色器的线程。本书重点展示了如何处理现在由开发人员负责的同步、调度和内存管理等任务。本书是Vulkan开发人员的指南和参考手册,有助于读者迅速掌握跨平台图形的下一代规范。你将从本书中学习到可用于从视频游戏到医学成像等领域的3D开发技术,以及解决复杂的科学计算问题的先进方法。

本书主要内容

. 大量经过反复测试的代码示例,用于演示Vulkan的功能并展示它与OpenGL的区别。

. Vulkan中的新内存系统。

. 队列、命令和移动数据的方法。

. SPIR-V二进制着色语言和计算/图形管道。

. 绘图命令...

直接下载

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

目 录
第 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