教你一步步写一个cuda path tracer:前言


简介

这是一套关于如何使用cuda实现path tracing算法的系列教程。

背景

我是一名计算机学院的研究生,目前就读于浙江大学。由于自己非常热爱图形学,因此会花很多时间学习图形学的相关知识,包括opengl、dx这些图形API,还有unity、unreal等游戏引擎。

最近几个月一直在研究path tracing算法。当第一次看到path tracing跑出来的渲染图时,我整个人都惊呆了:全局光照的光影效果实在是太棒了!但是path tracing也有一个致命缺点:计算量太大。往往渲染一张图片需要花上几分钟甚至几十分钟的时间。好在path tracing拥有天生的高度并行性,使得它可以被完美地移植到GPU上运行,而且可以大大提高渲染速度。cuda作为Nvidia的通用并行计算架构,提供了强大的计算能力,是目前做GPU通用计算的不二首选。所以path tracing和cuda是一对再好不过的搭档,正好可以互相成全。

目的

感谢前辈们的努力,path tracing已经被研究地很透彻了,而且还延伸出各种变型:photon mapping, bidirectional path tracing, metropolis light transport...关于path tracing的并行化,也已经有了长足的进展。像Brigade这种号称是real-time path tracing的游戏引擎都面世好几年了,其内部肯定用了GPU并行加速。

在研究path tracing的过程中,我参考了大量国外技术博客,也翻阅了一些国外课程网站和期刊论文。但是无一例外,所有参考资料都来自国外。由此可以看出国内对图形学的研究较之国外,还差很多,至少经典的图形学算法的普及度还不够(浙大CAD实验室还是有很多图形学牛人的,比如周昆大神0 0)。因此我想把我这段时间的所思所想所学都写下来,放在网上。一方面想系统地捋一遍最近学到的知识,另一方面也想尽自己的一份绵薄之力,写一套比较系统的技术教程。希望这些文章能对感兴趣的同学有所帮助。

安排

关于cuda部分,我会介绍cuda的基本理论和编程方法。其实对于我们要实现的cuda path tracer来说,我们并不需要深入了解cuda的技术细节,入门即可。

关于path tracing部分,我准备从最基本的数学理论一步步讲起。其中monte carlo方法是重点要讲的部分,此外还有rendering equation。

说一句题外话。我个人认为,像path tracing这类的全局光照算法是非常优雅的算法,因为它的模型本身就是对现实场景的很好模拟,比如光线的反射、折射、散射,比如光线在场景中的传输;而像传统的栅格化算法相比前者就显得丑陋不堪,因为它是局部光照算法,模型本身就没有考虑物体之间的相互影响。所有全局光照才有的效果,例如阴影、焦散、color bleeding,只能通过各种hack的方法实现。所以学习计算机图形学最好是从全局光照算法开始,而现在大部分高校的计算机图形学课程都是先讲或者只讲opengl的。

感谢

我目前实现的cuda path tracer,其中大部分的技术细节都来自Sam Lapere的博客。除此之外还参考了RichieSam's blog, CAPISCE's blog, smallPT, Peter Kutz and Yining Karl Li's homework...另外还要重点提一下scratchapixel,如果你和我一样只是刚入门没多久,又想认真学习计算图形学的理论知识的话,强烈推荐这个网站!scratchapixel的技术门槛比较低,而基础理论讲得非常详细,通俗易懂。个人尤其喜欢它关于monte carlo的讲解,终于解答困扰了我多年的疑惑!缺点就是更新速度太慢,但是放出来的教程已经基本涵盖了path tracing的所有理论基础了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容