nvida MDL introoduction


基本原理

这里写图片描述
跟其他渲染器一样也是把材质赋给几何体,再渲染出图。在官方的文档里有一条说明“IRay渲染器不支持对NURBS和细分曲面的渲染,需要转换成多边形”。


光照

有两个要点,一是“Light is only reflected ,transmitted and emitted”,另一个是“Angles matter”。我理解的它是对应着reflection、refraction、diffuse这三个参数。另一条的意思是光线的入射角度和人眼的视角对最终图像是有影响的。由于物体表面不是完全的光滑和粗糙,人眼所看到的光的强度也不一样,越光滑反射光束越集中,因为漫反射而产生的衰减也越小。由此就形成了光的能量分布。
这里写图片描述


材质结构

这里写图片描述
在MDL语法里可以表现为下图
这里写图片描述


  • reflection和transmission也就是反射、折射,用BSDF( bidirectional scattering distribution function)来描述,emission用EDF(emissive distribution function)描述,volume properties则用VDF描述。材质和上面这三个DF们是MDL的主要描述了。用他们可以调节材质的光泽度啊或者可以做出thin_walled薄膜效应(就像阳光照射下的肥皂泡那样子的),也可以作为参数传给其他DF们一层层复合,往后的例子可以看出是怎么个用法。


  • geometric properties是用来描述镂空、置换贴图和法线贴图的。

  • 注意到surface被分成了两个面,MDL可以判断这个面有没有跟其他面一起围成形状体,没有的话将会被判定为反面,反面的话volume properties是不会被应用的。

这里另外解释下BSDF,它跟BRDF差不多,一个表面对不同的光线入射角和反射角的组合,拥有不同的反射率,BSDF将折射也考虑进去
定义一个材质的结构体如下
这里写图片描述
这个struct material里面可以包含很多个、很多层结构体,比如material_surface就是一个struct,它又包含bsdf类型的scattering参数和material_emission的emission参数;material_emission又是一个结构体,如下图所示
这里写图片描述
这里写图片描述
下图比较形象的表示出material的结构层次
这里写图片描述
有了这些结构我们就可以按MDL的语法来创建材质了,语法是这样的

material name(
    material-parameters)
=material(
    material-arguments)

在赋值时用let-in句式使结构整齐易懂
这里写图片描述

DF们

MDL用上面的DF们描述物体与光的交互。
这里写图片描述
这里写图片描述
这里bsdf很容易理解,它所呈现出来的效果就是物体看上去是透明不透明、镜面还是磨砂。而EDF就比较有意思了,文档里说“ The traditional computer graphics methods of lighting a scene with special purpose constructs (like “directional lights” and “point lights”) is replaced in MDL by defining properties of geometric objects so that they emit light.”像Maya里的面光Area Light、点光Spot、平行光Directional 、聚光灯Point都被自发光材质代替了(Iray也依旧支持渲染,只是实际操作的时候intensity参数要很大,这个在另一篇Iray材质测试里会写)。
刚才提到material、BSDF、EDF、VDF是MDL中主要的性质,他们可以一起创造出多种效果,也可以复合叠加。比如materialA可以作为参数传递给materialB,DF们也一样。下面是distribution function modifiers and combiners(我也不知道怎么翻译了)
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值