Nuke后期运动模糊解决方案5DOCWord文档下载推荐.docx
《Nuke后期运动模糊解决方案5DOCWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Nuke后期运动模糊解决方案5DOCWord文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
无运动模糊
图2:
nuke后期运动模糊
一、准备工作
这个方案的基本流程是使用mentalray渲染器输出运动矢量,然后在nuke中通过VectorBlur节点将原始图片序列与运动矢量序列进行合成产生接近真实的运动模糊的效果。
因此需要带mentalray渲染器的三维软件(如maya、max、xsi或者mentalray独立版),nuke(4.7以上)以及相对应版本的shader_p(mentalray节点功能扩展包)。
Shader_p是什么?
Shader_p是由俄罗斯人Puppet开发的免费的mentalray节点包,里面包含一系列能扩展mentalray功能、提升mentalray效率的shaders,shader_p能够很好的工作在mentalray独立版以及主流三维软件maya、max、xsi里,并且shader_p支持以下若干操作系统平台:
windows32、windows64、linux32、linux64以及macOSX,因此通用性很高。
Shader_p的各个版本可以在
在本文中我们将使用Maya2009,配合shader_p中的p_motion_to_rgb这个shader来生成运动矢量信息,其他三维软件的操作方法类似,最后通过nuke5.1v5进行合成。
Shader_p的安装方法(maya):
1、关闭maya;
2、将shaders_p.dll(linux或者mac下是shaders_p.so)拷贝到“maya安装目录”/mentalray/lib目录下(例如:
D:
\ProgramFiles\Autodesk\Maya2009\lib);
3、将shaders_p.mi拷贝到“maya安装目录”/mentalray/include目录下;
4、将所有的*.xpm文件拷贝到“maya安装目录”/icons目录下;
5、将AE目录下所有的的*.mel文件拷贝拷贝到“maya安装目录”/scripts/AETemplates目录下。
安装完成。
如果在渲染的时候出现类似如下错误:
“LINK0.0error191007:
cannotloadC:
\ProgramFiles\Alias\Maya7.0\mentalray\lib/shaders_p.dll,Thisapplicationhasfailedtostartbecausetheapplicationconfigurationisincorrect.Reinstallingtheapplicationmayfixthisproblem.”
请安装“MicrosoftVisualC++2005SP1RedistributablePackage”。
下载链接:
MicrosoftVisualC++2005SP1RedistributablePackage(x86)
MicrosoftVisualC++2005SP1RedistributablePackage(x64)
二、maya输出运动矢量信息
1、确认安装好shader_p以后,打开maya的Hypershade,创建p_motion_to_rgb节点,将新创建的p_motion_to_rgb赋给运动物体,更改p_motion_to_rgb的Mode属性为RasterSpace。
如图3.
图3:
p_motion_to_rg节点
2、打开RenderSettings,切换渲染器为mentalray。
将Imageformat更改为MayaIFF、TIFF或者OpenEXR格式,推荐使用OpenEXR,因其对32位浮点数据支持的最好。
3、切换到“Quality”选项卡,更改橘红色字体所示属性如下图4:
图4:
mentalray的渲染设置
说明:
ShutterOpen和ShutterClose都设置为1是为了只计算运动模糊的矢量而并不应用到所渲染的物体上。
MotionSteps设置为最低值1是为了最小化渲染复杂模型的计算量,类似的,TimeSamples也可以设置为最低值1。
CustomMotionOffsets勾选的目的是为了能将MotionBackOffset的值设置为1。
DataType设置为RGBA(float)4x32Bit是为了支持矢量信息超过0到1范围的情况,而p_motion_to_rgb生成的矢量信息是未经过归一化的,因此值常常会超过1或者少于0。
ShutterOpen、ShutterClose、MotionBackOffset这三个参数都设置为1能够确保物体在两个轴以上的旋转运动时,仍然能够得到完全精准的运动矢量信息。
通常的输出运动矢量信息的方法是将ShutterOpen、ShutterClose、MotionBackOffset都设置为0.5,这样的设置在某些场合会得到不完全正确的运动矢量信息,合成的时候会出现瑕疵。
渲染的抗锯齿级别和过滤器请设置为和你的最终原始图像渲染一样的设置!
4、设置完毕后渲染输出运动矢量信息,并输出没开运动模糊的原始图像序列,如图5、6所示:
图5:
不带运动模糊的原始图像
图6:
运动矢量信息图
三、进nuke合成
节点链接如图7所示:
图7:
nuke节点网络
Copy1节点和VectorBlur1节点的属性设置如图8所示:
图8:
Copy1节点和VectorBlur1节点设置
Mentalray渲染的纯三维运动模糊与nuke合成运动模糊的效果对比,如图9、10:
图9:
三维与后期运动模糊的对比
图10:
四、结论
本文中所使用的生成运动矢量的方法与bbrcn的博客文章“MentalrayMotionBlur试解决方案和mip_motionblurmip_motion_vectorshader”(链接:
本文中的nuke合成是基于线性工作流程(linearworkflow)的,测试的结果一定程度上论证了线性工作的可操作性,笔者推测线性工作流程对于合成中提高校色质量和解决半透明物体偏黑偏白问题的解决应该存在非常重要的作用,这些将在今后的时间里继续试验论证。
另附上编写过程中基于sRGB色彩空间的节点流程图与效果:
图11:
全部基于sRGB色彩空间(包括viewer)的节点合成图
图12:
全部基于sRGB色彩空间(包括viewer)的合成效果(效果失真)
图13: