查看: 2611|回复: 0
打印 上一主题 下一主题

[插件] 一个结合VR渲染器和NUKE重新照明(relight)节点的应用

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2017-7-13 16:54:29 |只看该作者 |倒序浏览
这是关于如何结合vr渲染器和nuke重新照明(relight)节点的一个教程,因为在制作这个工作效果的时候遇到了很多问题.那么这个教程中用到的软件是max2012 vr 2.0 sp1和nuke6.2v2。
1.jpg
在教程结束的时候你可以找到关于工程文件里的素材,这样你可以快速尝试这个了不起的工具
我在3d软件中建立了一个简单的场景,摆放了一些茶壶,还有一些vr面片灯光

在所有工作完成之后,你在vr的渲染元素标签下 单击添加元素,然后添加两次[vraysamplerinfo]通道,然后重命名他们分别为:[vray samplerpoint][vraysamplernormal],当然你可以自定义自己需要的名字.然后选择[vraysamplernormal],在下面的设置里设置成normal vector.你不用管[vraysamplerpoint]通道,因为缺省状态下,它设置的就是点。
2.jpg
在进行到使用[vray normal]通道这步的时候公用中有错误,因为重新打灯需要法线来计算点云,但是[vraynormal]却是相对于相机的法线,而我们需要的法线是相对于世界坐标的,[vraysamplerinfo]可以为我们修正这个错误.选择normalvector,转贴图坐标系统为世界模式.
现在我们可以使用在vray 标签下使用[vrayframebuffer]渲染出32位的[openexr]文件了.启用它,选择渲染到v-ray raw图片文件.然后点击浏览按钮,设置你需要渲染输出的位置.记住!选择输出为openexr而不是.vrimg,并且确定是32位输出。
3.jpg
现在我们就可以在nuke里打开32位的文件了.当我们导入的时候会发现渲染的颜色和帧缓存[framebuffer]里面的颜色不一样,导致这一问题,笔者试着用一些简短的语言来解释一下.
 在很多程序里面默认的颜色空间是"srgb"("s"就是标准的意思)而这种颜色空间包含gamma 2.2的信息,也就是说他的颜色不是线性的.所以当你渲染自己的场景的时候,程序产生的图像已经带有gamma信息了,但是我们可以保持成openexr文件,而这种文件是线性的空间.所以我们有一个srgb的渲染结果(gamma调节后的)装入到一个全浮点线性的文件里面,所以我们遇到了问题.为了解决这个问题,我们可以使用colorspace节点 它告诉我们输入的是srgb的,但是我们需要输出线性的.我们可以通过选择read节点来更改颜色信息如图。
4.jpg
那么现在通过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]
5.jpg
如果3d世界贴图和nuke一样的话, 那么现在你可以给你的场景重新打光了,但是在我们的场景中却不行.所以我们需要翻转点和法线pass的绿色蓝色通道,然后翻转蓝色通道并给蓝色通道一个反向值,那么在这个场景里,翻转节点没有正常工作因为它把0设置成1,而1设置成0了.我们可以匹配操作 乘以-1 使0设置成0,1设置成-1而-1则变成了1.
那么怎么做呢,我们添加一个shuffle节点,一个grade节点来控制[vraysamplerpoint]和[normal],那么我们可以再shuffle节点中翻转g绿b蓝两个通道,我们可以只翻转蓝色通道.你需要对两个pass都进行以上操作.下面我向你展示[vraysamplepoint]通道中节点的参数,[vraysamplenormal]当然也需要这么做.
6.jpg
 仅仅我们的relight节点正常工作,但是为了完成这不可思议的效果,我需要添加一些其它的节点,[positiontopoint]节点可以帮助我们在nuke的3d工作环境中显示重新打灯的效果.所以在other nodes--all plugin --p--positiontopoints添加一个[positiontopoint]节点或者直接按tab键 键入positiontopoint(我喜欢)然后连接到我们的节点中,就像下图,添加一个shuffle节点来输出rgb我们的[vraysamplepoint]通道.那么下面就是我们的节点设置.
7.jpg
通过positiontopoint节点,现在我们可以再nuke的三维空间看到3d max的渲染结果了,我们可以在场景中添加任意多的灯光照明,通过relight节点给我们提供效果.
8.jpg
这个技术是非常有用的,通常情况下我使用初始的图片通过使用多个relight节点和物体选择pass可以给每个元素单独照明。

9.jpg


via yiihuu
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-22 22:38 , Processed in 0.623576 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部