学习笔记:pbrt中的材质

与DirectX,OpenGL等图形渲染管线一样,pbrt中也使用了材质的概念,它的底层是BRDF和BTDF,它的核心作用是确定物体表面在某光线照射下所呈现的颜色。实现这一功能需要完成两个方面的工作,第一个工作是给出物体表面的反射特性和透射特性;第二个工作是讲该光线经过这一物体表面后所表现的颜色计算出来。大部分图形引擎或图形API都把这两个工作整合的到一个模块中。但在pbrt中,考虑可能需要针对第二项工作开发不同的解决方案,因而pbrt中把这两项工作放置于不同的模块中。

由于物体的材质同时涉及BRDF和BTDF,两者形式类似,使用方式类似,因而作者引入一个新类BSDF,双向散射分布函数,同时包含BRDF和BTDF。pbrt的开发者认为,在一次渲染中,使用的brdf和btdf数量有限,所以对存储他们指针的数组取了一个数据规模的上限。开发者这样做,我猜测是要避免动态内存分配出现。这样做也是合理的,不过要根据场景的复杂程度,设置不同的数据规模上限。由于BRDF和BTDF一般都是在局部坐标系中定义的,且以xy为表面,以z轴正方向为法线方向,所以还需要构建光线方向在世界坐标系和局部坐标系间相互转换的变换矩阵。另外还需要注意的一点是,为了实现更为丰富的效果,比如凹凸贴图,在使用材质时涉及几何法线方向和着色法线方向,两个法线方向可能并不重合。在实际计算BRDF和BTDF时,使用的是着色法线。这样一来,再带来更丰富的效果的同时,也会带来在一些情况下该显示的反射光线未显示或不该显示的反射光线显示出来的问题。解决这一问题的方法是首先按几何法线确定是否应该显示反射光线,如果是再按着色法线计算BRDF。

考虑了上述一些特殊问题后,就可以实现材质的接口了。材质的接口的功能就是返回表面某处的BRDF和BTDF,供后续光照计算使用。当然,它还涉及了一些存储空间管理功能。此外,它只是一个接口,还需要针对不同的材质进行具体化。

(1)MatteMaterial.这种材质完全是基于Oren-Nayar模型实现的漫反射材质。它引入了两个变量,一个是漫反射系数,一个是表面粗糙度。当表面粗糙度系数减小至0后,它就成为Lambertian材质。事实上Oren-Nayar模型本身也具有这一特性。

(2)PlasticMaterial。这种材质实现了漫反射和光泽散射的合成效果。它一共使用了三个参数,其中两个参数分别表示漫反射和光泽散射的强弱,另一个参数被称之为粗糙度参数,用于表明高光范围的大小,粗糙度参数越大,高光范围越大。这里的光泽散射在一定程度上可以视作镜面反射了。按pbrt开发者的描述,这种材质虽然和上一章的菲涅尔入射模型都是实现的都是漫反射和镜面反射的组合,但两者的模型不同,效果也有差异。

(3)混合材质。存储两种不同的材质,并根据某种算法对两种材质进行缩放后求和,作为最终返回材质。

(4)其他材质:测算材质(各向同性的规则采样和不规则采样数据);Glass(按菲涅尔公式实现镜面反射和透视分配);Metal(基于导体的菲涅尔方程);Mirror(全镜面反射);Substrate(菲涅尔入射模型);SubSurface和KdSubSurface(BSSRDF);Translucent(漫反射、光泽镜面、透视);Uber(高度参数化的混合材质)。

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