昨天,一个网友提到分块渲染的问题,记得以前在学校的时候,听过传说,大大的效果图是要分块的。当时做为一个为了毕业设计搞的天昏地暗的小鸟,就记在心里了
以下存为收藏,以防万一以后用的上。
======================================================================
怒火 13:06:43
上午对那分块渲染时间进行了下测试,以1080P的分24块为例,渲整张的用了4秒,我的MEL渲染总时间为13秒,那个bat批处理却用了将近两分钟
怒火 13:08:22
我写的MEL还有一个优势,渲出的图不用拼贴了
======================================================================
感谢怒火提供的图片及MEL,当然BAT也是他整理的。哈哈
以下为 -x 1920 -y 1080 分24块, 用 MEL 和 用命令行渲染两种方案的对比。 实际工作中,自己试试哪种可行用哪种吧。(不要说明的是,怒火是因为场景太复杂所以想分块渲染。不过个人认识,分块渲染不是为此而生的。对于场景太复杂本人还是推荐用分层渲染。 分块是为了渲超大尺寸的,对1080p的图分块我心里不爽)
先来BAT吧,字少: (用参数控制渲染的区域来得到N多小图)
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 0 320 810 1080 -of jpg -im tiel1 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 320 640 810 1080 -of jpg -im tiel2 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 640 960 810 1080 -of jpg -im tiel3 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 960 1280 810 1080 -of jpg -im tiel4 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1280 1600 810 1080 -of jpg -im tiel5 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1600 1920 810 1080 -of jpg -im tiel6 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 0 320 540 810 -of jpg -im tiel7 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 320 640 540 810 -of jpg -im tiel8 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 640 960 540 810 -of jpg -im tiel9 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 960 1280 540 810 -of jpg -im tiel10 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1280 1600 540 810 -of jpg -im tiel11 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 1600 1920 540 810 -of jpg -im tiel12 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 0 320 270 540 -of jpg -im tiel13 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 320 640 270 540 -of jpg -im tiel14 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 640 960 270 540 -of jpg -im tiel15 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 960 1280 270 540 -of jpg -im tiel16 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1280 1600 270 540 -of jpg -im tiel17 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1600 1920 270 540 -of jpg -im tiel18 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 0 320 0 270 -of jpg -im tiel19 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 320 640 0 270 -of jpg -im tiel20 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 640 960 0 270 -of jpg -im tiel21 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 960 1280 0 270 -of jpg -im tiel22 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1080 -reg 1280 1600 0 270 -of jpg -im tiel23 test.mb
"c:\Program Files\Autodesk\Maya2009\bin\render" -x 1920 -y 1081 -reg 1600 1920 0 270 -of jpg -im tiel24 test.mb
pause
效果
接下来是 mel 的实现: 用MEL控制摄像的挡板来实现
setAttr defaultRenderGlobals.left 0;
setAttr defaultRenderGlobals.rght 320;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "01" " ";
setAttr defaultRenderGlobals.left 320;
setAttr defaultRenderGlobals.rght 640;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "02" " ";
setAttr defaultRenderGlobals.left 640;
setAttr defaultRenderGlobals.rght 960;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "03" " ";
setAttr defaultRenderGlobals.left 960;
setAttr defaultRenderGlobals.rght 1280;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "04" " ";
setAttr defaultRenderGlobals.left 1280;
setAttr defaultRenderGlobals.rght 1600;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "05" " ";
setAttr defaultRenderGlobals.left 1600;
setAttr defaultRenderGlobals.rght 1920;
setAttr defaultRenderGlobals.bot 810;
setAttr defaultRenderGlobals.top 1080;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "06" " ";
setAttr defaultRenderGlobals.left 0;
setAttr defaultRenderGlobals.rght 320;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "07" " ";
setAttr defaultRenderGlobals.left 320;
setAttr defaultRenderGlobals.rght 640;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "08" " ";
setAttr defaultRenderGlobals.left 640;
setAttr defaultRenderGlobals.rght 960;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "09" " ";
setAttr defaultRenderGlobals.left 960;
setAttr defaultRenderGlobals.rght 1280;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "10" " ";
setAttr defaultRenderGlobals.left 1280;
setAttr defaultRenderGlobals.rght 1600;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "11" " ";
setAttr defaultRenderGlobals.left 1600;
setAttr defaultRenderGlobals.rght 1920;
setAttr defaultRenderGlobals.bot 540;
setAttr defaultRenderGlobals.top 810;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "12" " ";
setAttr defaultRenderGlobals.left 0;
setAttr defaultRenderGlobals.rght 320;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "13" " ";
setAttr defaultRenderGlobals.left 320;
setAttr defaultRenderGlobals.rght 640;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "14" " ";
setAttr defaultRenderGlobals.left 640;
setAttr defaultRenderGlobals.rght 960;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "15" " ";
setAttr defaultRenderGlobals.left 960;
setAttr defaultRenderGlobals.rght 1280;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "16" " ";
setAttr defaultRenderGlobals.left 1280;
setAttr defaultRenderGlobals.rght 1600;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "17" " ";
setAttr defaultRenderGlobals.left 1600;
setAttr defaultRenderGlobals.rght 1920;
setAttr defaultRenderGlobals.bot 270;
setAttr defaultRenderGlobals.top 540;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "18" " ";
setAttr defaultRenderGlobals.left 0;
setAttr defaultRenderGlobals.rght 320;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "19" " ";
setAttr defaultRenderGlobals.left 320;
setAttr defaultRenderGlobals.rght 640;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "20" " ";
setAttr defaultRenderGlobals.left 640;
setAttr defaultRenderGlobals.rght 960;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "21" " ";
setAttr defaultRenderGlobals.left 960;
setAttr defaultRenderGlobals.rght 1280;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "22" " ";
setAttr defaultRenderGlobals.left 1280;
setAttr defaultRenderGlobals.rght 1600;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "23" " ";
setAttr defaultRenderGlobals.left 1600;
setAttr defaultRenderGlobals.rght 1920;
setAttr defaultRenderGlobals.bot 0;
setAttr defaultRenderGlobals.top 270;
renderWindowRenderRegion renderWindowPanel1;
renderWindowSaveImageCallback "renderWindowPanel1" "24" " ";
效果: