C4DArnold 教程Arnold 渲染器

Arnold for C4D 26 【终章 Ⅲ】Arnold V

2019-02-19  本文已影响0人  卜噪大仙

本篇主题:如何在C4DtoA中渲染体积对象(Volume)

之前在讲着色器的时候,讲过跟Volume(体积)相关的参数,本篇跟之前会有交叉的地方,但是需要注意的是,这里用到的Volume跟Atmoshphere Volume有所不同,Atmoshphere Volume是一个全局效果,而现在讲的是局部的单个或多个体积对象;

还记得体积是啥吧?说白了就是一片片、一股股的烟雾啊、云层啊、海浪啊这样的东西~

接下来将结合实例说明如何利用体积对象做出各种炫酷效果;

Arnold Volume

OpenVDB

OpenVDB面板

科普Volume Step

体积对象在采样时,直接光线会通过对体积对象发射多次光线进行多次采样,每一次发射的光线都是有“步长”的,即Volume step size,间接光线行为类似(可以想象,光线穿过云层时,光线会在云层内部进行各种折射散射行为,就像人穿过一片杂草,需要随时调整脚步,有时可能会因为前面有水坑还得绕路,即使同样距离也要比走一条马路慢得多);
因此,体积采样通常需要比一般表面采样更为耗时;

光线在体积内传播的每一步都会评估着色器并累积体积密度,当体积中密度变化时,附近的光线会计算出不同密度值,因为光线采样值是统一的,因此有些地方就会产生噪点;
在这种情况下,如果要消除噪点,光线步长就需要随机应变,即减少或增加Volume step size;当然即使采样值较低,渲染干净的体积图像也需要较长时间,所以调整数值要谨慎;

渲染体积时,需要考虑至少三件事:光线步进(Ray marching)、直接光线(Direct light)、间接光线(Indirect light),即使面对同一个体积对象,以上三者采样设置都不尽相同;

在光线行进的过程中,太低的采样会丧失体积中很多细节、产生噪点,或者会使体积看起来比原本更轻薄,总之会导致计算错误;一个糟糕的步长具有滚雪球效应,会使其他采样部分变得嘈杂;
为避免步长导致采样变得糟糕,可以通过查看Alpha通道,或者关闭对体积产生影响的光线来源并添加自发光,可以很轻松测试出错误来源;如果自发光/Alpha通道在所需AA设置下仍有噪点,则Step size可能太大了;

Step size实际上是在object-space而不是在world-space中,如此一来,在体积缩放时,能够保持采样质量不变;但是,仍要避免使用不合理的大步长,否则体积将变薄或消失;

下图中,体积已放大100个单位以夸大此效果(1/25/50是相对于放大后的体积的效果):

前面文章中说过,低步长将增加渲染时间。 例如,当步长为0.1且世界空间中的体积为10个单位时,大约有100个基本采样,因此体积着色器将调用100次,在此同样适用,务必注意!



接下来用演示一下如何使用:
1、首先准备好一个有灯光的场景,以及一个OpenVDB文件(这里准备了一个烟雾效果);
2、在场景中创建一个Arnold Volume,Type选择OpenVDB;

其他参数保持默认

3、打开OpenVDB面板,在File path中载入事先准备好的OpenVDB文件:

仔细看图中###部分,这是序列标记,有时候阿诺德会将一个文件识别为序列,将###部分删除即可

注意:在选在要加载的OpenVDB文件时,IPR要确保没有运行,否则在C4D视窗中不能准确显示边界框大小。

4、刚开始看不到任何画面,IPR中也没有渲染出任何东西,因为还需要给Arnold Volume添加一个volume_collector材质,之后就可以看到效果:

新建Arnold Shader Network>添加Volume_collector并赋予Arnold volume>调整参数(如上图红框内)>运行IPR,调整好后IPR就可以看到体积对象了

5、爆炸的时候都是火星四射的,我们来简单模拟一下这种效果:添加自发光;
一般模拟火焰效果都会使用渐变,所以此处使用ramp_rgb节点来控制自发光效果,使用预设flame可以很好的模拟:

新建ramp_rgb节点,使用预设渐变flame,连接到volume_collector的自发光颜色通道

此时还是没有效果滴,因为数据类型不对头啊,需要调整一下:拽出volume_sample_float节点,因为之前最开始的时候散射通道Scattering channel选择的是density,这是个float啊,所以要转换ramp_rgb为float:

材质编辑器示例

最后效果大概这样:

噪点很多,效果也不咋地,这里就不再做调整了,渲染体积太耗时,仅作演示用,大家根据步骤多试试



C4DtoA中会逐渐放弃volume_collector这个着色器,在使用的时候也会得到提示,替换后的着色器其实也叫volume_collector,是新版:

这种情况很常见,单击Replace with standard_volume shader这个位置,即可替换成推荐的新版着色器

下面我们来看一下新旧对比:

standard_volume(左) & volume_collector(右)

可以看出简洁了很多,这些参数大家一定也不陌生,前面教程中基本都涉及过,这里再快速串一下;

注意,在使用Displacement时适当增加Volume Padding的值,以确保能完全显示其效果:

Interpolation当对使体积数据命名的通道进行采样时,使用的立体像素插值;各模式效果如下:



Tips:


该系列教程最后一篇,就酱了💗
感谢大家的陪伴,我这么不靠谱的随心情更新都没有一个脱粉,感动!
希望大家都有好运~

各位路过的大朋友小朋友,如果有什么问题可以留言一起讨论,教程中有什么错误的地方也热烈欢迎大家指出💗

C4DtoA的参数基本都涉及到了,讲这些的意义是并不是让大家挨个记住,是希望能够知道有这么个功能,万一哪天要实现什么效果,会有一种——哎,用那个什么什么节点就行啊/调整一下那个参数就好了啊~ 的赶脚

重要的还是实践

也不知道该说点啥了。。。总之,感谢观看!多用多练!


Reference:
1.Solidangle Support & Documentation


禁止私自转载,转载需征得老夫同意。
否则,必追究。


接下来的教程应该就是实战教程了?或者讲一下X-Particle??Houdini??
或许,想学Python嘛?图形学了解一下?
开个玩笑







啊哈哈哈哈哈
欢迎大家踊跃发言

上一篇 下一篇

猜你喜欢

热点阅读