朱峰社区在本教程祥细地介绍了xsi fxtree渲染的一些重要命令及参数,有助于所有xsi fxtree渲染的爱好者更进一步提高对xsi fxtree的操作。
介绍
“映像点分析器”和“组分分析器”(pixel parser and component parser),在fxtree中的两个操作器,能被认为作为“神奇的” 黑匣子执行组分或像素点的操作。
通常这操作器是用途创造特定的卷积效果,模糊, 锐化等。在像素水平上进行操作。
当然这操作被发现在许多合成的软件中,事实上在softimage|xsi中,合成部份与3d部分提供我们机会试验一些联合的和可同时进行的2d/3d 操作,譬如2d光栅。
2d光栅
2d光栅的方法是: 渲染第一,光线第二。
听起来古怪,是的。 但事实上这是经过实际检验的技术。 例如。由“the moving company picture”公司 最近使用在“哈利·波特2消失的密室”中。 可检查chas jarrett 采访获取更多信息 。
要理解它,我们必须了解渲染时发生了什么, 当表面“被遮蔽”时在映像点水平发生了什么。
这样,使用一非常简单的表面材质阴影:lambert 。
规则很简单:为各个映像点被计算在时,,渲染器看二件事:
表面“ 法线”,光线照射表面的方向。然后渲染器计算二参数之间的点,结果由表面颜色和光的颜色或强度表现。
我不会去深入解释什么是“法线”,“ 矢量” 或“ 点”, 文中主要讲渲染技术,所以现在我们知道了渲染器须知道什么才能渲染出面。
表面颜色
简单地渲染没有阴影的图象, 不是使用单一颜色或直接把颜色信息输入在rendertree中的材质节点。
表面法线
更加棘手的部份,因为我们需要一个非预乘和灰阶修边图象。虽然在渲染选项的输出通道中可以设置为normals。 但最终图象将不被计算,如此它对我们的目的无用。我们将创建自己的法线图片通道。如下图片:
x 被输入在红色通道, 测试值 0-1
y 被输入在绿色通道, 测试值 0-1
z 被输入在蓝色通道, 测试值 0-1
如此一个灰色图象会在各个点表示为空矢量(0,0,0)。
注意,这是alpha预乘图象。没有问题,在fxtree 的输入中您能“un-premultiply”它 。 (取消alpha premultiply选项后,它还是能直接渲染)。
光的方向
根据法线矢量图的原则,我们能输出光的方向的矢量图。但是在我们的情况这会是无用的,因为2d光栅主要在我们的对象基本的渲染完成之后才能用。因此我们将使用其它方法,是一个softimage|xsi改进的方法:从3d 场景直接地连接光的方向信息到2d光栅。这样可以创建了一个光源的简单的scripts。
这个设定的目的是从它的实际移动信息提取光的方向矢量,有3个值,我们以后将连接到组分或像素分析。
简单起见,只有distant lights 被使用了,因为它在任何位置都只有唯一的方向。
fxtree
现在我们有了所有需要的,我们须创造将允许我们结合各个元素的fxtree树并且交互式地处理我们的场景。
加载我们的颜色和法线图,添加二个component parser和一个math composite节点 。每个component parser都被标了simplelambert材质,他们根据光的方向矢量计算光到达表面的数量。各个component parser以函数设置, 一为各个组分, 模仿lambert 阴影计算,,考虑到颜色图象, 法线图象,光的方向- 与分析器连接,并且光的颜色和强度也与分析器连接。交互操作和渲染,现在我们能在fxviewer看结果。
用mental ray以simplelambert shader 为材质的渲染。
交互地从3d 场面改变光线:
在fxtree检查结果, 更新在一秒钟内完成:
mental ray渲染。
可见同样的渲染,同样的质量但mental ray比2d光栅慢得多。fxtree 更新总是在一秒钟内完成, 因为它计算最后的图象的大小, 与对象的3d复杂程度无关。明显地,包括point,spot lights,其它阴影譬如phong,blinn 等。 要求一个更加复杂的设定, 但可以参考映像点组分分析器和2d光栅。
局限
这个技术不便是它不计算阴影。 但你可以从在softimage|xsi3d的场景中直接渲染阴, 速度也相当快。其它局限,但这里由于softimage|xsi 工作流程的现状,fxtree 节点是有限的。下步在fxtree 应该使用户能创造自己的fxtree 节点,或作为scripts。
评论