What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
后一修订版两侧同时换到之后的修订记录
vfx:houdini:rendering:mantra [2019/05/12 12:47] – [处理办法] codingharevfx:houdini:rendering:mantra [2019/05/12 23:30] – [Direct shadows] codinghare
行 284: 行 284:
 \\ \\
 \\ \\
-==处理办法==+**处理办法:** 
 +\\ 
 +\\
 一种处理办法:增加 ''Pixel Samples'' 一种处理办法:增加 ''Pixel Samples''
 \\ \\
行 299: 行 301:
 当摄像机启用 ''Enable Depth of Field'' 选项后,离摄像机有一定距离的物体会景深,而景深会导致噪点。这种情况在高光处和物体边缘特别明显。 当摄像机启用 ''Enable Depth of Field'' 选项后,离摄像机有一定距离的物体会景深,而景深会导致噪点。这种情况在高光处和物体边缘特别明显。
 {{ :vfx:houdini:rendering:doff_noise.jpg?600 |}} {{ :vfx:houdini:rendering:doff_noise.jpg?600 |}}
-==处理办法==+**处理办法:** 
 +\\ 
 +\\
 增加 ''Pixel Samples'' 是**唯一**的解决方法。 增加 ''Pixel Samples'' 是**唯一**的解决方法。
 \\ \\
行 312: 行 316:
 当 Primary Rays 数量不足时,被渲染对象的边缘会变得像锯齿一样粗糙。该现象在高对比度区域 / 高频重复图案中 有其明显。 当 Primary Rays 数量不足时,被渲染对象的边缘会变得像锯齿一样粗糙。该现象在高对比度区域 / 高频重复图案中 有其明显。
 {{ :vfx:houdini:rendering:edge_aliasing_noise.jpg?600 |}} {{ :vfx:houdini:rendering:edge_aliasing_noise.jpg?600 |}}
-==处理办法==+**处理办法:** 
 +\\ 
 +\\
 增加 ''Pixel Samples'' 是**唯一**的解决方法。对于 seoondary ray 数量的处理同景深。 增加 ''Pixel Samples'' 是**唯一**的解决方法。对于 seoondary ray 数量的处理同景深。
 \\ \\
行 321: 行 327:
  
 ===Direct Illumination=== ===Direct Illumination===
 +==Direct reflections==
 +Direct reflections,也就是物体表面直接反射光源产生的图案,通常会产生斑点状的噪点图案。该现象在材质的 roughness 值处于 ''[0.1, 0.3]'' 之间非常明显,尤其是处于 area light 的照明下。
 +\\
 +\\
 +**处理办法:**
 +  - 最好的去除这种类型的噪点是**提高对产生该噪点的光源的采样数**(//Lighting Sample//)。对光源的采样数实际上扮演了<color #ff7f27> Diffuse Rays</color> 的**乘数**。因此,我们需要将该采样数控制在一定的范围内。
 +  - 提高 ''Pixel samples'' 也会有帮助,但就像之前说过的,作为一个提升所有 ray 数量的手段,''Pixel samples'' 可能导致其他区域采样过度。
 +  - 增加 Direct Rays 的数量也可以有效的清除该类型的噪点。
 +{{ :vfx:houdini:rendering:lighting_sample_noise-min.jpg?600 |}}
 +综上,我们自始至终都需要考虑,如何在清除指定光源产生噪点和清除直接光源产生的噪点之间找一个平衡点。
 +\\
 +\\
 +**如何检查噪点:**
 +使用 ''Direct Reflect'' pass 既可以检查 Direct reflections 对场景的贡献。对于复杂的、存在非常多灯光的场景,我们可以将 ''Direct Reflect'' 层用 ''Per light'' 的方式导出。这种方法允许我们将指定的、希望检查噪点情况的灯光分离出来;同时也允许我们只对这样的光源增加采样的数量。
 +==Direct refractions==
 +在渲染中,当光源直接穿过**单个表面**(比如一个 grid)的时候会产生 Direct Refractions;同时,也会产生斑点状的噪点图案。该现象在材质的 roughness 处于 ''[0.1, 0.3]'' 区间时非常明显,特别是在使用 Area / Environment 照明的情况下。
 +<WRAP center round tip 100%>
 +注意:只有**第一次**折射会被考虑为**直接折射**。任何超过一次以上的折射都会视作**间接折射**。
 +</WRAP>
 +**处理办法:**
 +  - 最好的方法是增加对导致噪点光源的采样数。增加光源采样数等于将采样数乘到 Diffuse Rays 的数量上,因此将该值控制在一定范围内比较好。
 +  - 增加 ''Pixel Samples'' 也有帮助,但会导致没有噪点的区域采样过度。
 +  - 增加 Directly Ray 的数量(与 reflection 一样需要找一个平衡点)。
 +{{ :vfx:houdini:rendering:refraction_noise-min.jpg?600 |}}
 +**如何检查噪点:**\\
 +\\
 +开启 ''Direct Refract'' 渲染层检查即可。
 +==Direct shadows==
 +如果场景中有一个点与光源没有直接的路径连接,那么该点处会产生 Direct Shadows。在成阴影的过程中,渲染器会在几何体的边缘产生斑点状的 / 粗糙的噪点图案。该现象在由 area light 产生的 soft shadow 下特别明显。
 +{{ :vfx:houdini:rendering:directshadowperlight-min.jpg?600 |}}
 +**处理办法:**
 +  - 最好的方法是增加对产生噪点光源的采样数。
 +  - 增加 ''Pixel samples'',缺点不再复述。
 +  - 增加 Direct rays 的数量。
 +{{ :vfx:houdini:rendering:d_shadow_noise-min.jpg?600 |}}
 +**如何检查噪点:**
 +\\
 +\\
 +使用 ''Direct Diffuse'' 层即可。如果灯光较多,可以通过 ''Per Light'' 选项分离出指定的灯光。
 +===Indirect illumination===
 +==Indirect diffuse==
 +
 ====参考资料==== ====参考资料====
 [[https://www.nvidia.com/object/nvidia_research_pub_016.html|Stochastic Transparency, Eric Enderton, Et Al. SIGGRAPH 2010]] [[https://www.nvidia.com/object/nvidia_research_pub_016.html|Stochastic Transparency, Eric Enderton, Et Al. SIGGRAPH 2010]]