把场景从一套软件转换到另外一套软件算图是件不容易的事。FBX让您可以输出几何体、基本灯光、照相机和动画等,但FBX不支持某些特定功能,例如V-Ray灯和材质。使用V-Ray场景文件可以解决这个问题。V-Ray场景文件可以转换更多信息。
V-Ray拥有自己专有的文件格式。其中最流行的格式是用于代理对象的V-Ray mesh 文件(.vrmesh)。V-Ray mesh格式对于缓解很重的数据量,然后根据要求进行渲染。这个功能对于很重的几何体,实例物体甚至是完整的环境都是非常棒的。很好用,但只能转换几何体。材质的部份必须要额外附带。
V-Ray场景文件(.vrscene)并不像V-Ray网格那样广为人知,但最近这个功能有了重大更新。V-Ray场景文件解决了V-Ray网格所欠缺的功能。最初开发是为了让V-Ray独立版能进行渲染,V-Ray场景文件包括渲染所需的一切。这表示你也可以用命令行进行渲染,无需在3D应用程序中打开该场景文件。
在V-Ray 3.5中,V-Ray场景文件现在可以从一个应用程序导出,然后导入并在另一个应用程序中渲染。V-Ray场景文件包含一个完整的,可渲染的资产。
输出哪些资产?
*并非所有应用程序都能导入灯光。 Maya可以,3ds Max不可以。
哪些无法输出?
由于V-Ray场景文件都是以单一个对象的方式导入3ds Max中,或是单一个节点在Maya中,所有内容都以一个对象。因此,在3D应用程序中本身无法选择某些对象,例如:
注意:您可以选取或是改变V-Ray场景的某些部分。我们稍后再说。
以下是几个实际应用V-Ray场景文件范例.
在VFX工作室之间分享资产
想象一下,有两家VFX工作室在一起制作同一部电影。其中一个工作室使用V-Ray Maya创建场景,另一个工作室希望在相同的场景渲染他们的3ds Max动态角色。 第一个工作室分享他们V-Ray环境场景文件,另一个工作室要在3ds Max中加载之。所有他们想要渲染的数据都能交换。在这种状况下,他们甚至可以修改灯光。
以V-Ray for Maya完成的渲染
使用导入的V-Ray场景文件、修改灯光,然后以V-Ray for 3ds Max完成渲染。
导入在网络买来的3D模型
假设您在在线购买了高质量的家具模型,但这个模型是3ds Max格式文件。有了V-Ray场景,您可以将这个模型导入Maya并保持原始材质。您甚至可以复制这个模型,没有问题。
跟合成共享灯光
假设您以V-Ray for May的场景设定灯光,而您的合成师想要渲染相同的场景,并在V-Ray for NUKE中添加一个Houdini VDB。您只需要将灯光设置输出并分享为V-Ray场景文件。然后,合成师的NUKE渲染就能与您的Maya渲染相匹配。
打开场景后,右键单击任意视口并选择.vrscene export。这里您可以决定所需的选项,包括导出动画。要了解有关每个选项的更多信息,请访问我们的帮助文档。
一旦进入Maya,您将使用Scene Manager导入V-Ray场景。这将创建一个节点,你要放在任何地方都可以。如果你想要跟原本的位置吻合,那就把它放在0,0,0。
记住,3ds Max中的场景通常是Z轴向上,Maya是Y轴向上。当您导入时,场景应该会自动翻转到Y轴向上,但是您可以选择翻转或不翻转。
从Maya输出V-Ray场景文件至3ds Max流程略有不同。 首先,打开渲染对话框。 然后,在common中,您会看到Translator,让你可以导出.vrscene文件。在这里,如果您只想导出文件的话,您也可以告诉您的场景不要渲染。如果您偏好使用MEL脚本,您也可以使用vrend命令导出资料。
现在,在3ds Max中,您可以创建一个VRayScene对象用来导入您的文件。由于您从Y轴向上的应用程序转换成到Z轴向上的应用程序,您可以让软件自动帮你翻转或是手动维持轴向。此外,如果您希望它在原始位置,请确保对象放置于0,0,0的位置。
您可以使用简单的代码来覆盖V-Ray场景中的某些参数。例如,利用以下代码添加到Override Snippet中,您可以为场景中的所有对象设定成粘土材质。
// Create new clay material.
BRDFDiffuse clayBrdf {
color=Color(0.35,0.35,0.35);
}
MtlSingleBRDF clayMtl {
brdf=clayBrdf;
}
// Override material on all Node plugins.
Node <*> {
material=clayMtl;
}
以下是其他的的覆盖范例:
// MATERIAL OVERRIDE EXAMPLES
//
// Create new shadeless material.
BRDFLight shadelessBrdf {
color=Color(0.15,0.35,0.35);
affect_gi=false;
}
MtlSingleBRDF shadelessMtl {
brdf=shadelessBrdf;
}
MtlWrapper shadelessMtlAlpha {
base_material=shadelessMtl;
alpha_contribution=-1;
}
// Create new clay material.
BRDFDiffuse clayBrdf {
color=Color(0.35,0.35,0.35);
}
MtlSingleBRDF clayMtl {
brdf=clayBrdf;
}
// Override material on all Node plugins.
Node <*> {
material=clayMtl;
}
// PATTERN MATCHING EXAMPLES
//
Node <*SphereShape[1-2]*> {
material=shadelessMtlAlpha;
}
Node <*SphereShape5*> {
material=shadelessMtlAlpha;
}
GeomStaticSmoothedMesh <*> {
edge_length=8;
}
GeomDisplacedMesh <*> {
edge_length=8;
}
// EXACT NAME MATCHING
//
// Override transform of the “pSphereShape1@node” object.
Node pSphereShape1@node {
transform=Transform(Matrix(Vector(0.5, 0.0, 0.0),
Vector(0.0, 0.5, 0.0),
Vector(0.0, 0.0, 0.5)),
Vector(0.0, 0.0, 0.0));
}
// OVERRIDE WITH NEW IMAGE FILE TEXTURE
//
BitmapBuffer MyBitmap {
color_space=2;
file=”/Users/bdancer/scenes/vrayscene/car_scene/car_interior/Textures/carbon01_3.jpg”;
gamma=1;
}
UVWGenMayaPlace2dTexture MyMapping {
repeat_u=5;
repeat_v=5;
uvw_channel=0;
}
TexBitmap MyBitmapTexture {
bitmap=MyBitmap;
uvwgen=MyMapping;
}
// Override “color_tex” parameter of the “VRayMtl1@diffuse” plugin with
// the “MyBitmapTexture” texture.
BRDFDiffuse VRayMtl1@diffuse {
color_tex=MyBitmapTexture;
}
// MATERIAL OVERRIDE IN 3DS MAX
//
// Create some material, for instance, with name “test_override” in 3dsmax and
// apply it to the VRayScene object.
// Override all Node plugins with 3ds max native material.
Node <*> {
material=test_override;
}
当您想要将整个可渲染的场景(包括所有几何体、材质和灯光)从一个3D应用程序移动到另一个3D应用程序时,V-Ray场景文件将非常有用。由于V-Ray场景是计算机软件可解析的,因此可以覆盖某些效果,例如材质。希望这篇文章对你制作上有帮助。