Arnold for C4D 26 【终章 Ⅲ】Arnold Volume

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

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

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

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

Arnold Volume
  • Arnold Volume相当于一个的“容器”;
  • 比较常用的体积文件是OpenVDB,梦工厂出品,可以去官网按需下载 https://www.openvdb.org/,这个网站间接性无法连接、加载很慢,请耐心...如果感兴趣也可以自己使用Houdini等软件创建OpenVDB;
  • 主菜单中的各项参数之前都讲过,此处略;

OpenVDB

OpenVDB面板

  • 属性面板中Start frame/End frame/Step frame/Offset/Loop这几个参数上一篇文章中已经讲过;

  • Available grids显示的是加载的该VBD文件所携带的信息通道,比如现在所用的文件中包含了density(密度)和temperature(温度)两个可用通道;VDB可以携带多种信息通道,密度、温度、速度等,都会在此处显示;

  • Grids直译过来是网格的意思,其实就是通道;Grids定义要读取的通道,多个的话用空格隔开即可,上图中只读取了密度;

  • Velocity grids速度网格(通道),用于定义运动模糊,使用一个矢量(例如v或vel)或三个表示速度的浮点网格(例如vel.x, vel.y, vel.z)表示;如果网格无效或未定义,则不会出现运动模糊

  • Velocity scale按比例缩放速度,0值将无运动模糊;

  • Velocity threshold 速度阈值,控制运动噪点速度,从而更快的渲染物理模拟中的运动模糊;默认0.001几乎没有视觉影响;0值将完全禁用速度;

  • Step Scale缩放体积步长,主要用于当Volume Step设置为自动时调节自动值;对于低频体积,如烟雾,设置为4最合适;

科普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(右)

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

  • Density 控制体积密度,密度越大越“重”,很好理解,不多解释了;

  • Scattering 散射,旧版中需要选择散射源,新版中智能识别,方便快捷;
    控制在光照下体积的亮度。这是散射而不是吸收的光的比值,能量守恒值在0~1范围内;

  • Anisotropy各向异性,之前教程重点讲过;

  • Transparency透明度,属于额外控制密度的一个值,主要控制着色后颜色透过体积的强度:

  • Emission自发光;

  • Blackbody相当于使用温度控制体积自发光;

  • 旧版中Attenuation控制衰减,衰减强度越大,光线越快被吸收,体积“越黑”;

  • Advanced高级设置
    Displacement可在此处连接贴图控制体积跟多细节,创造更多惊艳效果;


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

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



Tips:

  • Volume Ray Depth大于0时,体积只能接受来自其他自发光体积的间接照明;
  • 在使用XXX channel的时候,请确保该通道的贡献来自VDB文件,也就是说你实现准备好了VDB文件;
  • 请尽量保持体积着色网络的精简;


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

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

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

重要的还是实践

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


Reference:
1.Solidangle Support & Documentation


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


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







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

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

推荐阅读更多精彩内容