这是关于如何结合VR渲染器和NUKE重新照明(relight)节点的一个教程,因为在制作这个工作效果的时候遇到了很多问题.那么这个教程中用到的软件是max2012 vr 2.0 sp1和nuke6.2v2。
在教程结束的时候你可以找到关于工程文件里的素材,这样你可以快速尝试这个了不起的工具
我在3D软件中建立了一个简单的场景,摆放了一些茶壶,还有一些VR面片灯光
在所有工作完成之后,你在VR的渲染元素标签下 单击添加元素,然后添加两次[VraySamplerInfo]通道,然后重命名他们分别为:[Vray SamplerPoint][VraySamplerNormal],当然你可以自定义自己需要的名字.然后选择[VraySamplerNormal],在下面的设置里设置成Normal Vector.你不用管[VraySamplerPoint]通道,因为缺省状态下,它设置的就是点。
在进行到使用[vray Normal]通道这步的时候公用中有错误,因为重新打灯需要法线来计算点云,但是[VrayNormal]却是相对于相机的法线,而我们需要的法线是相对于世界坐标的,[VraySamplerInfo]可以为我们修正这个错误.选择NormalVector,转贴图坐标系统为世界模式.
现在我们可以使用在Vray 标签下使用[VrayframeBuffer]渲染出32位的[openEXR]文件了.启用它,选择渲染到V-ray raw图片文件.然后点击浏览按钮,设置你需要渲染输出的位置.记住!选择输出为OPENEXR而不是.vrimg,并且确定是32位输出。
现在我们就可以在nuke里打开32位的文件了.当我们导入的时候会发现渲染的颜色和帧缓存[frameBuffer]里面的颜色不一样,导致这一问题,笔者试着用一些简短的语言来解释一下.
在很多程序里面默认的颜色空间是"sRGB"("s"就是标准的意思)而这种颜色空间包含gamma 2.2的信息,也就是说他的颜色不是线性的.所以当你渲染自己的场景的时候,程序产生的图像已经带有gamma信息了,但是我们可以保持成openEXR文件,而这种文件是线性的空间.所以我们有一个sRGB的渲染结果(gamma调节后的)装入到一个全浮点线性的文件里面,所以我们遇到了问题.为了解决这个问题,我们可以使用ColorSpace节点 它告诉我们输入的是sRGB的,但是我们需要输出线性的.我们可以通过选择read节点来更改颜色信息如图。
那么现在通过other节点-all plugin所有插件 -update更新(现在你可以看到所有nuke可用的插件了)- 创建Relight节点,那么我们relight节点在 toher nodes--All Plugin--R--Relight.创建一个scene(场景),light,phone和 camera节点,并且像图示一样连接他们.初始的relight仅有颜色和灯光箭头,你需要拖拽其他的东西到gizmo的左边,我希望foundry修复了一些节点的bug.然后禁用你的相机,因为它现在不适用,但是你必须建立在relight节点来连接material材质箭头.设置relight节点normal vector为[VraySamplerNormal]而点位置为[VraySamplerPoint]
如果3D世界贴图和nuke一样的话, 那么现在你可以给你的场景重新打光了,但是在我们的场景中却不行.所以我们需要翻转点和法线pass的绿色蓝色通道,然后翻转蓝色通道并给蓝色通道一个反向值,那么在这个场景里,翻转节点没有正常工作因为它把0设置成1,而1设置成0了.我们可以匹配操作 乘以-1 使0设置成0,1设置成-1而-1则变成了1.
那么怎么做呢,我们添加一个shuffle节点,一个grade节点来控制[vraySamplerPoint]和[Normal],那么我们可以再shuffle节点中翻转G绿B蓝两个通道,我们可以只翻转蓝色通道.你需要对两个pass都进行以上操作.下面我向你展示[VraySamplePoint]通道中节点的参数,[VraySampleNormal]当然也需要这么做.
仅仅我们的relight节点正常工作,但是为了完成这不可思议的效果,我需要添加一些其它的节点,[PositionToPoint]节点可以帮助我们在nuke的3D工作环境中显示重新打灯的效果.所以在other nodes--All plugin --p--PositionToPoints添加一个[PositionToPoint]节点或者直接按Tab键 键入PositionToPoint(我喜欢)然后连接到我们的节点中,就像下图,添加一个shuffle节点来输出rgb我们的[VraySamplePoint]通道.那么下面就是我们的节点设置.
通过PositionToPoint节点,现在我们可以再NUKE的三维空间看到3d max的渲染结果了,我们可以在场景中添加任意多的灯光照明,通过relight节点给我们提供效果.
这个技术是非常有用的,通常情况下我使用初始的图片通过使用多个relight节点和物体选择pass可以给每个元素单独照明。