热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

VULKAN图形编程:构建渲染引擎的技术、实现和算法优化

编号:
wx1203841872
销售价:
¥87.12
(市场价: ¥99.00)
赠送积分:
87
数量:
   
商品介绍

还在为传统图形API性能瓶颈发愁?
想在图形技术领域占据优势?
《Vulkan图形编程》专为突破这一难题而来!作者结合AMD、The Multiplayer Group一线经验,从Raptor引擎基础架构讲起,逐步深入异步计算、网格着色器、稀疏资源等核心技术,更覆盖光线追踪、时间抗锯齿等前沿内容。每章都有可落地的实战代码(GitHub可获取)。无论你是游戏开发者还是图形工程师,都能借助书中技术构建高性能渲染引擎,轻松应对多光源、体积雾等复杂场景,适配Windows/Linux双平台,助力项目高效落地。

本书深入探讨Vulkan图形编程技术,助力读者掌握构建渲染引擎的技术、实现和算法优化。本书从开发渲染框架基础入手,引导读者学习利用Vulkan高级功能编写现代渲染引擎。具体涵盖自动化资源绑定和依赖管理、运用GPU驱动渲染技术扩展场景规模、熟悉光线追踪技术、提升渲染图像视觉质量等内容。通过学习本书,读者能够全面了解现代渲染引擎内部工作原理,掌握实现先进渲染效果的图形技术,所开发的框架还可作为未来实践的起点,适合有图形编程基础且希望深入学习Vulkan的开发者阅读。

