如何在不同 3D 软件之间转换 V-Ray 场景

简介

把场景从一套软件转换到另外一套软件算图是件不容易的事。FBX 让您可以输出几何体、基本灯光、照相机和动画等,但 FBX 不支持某些特定功能,例如 V-Ray 灯和材质。使用 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 场景文件

在 V-Ray 3.5中,V-Ray 场景文件现在可以从一个应用程序导出,然后导入并在另一个应用程序中渲染。V-Ray 场景文件包含一个完整的,可渲染的资产。
输出哪些资产

    带UV的几何体
    材质
    灯光
    毛发
    烘焙的动画

*并非所有应用程序都能导入灯光。 Maya 可以,但3ds Max不可以。
哪些无法输出
由于 V-Ray 场景文件都是以单一个对象的方式导入 3ds Max 中,或是单一个节点在 Maya 中,所有内容都以一个对象。因此,在3D 应用程序中本身无法选择某些对象,例如:

    个别的材质
    个别的灯光
    摄影机
    可编辑的几何体 -与 V-Ray 网格文件类似,几何体会合并成一个。
    需要其他插件的几何体或材质可能无法顺利输出。一般来说,如果能用 V-Ray 独立版来渲染,那么数据应该是可以导入。

注意:您可以选取或是改变 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 渲染相匹配。

如何从3ds Max 转到Maya

打开场景后,右键单击任意视口并选择.vrscene export。这里您可以决定所需的选项,包括导出动画。要了解有关每个选项的更多信息,请访问我们的帮助文档

一旦进入 Maya,您将使用Scene Manager导入 V-Ray 场景。这将创建一个节点,你要放在任何地方都可以。如果你想要跟原本的位置吻合,那就把它放在0,0,0。

记住,3ds Max 中的场景通常是 Z 轴向上,Maya 是 Y 轴向上。当您导入时,场景应该会自动翻转到 Y 轴向上,但是您可以选择翻转或不翻转。

如何自 Maya 转换到 3ds Max

从 Maya 输出 V-Ray 场景文件至 3ds Max 流程略有不同。 首先,打开渲染对话框。 然后,在 common 中,您会看到Translator,让你可以导出.vrscene文件。在这里,如果您只想导出文件的话,您也可以告诉您的场景不要渲染。如果您偏好使用 ME L脚本,您也可以使用 vrend 命令导出资料。

现在,在 3ds Max 中,您可以创建一个 VRayScene 对象用来导入您的文件。由于您从Y轴向上的应用程序转换成到Z轴向上的应用程序,您可以让软件自动帮你翻转或是手动维持轴向。此外,如果您希望它在原始位置,请确保对象放置于0,0,0的位置。

使用覆盖功能改变 V-Ray 场景

您可以使用简单的代码来覆盖 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;
    }


从 Maya 输出的 V-Ray 场景文件然后在 3ds Max 中渲染并修改为粘土材质

以下是其他的的覆盖范例:

// 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 场景是计算机软件可解析的,因此可以覆盖某些效果,例如材质。希望这篇文章对你制作上有帮助。

留言

*
*