也可以查看照明。
Overview
基于物理的PBR渲染会真实的模拟光线在场景中的反弹。因为它只会照明被反弹光线撞击的曲面,所以它会自动渲染阴影。也就是说你不需要做任何启用阴影的设置—–它们(阴影等)是基于物理渲染的副产物。
查看PBR渲染页面,获取关于开展PBR中阴影外观的信息。
对于旧的渲染引擎(光线跟踪和 micropolygon rendering),阴影必须以额外的工作方式被渲染器所模拟。对于这些引擎,你可以通过关闭阴影(当可能时),并使用一些技巧,如阴影贴图来加速渲染。
查看灯光链接和阴影链接部分,获取关于控制哪个灯光会从物体上投射阴影的信息。
Enabling and disabling shadows
To… | Do this |
使一个物体不投射阴影 | 使用阴影链接控制哪个物体会从哪个光线上投射阴影。 |
使一个物体投射阴影,但不会出现在渲染中 | 开启物体的渲染选项卡中的 Phantom (幻影)参数。 |
Display shadows in the viewer
Houdini可以让你在OpenGL视窗中预览阴影,这样你就可以检查当你放置一个物体时,哪些曲面会被阴影覆盖。
Tip
你也可以使用渲染区域工具以及交互式的渲染面板来交互式的查看真实渲染的阴影。OpenGL的阴影和其大致一样,但是交互式更快。
1. 在你的场景中设置灯光。
2. 开启视窗右侧显示工具栏中的显示阴影按钮。
or
点击视窗选项菜单(视窗右上角的左侧菜单),并且选择显示》显示渲染,或按D键打开显示选项窗口。
点击Misc选项卡,开启阴影参数。
你也可以开启Projected Textures 参数,产生更好的质量。
3. 阴影的预览会减慢场景计算,因为Houdini会在后台在给每个灯光计算阴影贴图。
Shadow maps (non-PBR rendering)
默认计算阴影的方式是从灯光上投射光线到曲面上(光线跟踪)。此是最简单的方式,并且PBR渲染也会使用此作为渲染的一部分。
对于非PBR的渲染引擎,你可以通过给一个灯光预计算阴影贴图,获取快速的阴影。此是一个从灯光中获取的深度贴图,测量着从灯光的视点到每个可见曲面的距离。此会使被灯光照明或闭塞的曲面计算更快。另一方面,阴影的质量基于你所生成的阴影贴图的分辨率,因此此是一个速度和内存的权衡。
注!不需要再PBR中使用阴影贴图!!!!。
Houdini有三种方式计算阴影。你可以通过灯光的阴影选项卡中的Shadow Type (阴影类型)参数控制这些方式。
Ray-traced shadows | 光线跟踪方式的阴影,也叫“过滤阴影”或“快速阴影”,会在场景中自动生成,你不需要设置或调节它们就可以产生很好的结果。光线跟踪和深度贴图阴影相比,非常慢。 |
Depth map shadows | 深度贴图阴影,也叫“Z-depth”阴影,会计算一个阴影贴图,该贴图中的像素值存储着每个曲面到光源处的距离。
此方式比光线跟踪快很多,但受制于阴影贴图的分辨率,增加分辨率,也会增加使用的内存量。 |
Deep shadow maps | 深度阴影贴图,也叫“Deep shadows”,是常规深度贴图的变体。它也是预计算的,且被一个分辨率控制着。该贴图是一个三维的贴图,在后期合成中可以基于深度的调节,将其他元素融和到一个图像中。
这种格式的阴影贴图可以极大的方便后期的调节,并且有透明和抗锯齿控制。缺点是计算慢,需要大量的磁盘空间。 |
在灯光物体上设置阴影的计算:
To… | Do this |
设置一个灯光,使其不投射阴影 | 在灯光物体的阴影选项上,改变阴影类型参数为None。 |
将灯光设为使用光线跟踪的阴影 | 在灯光物体的阴影选项上,改变阴影类型参数为 Ray-Traced Shadow方式。 |
将灯光设为使用深度贴图的阴影 | 在灯光物体的阴影选项上,改变阴影类型参数为 Depth Map Shadow方式。
要使用深度贴图阴影,可以开启Transparent Shadows(透明阴影)参数。如果Transparent Shadows是关闭的,深度贴图会在其第一个撞击的曲面处停止(不管曲面是透明还是不透明)。 你可以调节分辨率和像素采样参数来改变阴影贴图的大小和抗锯齿采样。 |
Tips
要给深度贴图阴影和Deep阴影使用rat格式的文件。和pic文件相比,rat格式的文件支持更高质量的纹理过滤,以及更高效的内存管理。
如果你想让一个曲面避免有阴影投射在其上面,你必须输出它的曲面材质。在材质中使用 isShadowRayVEX函数来告诉渲染器何时计算阴影。
你可以使用一些方式让不透明的物体投射被着色的阴影:
创建两个灯光,并做父子关系设置。使一个灯光投射阴影,另外一个灯光不投射阴影。设置雾阴影的灯光未阴影的颜色,设置有阴影的灯光为阴影颜色的互补色。
例如,要创建一个绿色的阴影,设置无着色的灯光颜色为《0,1,0》,设置有阴影的灯光颜色为《1,0,1》。这样无阴影的灯光会透过物体。
在VEX中创建一个自定义的阴影。你可以在投射阴影前查询灯光的颜色,计算阴影,然后再混合原始的颜色和阴影的颜色。
修改曲面颜色,这样对阴影而言,物体会变成透明的。此意味着透过曲面的光线会被添加到阴影中。因此会表现出物体在传递光线。