编辑推荐
揭开新一代图形处理API的神秘面纱,发挥出图形硬件的全部潜能。
内容简介
本书由12章构成,其中包括:Vulkan API的基础知识、Vulkan 图像显示、命令缓冲区和同步化、资源和内存、描述符集合、渲染通道和帧缓冲区、着色器、图形和计算管线、记录命令和绘制操作、拾遗补缺、照明、高级渲染技术。
章节目录
版权信息
内容简介
译者序
作者简介
致谢
审稿人简介
前言
第1章 Vulkan的基础知识
本章主要内容
下载Vulkan的SDK
启用验证层
连接Vulkan Loader库
加载Vulkan函数的准备工作
加载从Vulkan Loader库导出的函数
加载全局级函数
检查可用的实例扩展
创建Vulkan实例
加载实例级函数
确认哪些物理设备可用
检查可用的设备扩展
获取物理设备的功能和属性信息
检查可用队列家族和它们的属性
根据功能选择队列家族的索引
创建逻辑设备
加载设备级函数
获取设备队列
使用几何着色器、图形和计算队列创建逻辑设备
销毁逻辑设备
销毁Vulkan实例
释放Vulkan Loader库
第2章 Vulkan图像显示
本章主要内容
通过已启用的WSI扩展创建Vulkan实例
创建显示曲面
选择支持显示指定曲面功能的队列家族
通过已启用的WSI扩展创建逻辑设备
选择显示模式
获取显示曲面的功能
选择交换链图像
选择交换链图像的尺寸
选择使用交换链图像的场景
选择转换交换链图像的方式
选择交换链图像的格式
创建交换链
获取交换链图像的句柄
通过R8G8B8A8格式和邮箱显示模式(mailbox present mode)创建交换链
获取交换链图像
显示图像
销毁交换链
销毁显示曲面
第3章 命令缓冲区和同步化
本章主要内容
创建命令池
分配命令缓冲区
启动命令缓冲区记录操作
停止命令缓冲区记录操作
重置命令缓冲区
重置命令池
创建信号
创建栅栏
等待栅栏
重置栅栏
将命令缓冲区提交给队列
使两个命令缓冲区同步
查明已提交命令缓冲区的处理过程是否已经结束
在提交给队列的所有命令都被处理完之前等待
等待已提交的所有命令都被处理完
销毁栅栏
销毁信号
释放命令缓冲区
销毁命令池
第4章 资源和内存
本章主要内容
创建缓冲区
为缓冲区分配内存对象并将它们绑定到一起
设置缓冲区内存屏障
创建缓冲区视图
创建图像
将内存对象分配给图像并将它们绑定到一起
设置图像内存屏障
创建图像视图
创建2D图像和视图
通过CUBEMAP视图创建分层的2D图像
映射、更新主机可见内存及移除主机可见内存的映射关系
在缓冲区之间复制数据
将数据从缓冲区复制到图像
将数据从图像复制到缓冲区
使用暂存缓冲区更新与设备本地内存绑定的缓冲区
使用暂存缓冲区更新与设备本地内存绑定的图像
销毁图像视图
销毁图像
销毁缓冲区视图
释放内存对象
销毁缓冲区
第5章 描述符集合
本章主要内容
创建采样器
创建已采样的图像
创建合并的图像采样器
创建仓库图像
创建统一纹素缓冲区
创建仓库纹素缓冲区
创建统一缓冲区
创建仓库缓冲区
创建输入附着材料
创建描述符集合布局
创建描述符池
分配描述符集合
更新描述符集合
绑定描述符集合
通过纹素和统一缓冲区创建描述符
释放描述符集合
重置描述符池
销毁描述符池
销毁描述符集合布局
销毁采样器
第6章 渲染通道和帧缓冲区
本章主要内容
设置附着材料描述
设置子通道描述
设置子通道之间的依赖关系
创建渲染通道
创建帧缓冲区
为几何渲染和后处理子通道准备渲染通道
通过颜色和深度附着材料准备渲染通道和帧缓冲区
启动渲染通道
进入下一个子通道
停止渲染通道
销毁帧缓冲区
销毁渲染通道
第7章 着色器
本章主要内容
将GLSL着色器转换为SPIR-V程序
编写顶点着色器
编写细分曲面控制着色器
编写细分曲面评估着色器
编写几何着色器
编写片段着色器
编写计算着色器
编写通过将顶点位置乘以投影矩阵获得新顶点位置的顶点着色器
在着色器中使用入栈常量
编写纹理化的顶点和片段着色器
通过几何着色器显示多边形的法线
第8章 图形和计算管线
本章主要内容
创建着色器模块
设置管线着色器阶段
设置管线顶点绑定关系描述、属性描述和输入状态
设置管线输入组合状态
设置管线细分曲面状态
设置管线视口和剪断测试状态
设置管线光栅化状态
设置管线多重采样状态
设置管线深度和刻板状态
设置管线混合状态
设置管线动态状态
创建管线布局
设置图形管线创建参数
创建管线缓存对象
通过管线缓存获取数据
合并多个管线缓存对象
创建图形管线
创建计算管线
绑定管线对象
通过合并的图像采样器、缓冲区和入栈常量范围,创建管线布局
创建含有顶点和片段着色器,并启用了深度测试及动态视口和剪断测试功能的图形管线
在多个线程中创建多个图形管线
销毁管线
销毁管线缓存对象
销毁管线布局
销毁着色器模块
第9章 记录命令和绘制操作
本章主要内容
清除颜色图像
清除深度—刻板图像
清除渲染通道附着材料
绑定顶点缓冲区
绑定索引缓冲区
通过入栈常量为着色器提供数据
通过动态方式设置视口状态
通过动态方式设置剪断状态
通过动态方式设置线条宽度状态
通过动态方式设置深度偏移状态
通过动态方式设置混合常量状态
绘制几何图形
绘制带索引的几何图形
分配计算工作
在主要命令缓冲区的内部执行次要命令缓冲区
在命令缓冲区中记录通过动态视口和剪断状态绘制几何图形的命令
通过多个线程向命令缓冲区中记录命令
创建动画中的单个帧
通过增加已渲染帧的数量提高性能
第10章 拾遗补缺
本章主要内容
创建转移矩阵
创建旋转矩阵
创建缩放矩阵
创建透视投影矩阵
创建正交投影矩阵
从文件加载纹理数据
从OBJ文件加载3D模型
第11章 照明
本章主要内容
通过顶点漫射照明渲染几何图形
通过片段镜面反射照明渲染几何图形
通过法线贴图渲染几何图形
使用立方体贴图绘制反射和折射几何图形
向场景中添加阴影
第12章 高级渲染技术
本章主要内容
绘制天空盒
使用几何着色器绘制广告牌
使用计算和图形管线绘制微粒
渲染细化的地形
为进行后处理渲染四画面全屏效果
对颜色纠偏后处理效果使用输入附着材料
Vulkan实战是2022年由电子工业出版社出版,作者[波兰]帕维尔·利平斯基。
得书感谢您对《Vulkan实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。