WebGPU实时光追美少女
世界Create
作为一个老二刺螈,我进入这个行业的最初动机可以追溯到十年前打通了《Ever17》的那个下午,这个动机就是——美少女。做一个美少女游戏,是我人生的悲愿,而为了完成这个愿望,我必须要从头开始,学习编程、图形学、编写渲染引擎、乃至实现游戏引擎。而在硬件高速发展的现在,实时光线追踪成为了可能,同时Web平台上的新一代图形APIWebGPU提供了丰富的能力也可以让我们进行这样的尝试。
所以为了渲染一个美少女,我一边学习一边实现,最终完成了这个项目和系列文章教程。本系列文章将会论述如何用WebGPU来实现一个实时路径追踪渲染器,从一个简单渲染器为开端层层深入,了解经典路径追踪渲染器的各个部分,以及BRDF模型在路径追踪中的实现。
当然,最后因为性能太渣,真实感的美少女并没有被渲染出来,只能渲染一个LowPoly的Miku555
项目
项目的Github仓库为:dtysky/webgpu-renderer。
Demo为:Demo,注意目前需要最新的Chrome Canary版本,并且打开特定flag
才行,详见项目的readme
。
文章
- 概览介绍:将会对整个项目涉及的知识做一个综述。
- WebGPU基础与简单渲染器:通过自己实现的一个简单渲染器来论述WebGPU的能力。
- 路径追踪-场景数据组织:针对路径追踪,如何组织场景数据,涉及到PBR材质、glTF、场景合并等。
- 路径追踪-管线组织与GBuffer:针对路径追踪,如何组织渲染管线,同时论述GBuffer的生成。
- 路径追踪-BVH与射线场景求交插值:如何构建BVH,以及如何在CS中求交。
- 路径追踪-BRDF与蒙特卡洛积分:论述如何在路径追踪中运用蒙特卡洛采样实现直接光照和间接光照,以及运用BRDF光照模型。
- 路径追踪-降噪与色调映射:如何对充满噪点的图像进行空间和时间的滤波,最后输出如何进行色调映射。
- 踩坑与调试心得:对于WebGPU这样一个实验性的API(至少当时),我是如何进行调试的血泪史(主要是CS部分)。
后记
由于本人水平有限,文章难免会有纰漏,欢迎各位在评论区积极指正。
以及即便是能搞这些了,我还是做不出来我的美少女游戏,哎......
点击查看评论