|
介绍
“映像点分析器”和“组分分析器”(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。
|