目  录<br />译者序<br />致谢<br />前言<br />关于作者<br />关于审校者<br />第一部分 现代渲染引擎的基础知识<br />第1章 Raptor引擎和Hydra工程<br />概述 2<br />1.1 技术要求 2<br />1.1.1 Windows 3<br />1.1.2 Linux 3<br />1.1.3 macOS 4<br />1.2 如何阅读本书 5<br />1.3 理解代码结构 5<br />1.4 理解glTF场景格式 12<br />1.5 PBR技术简介 18<br />1.6 关于GPU调试的说明 20<br />1.7 总结 22<br />1.8 扩展阅读 23<br />第2章 优化资源管理 24<br />2.1 技术要求 24<br />2.2 解锁和实现无绑定渲染 24<br />2.2.1 检查支持情况 25<br />2.2.2 创建描述符池 26<br />2.2.3 更新描述符集 28<br />2.2.4 更新着色器代码 30<br />2.3 自动化流水线布局生成 31<br />2.3.1 将GLSL编译为SPIR-V 31<br />2.3.2 理解SPIR-V的输出内容 33<br />2.3.3 从SPIR-V到流水线布局 35<br />2.4 通过流水线缓冲区减少加载时间 39<br />2.5 总结 42<br />2.6 扩展阅读 42<br />第3章 解锁多线程技术 43<br />3.1 技术要求 44<br />3.2 使用enkiTS实现基于任务的<br />多线程 44<br />3.2.1 为什么使用基于任务的<br />并行机制 44<br />3.2.2 使用enkiTS<br />(任务调度器)库 45<br />3.3 异步加载 46<br />3.3.1 创建I/O线程和任务 47<br />3.3.2 Vulkan队列及第一条并行<br />指令生成 49<br />3.3.3 AsynchronousLoader<br />类 52<br />3.4 在多个线程上记录命令 57<br />3.4.1 分配策略 58<br />3.4.2 命令缓冲区回收 58<br />3.4.3 主命令缓冲区与次命令<br />缓冲区 59<br />3.4.4 使用主命令缓冲区进行<br />绘制 59<br />3.4.5 使用次命令缓冲区进行<br />绘制 60<br />3.4.6 生成多个任务以记录命令<br />缓冲区 61<br />3.5 总结 62<br />3.6 扩展阅读 63<br />第4章 实现帧图 64<br />4.1 技术要求 64<br />4.2 理解帧图 64<br />4.2.1 构建图 65<br />4.2.2 数据驱动的方法 66<br />4.2.3 实现帧图 68<br />4.2.4 实现拓扑排序 70<br />4.2.5 通过帧图驱动渲染 77<br />4.3 总结 79<br />4.4 扩展阅读 80<br />第5章 解锁异步计算技术 81<br />5.1 技术要求 81<br />5.2 用单一时间线信号量替换多栅栏 81<br />5.2.1 启用时间线信号量扩展 82<br />5.2.2 创建时间线信号量 84<br />5.2.3 在CPU上等待时间线<br />信号量 84<br />5.2.4 在GPU上使用时间线<br />信号量 85<br />5.3 添加一个用于异步计算的单独<br />队列 86<br />5.4 通过异步计算实现布料模拟 89<br />5.4.1 使用计算着色器的好处 89<br />5.4.2 计算着色器概述 89<br />5.4.3 编写计算着色器 90<br />5.5 总结 95<br />5.6 扩展阅读 95<br />第二部分 GPU驱动的渲染<br />第6章 GPU驱动的渲染 98<br />6.1 技术要求 99<br />6.2 将大型几何体网格分解成网格<br />单元 99<br />6.3 了解任务着色器和网格着色器 103<br />6.3.1 实现任务着色器 104<br />6.3.2 实现网格着色器 107<br />6.4 使用计算着色器进行GPU端的<br />剔除 109<br />6.4.1 深度金字塔生成 110<br />6.4.2 遮挡剔除 111<br />6.5 总结 114<br />6.6 扩展阅读 114<br />第7章 使用集群延迟渲染技术处理<br />多光源 116<br />7.1 技术要求 116<br />7.2 集群照明方案的简要历史 116<br />7.3 实现一个G-Buffer缓冲区 120<br />7.4 实现光照集群 125<br />7.4.1 CPU端的光源分配 125<br />7.4.2 GPU端的光源处理 130<br />7.5 总结 131<br />7.6 扩展阅读 132<br />第8章 使用网格着色器添加阴影 133<br />8.1 技术要求 133<br />8.2 阴影技术的简要历史 133<br />8.2.1 阴影体积法 134<br />8.2.2 阴影映射法 134<br />8.2.3 光线追踪阴影 134<br />8.3 使用网格着色器实现阴影映射 135<br />8.3.1 概述 135<br />8.3.2 立方体贴图阴影 136<br />8.3.3 关于多视图渲染的说明 137<br />8.3.4 逐光源进行网格实例剔除 137<br />8.3.5 间接绘制命令的生成 139<br />8.3.6 阴影立方体贴图面的剔除 140<br />8.3.7 网格单元阴影渲染:任务<br />着色器 141<br />8.3.8 网格单元阴影渲染:网格<br />着色器 144<br />8.3.9 阴影图采样 145<br />8.4 利用Vulkan的稀疏资源机制优化<br />阴影内存 146<br />8.4.1 创建和分配稀疏纹理 147<br />8.4.2 选择每个光源的阴影内存<br />使用方案 149<br />8.4.3 渲染到稀疏阴影图 152<br />8.5 总结 154<br />8.6 扩展阅读 154<br />第9章 实现可变速率着色 156<br />9.1 技术要求 156<br />9.2 介绍可变速率着色技术 156<br />9.3 使用Vulkan API集成可变速率<br />着色 158<br />9.4 利用特化常量 161<br />9.5 总结 164<br />9.6 扩展阅读 164<br />第10章 添加体积雾效果 165<br />10.1 技术要求 166<br />10.2 介绍体积雾渲染 166<br />10.2.1 体积渲染 166<br />10.2.2 体积雾 167<br />10.3 实现体积雾渲染 170<br />10.3.1 数据注入 170<br />10.3.2 计算光照贡献 171<br />10.3.3 集成散射和消光效果 173<br />10.3.4 将体积雾应用到场景 174<br />10.3.5 添加滤波器 175<br />10.3.6 体积噪声生成 178<br />10.3.7 蓝噪声 178<br />10.4 总结 179<br />10.5 扩展阅读 180<br />第三部分 高级渲染技术<br />第11章 时间抗锯齿技术 182<br />11.1 技术要求 183<br />11.2 概述 183<br />11.3 最简单的时间抗锯齿实现 185<br />11.3.1 相机抖动 185<br />11.3.2 选择抖动序列 186<br />11.3.3 添加运动向量 187<br />11.3.4 初步的实现代码 188<br />11.4 改进时间抗锯齿技术 189<br />11.4.1 重投影 189<br />11.4.2 历史采样 190<br />11.4.3 场景采样 191<br />11.4.4 历史约束 192<br />11.4.5 解析 193<br />11.5 锐化图像 195<br />11.5.1 后处理的图像锐化 195<br />11.5.2 负MIP偏差 196<br />11.5.3 消除纹理UV的抖动 196<br />11.6 改善条带效应 196<br />11.7 总结 197<br />11.8 扩展阅读 198<br />第12章 开始使用光线追踪 199<br />12.1 技术要求 199<br />12.2 Vulkan中光线追踪技术的简介 199<br />12.3 构建BLAS和TLAS 201<br />12.4 定义并创建光线追踪流水线 206<br />12.5 总结 212<br />12.6 扩展阅读 212<br />第13章 基于光线追踪重新审视<br />阴影 214<br />13.1 技术要求 214<br />13.2 实现简单的光线追踪阴影 214<br />13.3 改进光线追踪阴影 216<br />13.3.1 运动向量 216<br />13.3.2 计算可见性方差 217<br />13.3.3 计算可见性 218<br />13.3.4 计算滤波后的可见性 223<br />13.3.5 使用滤波后的可见性 224<br />13.4 总结 225<br />13.5 扩展阅读 225<br />第14章 基于光线追踪增加动态<br />漫反射全局照明 226<br />14.1 技术要求 227<br />14.2 间接照明简介 227<br />14.3 动态漫反射全局照明简介 228<br />14.3.1 对每个探针执行光线<br />追踪 229<br />14.3.2 探针偏移 230<br />14.3.3 探针辐照度和可见性<br />更新 230<br />14.3.4 探针采样 232<br />14.4 实现动态漫反射全局照明 232<br />14.4.1 光线生成着色器 232<br />14.4.2 光线命中着色器 233<br />14.4.3 光线未命中着色器 235<br />14.4.4 探针辐照度和可见性<br />更新着色器 235<br />14.4.5 间接照明采样 239<br />14.4.6 对calculate_lighting方法的修改 243<br />14.4.7 探针偏移着色器 243<br />14.5 总结 247<br />14.6 扩展阅读 247<br />第15章 基于光线追踪增加反射<br />效果 249<br />15.1 技术要求 249<br />15.2 屏幕空间反射的工作原理 250<br />15.3 实现基于光线追踪的反射 251<br />15.4 实现去噪器 255<br />15.5 总结 260<br />15.6 扩展阅读 260

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111788669
条码 9787111788669
编者 [美]马可·卡斯托瑞纳(Marco Castorina),[美]加布里埃尔·萨松(Gabriel Sassone) 著
译者
出版年月 2025-09-01 00:00:00.0
开本 16开
装帧 平装
页数 264
字数 396
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]