美文网首页Arnold 教程
Arnold for C4D 16 【材质(十)】Convers

Arnold for C4D 16 【材质(十)】Convers

作者: 卜噪大仙 | 来源:发表于2019-01-06 02:23 被阅读0次

    本篇教程我们来综合讨论三组着色器:Conversion / Math / Shading state,以及各自包含的各个节点。

    在讲解之前,先说一下有关数据类型,之前提到过一些,这里再强调一下。Arnold的节点数据类型主要分为三种:Float,Int,Vector。Float是浮点数,Int是整数,Vector是向量。在图形计算中,这三个数据类型计算方式会有所不同。

    Conversion

    首先是Conversion,直译过来就是“转变”的意思。这组节点能够用于转换不同的数据类型。包含8个节点:

    这组节点其实没什么特别的,关键还是理解各个数据类型的用途。
    【Float】浮点数,模糊数据
    【Int】整数
    【RGB】RGB颜色
    【RGBA】RGB+Alpha(透明度)
    【Vector】矢量

    举个栗子:
    比如要使用noise作为gobo滤光镜的slide map,就需要用float_to_rgb(将浮点数转换为RGB)节点。

    简单演示一下:
    ① 打开准备好的场景,创建一个体积散射节点,丢到渲染设置大气层栏:

    创建atmosphere_volume节点,并将其Density属性值调整为1→打开渲染设置,将Atmosphere_volume丢到大气栏中


    ② 创建gobo滤光镜并丢给灯光:



    ③ 创建noise节点,输出到gobo>slide map,可以看到IPR Window中显示有些奇怪,这是因为我们输入的是一个浮点数,slide map需要的是rgb数据,因此需要转换一下:



    ④ 新建float_to_rgb节点,并将noise连接到r、g、b;然后将float_to_rgb节点连接到gobo>Slide map:



    ⑤ 调整noise节点属性,就能够明显看到变化了:

    以上就是Conversion的使用方法,很好理解,就是各种转换,就不赘述了。

    Math

    Math节点可以对各类数据进行计算,可以处理颜色(color)或矢量(vector)的输入。包含27个节点:

    这一部分的节点使用率相对较低,如“Math”这个名字所示,下设小节点可以说是一种计算方式,有各种公式,例如使用【abs】最终返回的数据是输入数据的绝对值;【Add】返回input1+input2(例如叠加噪波效果);【Atan】使用两个参数来确定结果的象限.....有很多关于余弦/正弦/三角函数什么什么的公式(emmmm....再往下我也不知道我说的是啥了 虽然我不是文盲 嗯 不是)摸着良心说,这一部分节点我用过的也很少,【Random】之前有讲过,主要就是自由变换,没看过的童鞋可以去看看→传送门;【range】可以用来确定“范围”,例如可以产生类似于PS的“蒙版”效果,遮罩哪一部分/显示范围。。。。剩下的一些生僻节点,以后实例涉及到再来讲。

    如果要类比PS的话,勉强可以算是各种“滤镜”,经过计算产生各种效果。

    Shading state

    可用于读取对象的各类属性,如UV、光线深度等。主要读取三种数据类型

    • 【state_float】参数详解:
      state_float参数
    名称 变量 描述
    Screen XY sx,sy 图像空间坐标,范围 [-1,1)
    Shutter Time time 对于运动模糊,当前样本被遮蔽的绝对时间。 shutter-open到shutter-close所用时间。
    Ray Length R1 对于曲面着色器,指来自摄像机的射线或之前射线的反弹射线,到着色点的长度;对于体积着色器,指要着色的体积片段的长度。
    Barycentric UV bu, bv 对于三角形,指三角形的重心坐标;对于曲线,指曲线的长度和宽度参数坐标。
    Surface UV u, v UV坐标通常用作纹理坐标。 如果没有提供uvlist或uvs参数,则与bu和bv相同。
    Shaded Area area 当前着色点覆盖的面积差异,通常用于纹理过滤(texture filtering)。对于曲面着色(surface shaders)器来说,光线微分(ray differential)跨越这些区域;对于位移着色器(displament shader)来说,它是围绕光线路径顶点的三角形的平均面积。
    UV Derivatives dudx, dudy, dvdx, dvdy 相对于XY像素坐标的UV导数。 包含从当前像素到相邻像素的右侧和顶部的UV变化率,通常用于纹理过滤。
    Shutter start and end 运动模糊开始至结束的时间的绝对值。
    • 【state_int】
      state_int参数
    名称 变量 描述
    Raster XY x,y 光栅的空间像素坐标,相机光线起点
    Subpixel Sample Index si AA sample指数,范围[0,AA-Sample]
    Ray Type Rt 入射光线类型
    Transparency Index transp_index 透明度指数
    Thread ID tid 线程ID,具有唯一性
    Bounces bounces 光线在当前着色点的反弹次数
    Diffuse Bounces bounces_diffuse 漫射反弹次数
    Specular Bounces bounces_specular 镜面反射反弹次数
    Reflection Bounces bounces_reflect 反射反弹次数
    Transmission Bounces bounces_transmit 透射反弹次数
    Volume Bounces bounces_volume 体积反弹次数
    Force Hemispherical Lighting fhemi 强制半球形照明
    Primitive ID fi 原始ID(例如三角形原始ID是triangle)
    Number of Active Lights nlights 影响着色点的有效照明数量
    Inclusive Traceset inclusive_traceset 如果使用了tranceset(跟踪),是包含关系还是排除关系
    Skip Shadow Rays skip_shadow 如果开启,则照明时不追踪阴影射线
    Shading Context sc 着色的前后关系类型(surface,displacement,volume,background,importance)
    • 【state_vector】
      state_vector参数
    名称 变量 描述
    Ray Origin Ro 对于surface来说,指光线原点;对于volume,指volume segment被遮蔽的开始点
    Ray Direction Rd 从光线原点到shading point的光线方向;对于volume,指volume segment被遮蔽方向
    Shading Point in Object-Space Po Object-Space中的着色点
    Shading Point in World-Space P Word-Space中的着色点
    Surface Derivative wrt Screen XY dPdx, dPdy 相对于XY像素坐标的表面导数
    Shading Normal N Shading法线,包括smooth normals和bump mapping
    Face-Forward Shading Normal Nf 正面shading法线
    Geometric Normal Ng 几何法线,不包含smooth和bump
    Face-Forward Geometric Normal Ngf 正面几何法线
    Smoothed Normal without Bump Ns smooth(平滑)法线,没有bump
    Surface Derivative wrt UV dPdu, dPdv 相对于UV坐标的表面导数(未标准化),可用作各异向性着色切线或矢量位移
    Ray Direction Derivative wrt Screen XY dDdx, dDdy 光线方向导数wrt XY像素坐标
    Surface Normal Derivative wrt Screen XY dNdx, dNdy 相对于XY坐标的表面法线导数



    举栗子时间:

    使用Shutter time将颜色映射到motion blur 使用带有ramp float着色器的surface v



    P.S 以上这些值翻译过来真的是一言难尽。。。很多词语的翻译也没有什么标准,很不好表述。比如 Shading,在图形学中,翻译成“着色”是不准确的,还有Ray翻译成“射线”还是“光线”?好像都不太准确。。。对于设计师萌来说,请不要深究。。。。surface normal 是用来shading的..很多用途..如果要模拟非常逼真的光效应,必须用到surface normal,并且配合Phong Shading or Gouraud Shading。可以得到很好的视觉效果。。。好了,不说了,再说要开始讲图形学了。。。

    敲黑板、所有的软件都是工具,最重要的还是你的创意、你的思维,所有工具都是为了更好的呈现你的创意以上看不懂就别看了,要想完全看懂,可以去深造一下图形学?

    禁止私自转载。
    转载务必告先得到老夫同意。

    相关文章

      网友评论

        本文标题:Arnold for C4D 16 【材质(十)】Convers

        本文链接:https://www.haomeiwen.com/subject/weikiftx.html