Arnold(C4DToA)阿诺德渲染教程(91) – Arnold 场景源 (.ass)代理对象 基础介绍

 

.ass 文件结构
Arnold 的原生场景描述文件格式(称为“.ass”文件)是一种易于读取的 ASCII 文本文件。
.ass 文件通常包含作为一系列节点的摄影机、灯光、模型几何体和着色器及其连接和参数。
适用于 Maya、Houdini 等的 Arnold DCC 插件可以导出 ass 文件。
Arnold 的命令行渲染器 kick 可以用于将这些 ass 文件渲染为图像文件。

 

节点和参数
Arnold 是基于不同类型的节点构建的。
例如,目前有着色器节点、摄影机节点、灯光节点、过滤器节点、几何体(也称为“形状”)节点和输出驱动程序节点。每个节点都有多个参数。
每个类型的节点均通过唯一的名称(options、persp_camera、polymesh、lambert 等)进行标识。
对于每个节点类型,可以包含任意数量的节点。
每个节点由称为“name”的字符串参数来唯一标识。
要创建节点,您可以写入节点类型,并将参数值定义括在花括号中。

 

lambert
{
 name my_white_shader
 Kd 0.9
 Kd_color 1 1 1
}

节点
下面是 ass 文件中一些比较重要的节点。
options - 此节点是全局渲染选项的容器,例如:
xres、yres:图像分辨率
AA_samples:抗锯齿采样
camera:活动摄影机。该选项必须指向场景中的有效摄影机节点
outputs:此字符串数组定义 AOV 通道(或层)到输出驱动程序的映射。每个字符串的格式为:“<AOV_name> <data_type><filter> <driver>”
gaussian_filter - 这是 kick 使用的默认类型过滤器。过滤器具有用户指定的宽度,默认设置为 2.0 像素。
driver_tiff - 可以被 options 节点中的 outputs 参数引用的驱动程序节点。该节点包含一个 filename 参数,指定用于存储最终渲染图形的输出文件。
persp_camera - 可以被 options 节点中的 camera 参数引用的摄影机节点。此节点具有视野和用来定义方向的摄影机到世界矩阵,以及其他一些参数。
distant_light - 具有变换矩阵、颜色、密度等的远距离或带方向性的灯光节点。
polymesh - 这是渲染器中最重要的几何基本体。其部分参数如下:
vidxs、nidxs、vlist、nlist:这些数组描述网格顶点、法线及其各自的拓扑(面索引)。如果网格具有 UV 坐标,则将存储在 uvidxs 和 uvlist 参数中。
visibility、sidedness:这些是为每个光线类型(摄影机、阴影、反射等)定义可见性和片面性特性的位掩码。
matrix:网格的对象到世界变换矩阵。
shader:指向将在着色对象时执行的着色器节点的指针。

 

.ass 文件示例
下面是一个简单的 .ass 文件,其中包含选项块、过滤器节点、驱动程序、摄影机、灯光、多边形网格和着色器。

 

options
{
 AA_samples 3
 outputs "RGBA RGBA myfilter mydriver"
 xres 720
 yres 486
}
gaussian_filter
{
 name myfilter
 width 2.0
}
driver_tiff
{
 name mydriver
 filename "image.tif"
 color_space auto
}
 
persp_camera
{
 name mycamera
 fov 53.638
 matrix
 1 0 -0 0
 -0 0.995 -0.0995 0
 0 0.0995 0.995 0
 0 2 20 1
}
 
distant_light
{
 name mylight
 matrix
 0.78867512 -0.21132487 -0.57735025 0
 -0.21132487 0.78867512 -0.57735025 0
 0.57735025 0.57735025 0.57735025 0
 1 1 1 1
 color 1 1 1
 intensity 1
 cast_shadows on
}
 
polymesh
{
 
 name mysphere
 nsides 6 1 BYTE 3 3 3 3 3 3
 vidxs 18 1 UINT
 3 2 0 2 3 1 4 3 0 3 4 1 2 4 0 4 2 1
 nidxs 18 1 UINT
 0 0 1 0 0 2 3 3 4 3 3 5 6 6 7 6 6 8
 vlist 5 1 VECTOR 0 -4 0 0 4 0 -4 0 0 2 0 3.4641015
 2 0 -3.4641015
 nlist 9 1 VECTOR
 -0.5 0 0.8660254 -0.44721359 -0.44721359 0.77459669
 -0.44721359 0.44721359 0.77459669 1 0 0
 0.89442718 -0.44721359 0 0.89442718 0.44721359 0
 -0.5 0 -0.8660254 -0.44721359 -0.44721359 -0.77459669
 -0.44721359 0.44721359 -0.77459669
 smoothing on
 matrix
 1 0 0 0
 0 1 0 0
 0 0 1 0
 0 0 0 1
 shader myshader
}
 
standard_surface
{
 name myshader
 base 0.7
 base_color 0 1 0
 specular 0.05
 specular_color 1 1 1
 specular_roughness 0.3
}

 

参数
所有参数都有默认值,因此您不需要显式设置所有可用的参数。默认参数值可以通过 Arnold 的命令行渲染器 kick 进行查询。例如,要在 Lambert 着色器中查找参数 Kd 的默认值,请键入以下内容:

 

% kick -info lambert.Kd
node: lambert
param: Kd
type: FLOAT
default: 0.7

最常见的类型包括 BOOL、INT、UINT、ENUM、FLOAT、MATRIX、VECTOR、NODE 和 STRING。
数组
以下语法指定了基本类型的数组,例如 VECTOR[ ] 或 FLOAT[ ]:

 

parameter_name        ...

例如,polymesh 节点有一个称为 vlist 的参数,它是存储多边形顶点的点数组:

 

% kick -info polymesh.vlist
node: polymesh
param: vlist
type: VECTOR[]
default: (empty)

因此,通过一个包含三个向量的数组,可以指定一个具有单个三角形的多边形网格:

 

polymesh
{
 ...
 vlist 3 1 VECTOR 0 0 0 1 0 0 0 0 1
 ...
}

运动模糊
对于支持运动模糊的参数,您可以为每个运动模糊时间采样(或“关键帧”)定义多个值。以下示例显示了具有两个运动关键帧的三角形的顶点列表,其中三角形已经沿 Y 方向移动了 5 个单位:

 

vlist 3 2 VECTOR 0 0 0 1 0 0 0 0 1 0 5 0 1 5 0 0 5 1

通过改为存储静态三角形顶点并提供多个变换矩阵,可以实现相同的垂直运动:

 

vlist 3 1 VECTOR 0 0 0 1 0 0 0 0 1
matrix 1 2 MATRIX
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 5 0 1

 

 

Arnold(C4DtoA)

Arnold(C4DToA)阿诺德渲染教程(90) – 室内照明技术 – 逼真的室内场景照明渲染

2018-1-31 14:44:15

Arnold(C4DtoA)

Arnold(C4DToA)阿诺德渲染教程(92) – Arnold 场景源 (.ass) 代理对象 文件导出

2018-2-1 9:31:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
有新私信 私信列表
搜索