1、什么是plugins?——插件是场景的构建块(包括顶级插件灯光,几何,非顶级插件材质,特殊插件设置),都有对应的getter,setter,getPlugin()来调用,在调用或者禁用json文件中的字段都需要使用到plugins。
ex2.1
#创建一个相机实体
renderView = renderer.plugins.renderView
#这样创建也是可以的
renderView = renderer.plugins["renderView"]
#输出实例
allInstanceNames = [plugin.getName() for plugin in renderer.plugins]
print(allInstanceNames)
#输出类名
allClassNames = [klass.getName() for klass in renderer.classes] print(allClassNames)
for node in renderer.classes.Node.getInstances():
print(node.getName())
2、vray元数据meta——即所有插件都会公开有关其属性的名称,类型,默认值和描述的信息
ex2.2
renderView = renderer.plugins.classes.RenderView()
# 创建和删除一个新节点
node = renderer.plugins["Nodename"]
del renderer.plugins["Nodename"]
# 或者
del renderer.plugins.Nodename
# 或者
del renderer.plugins[node.getName()]
oldPlugin = renderer.plugins["oldMaterial"]
newPlugin = renderer.classes.MtlSingleBRDF("newMaterial")
newPlugin.brdf = renderer.classes.BRDFDiffuse("grayDiffuse")
oldPlugin.replaceWith(newPlugin)
ex2.3
renderView.transform = vray.Transform()
print(renderView.transform)
copyTransform = renderView.transform
copyTransform.replaceOffset(vray.Vector(10, copyTransform.offset.y, copyTransform.offset.z))
print(renderView.transform)
renderView.transform = copyTransform
print(renderView.transform)
# 使用材质插件
brdfVRayMtl.opacity = texBitmap.getReference("alpha")
# 或者
brdfVRayMtl.opacity = texBitmap.alpha
# 材质不透明度将来自位图alpha通道
meta = brdfVRayMtl.getMeta()
# 此参数的输出将取决于应用于此元数据中的内容
print(meta['diffuse']['type'], meta['diffuse']['runtimeType'])
# 我们还可以在运行时在元信息中检查列表的大小
meta = brdfLayered.getMeta()
print(meta['brdfs']['elementsCount'])
3、VRay场景文件格式:一般来说VRay使用基于文本的场景文件格式(.vrscene)