Maya脚本语言Mel编写的多相机渲染面板_第1页
Maya脚本语言Mel编写的多相机渲染面板_第2页
Maya脚本语言Mel编写的多相机渲染面板_第3页
Maya脚本语言Mel编写的多相机渲染面板_第4页
Maya脚本语言Mel编写的多相机渲染面板_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/创建窗口/global proc creatWindow()if(window -ex mWindow) deleteUI mWindow; window -title 渲 染 设 置 -rtf true /自动调节窗口大小 -mxb 0 /关闭最大化按钮 mWindow;columnLayout -adjustableColumn true; frameLayout -label 相机矩阵 -bgc 0 0 0 -collapsable on -width 400/ -height 150; /*相机矩阵*/ columnLayout; intFieldGrp -numberOfField

2、s 2 -label 相机矩阵: -value1 34 -value2 54 Array;/ setParent .;/*相机间距*/ / rowLayout; floatFieldGrp -label 相机间距: -extraLabel cm -pre 2 -value1 2 JianJu; / setParent .; /*Z轴偏移*/ / rowLayout; floatFieldGrp -label Z轴偏移: -extraLabel cm -pre 2 -value1 5 PianYi;/ setParent .; rowColumnLayout -nc 4 -cw 1 80 -cw

3、 2 60 -cw 3 60 -cw 4 60; text -l ; button -label 创建相机 -command creatCamera(); text -l ; button -label 删除相机 -command delectCamera(); setParent .; setParent .; setParent .; frameLayout -label 相机设置 -bgc 0 0 0 -collapsable on -width 400 -height 180; /*相机焦距*/ columnLayout; floatSliderGrp -min 10 -max 200

4、 -label 焦 距: -pre 2 -width 330 -field true -extraLabel mm -value 80 -cc float $f=floatSliderGrp -q -value JiaoJu;float $sj=2*atan(18/$f)*57.3;floatSliderGrp -e -value $sj ShiJiao; JiaoJu;/ setParent .;/*相机视角*/ / rowLayout; floatSliderGrp -min 10.3 -max 121.9 -label 视 角: -pre 2 -width 332 -field true

5、 -extraLabel -value 25.36 -cc float $sj=floatSliderGrp -q -value ShiJiao;float $f=18/(tan($sj/114.6);floatSliderGrp -e -value $f JiaoJu; ShiJiao;/ setParent .; rowColumnLayout -nc 3; separator -w 170; text -l 移轴设置; separator -w 180; setParent .; /*左右平移*/ / rowLayout; floatSliderGrp -min -1.00 -max 1

6、.00 -label 左右平移: -field true -pre 2 -width 330 -extraLabel mm -value 0 LR;/ setParent .;/*上下平移*/ / rowLayout; floatSliderGrp -min -1.0 -max 1.0 -label 上下平移: -field true -pre 2 -width 330 -extraLabel mm -value 0 UD; /*景深设置*/ rowColumnLayout -nc 3; separator -w 170; checkBox -l 景深 -value 1 -onCommand

7、floatField -e -vis true JJJL;floatField -e -vis true GQF;floatField -e -vis true QYB; -offCommand floatField -e -vis false JJJL;floatField -e -vis false GQF;floatField -e -vis false QYB; JS; separator -w 180; setParent .; rowColumnLayout -nc 6; text -l 聚焦距离:; floatField -value 5 JJJL; /聚焦距离 text -l

8、光圈F值:; floatField -value 5.6 GQF; /光圈F值 text -l 聚焦区域比例:; floatField -value 1 QYB; /聚焦区域比例 setParent .; setParent .; setParent .; frameLayout -label 图片设置 -bgc 0 0 0 -collapsable on -width 400 -height 120; /*图片大小*/ rowLayout; intFieldGrp -label 像 素: -value1 24 Pixel; setParent .;/*图片格式*/ rowLayout; ra

9、dioButtonGrp -numberOfRadioButtons 2 -label 图片格式: -labelArray2 bmp jpg -select 1 Format; setParent .;/*输出路径*/ / rowLayout;/ string $filePath=D:/; / textFieldButtonGrp -label 输出路径: -text $filePath -width 280 -buttonLabel 浏览 Path;/ textFieldButtonGrp -e -bc (string $Path1 =fileDialog2 -fileMode 3; $fi

10、lePath=$Path10+; textFieldButtonGrp -e -text $filePath Path ) Path; rowColumnLayout -nc 4 -cw 1 80 -cw 2 60 -cw 3 140 -cw 4 50; text -l ; text -l 路径选择:; string $filePath=D:/; textField -tx $filePath TF; button -l 打开 -c string $Path1 =fileDialog2 -fileMode 3; $filePath=$Path10+/; textField -e -text $

11、filePath TF BU; setParent .; setParent .; /*渲染图片*/ string $form=formLayout; string $b1=button -label 普通渲染 -w 80 -h 30 -command Render(); string $b2=button -label 目标渲染 -w 80 -h 30 -command Render1(); string $b3=button -label 移轴渲染 -w 80 -h 30 -command Render2(); formLayout -edit -attachForm $b1 top 10

12、 -attachForm $b1 left 40 -attachForm $b1 bottom 5 -attachNone $b1 right -attachForm $b2 top 10 -attachControl $b2 left 40 $b1 -attachForm $b2 bottom 5 -attachNone $b2 right -attachForm $b3 top 10 -attachControl $b3 left 40 $b2 -attachForm $b3 bottom 5 -attachNone $b3 right $form; setParent .; setPar

13、ent .; /*进度条*/ rowColumnLayout -nc 4; progressBar -width 250 JD; text -l 耗时:; textField -w 70 HS; text -l 秒; setParent .; setParent .; showWindow mWindow; /创建相机/proc creatCamera() int $m=intFieldGrp -q -value1 Array; int $n=intFieldGrp -q -value2 Array; /相机矩阵m*n float $s=floatFieldGrp -q -value1 Jia

14、nJu; /相机间距 float $z=floatFieldGrp -q -value1 PianYi; /Z轴偏移 int $i;int $j; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) camera; move (2*$j-$n-1)*$s/2) ($m-2*$i+1)*$s/2) $z; proc creatCamera1() int $m=intFieldGrp -q -value1 Pixel; int $n=intFieldGrp -q -value1 Pixel; /相机矩阵m*n float $d1=floatFieldGrp -q -va

15、lue1 PianYi; /原相机Z轴偏移 float $s1=floatFieldGrp -q -value1 JianJu; /原相机间距 float $o1=floatSliderGrp -q -value ShiJiao; /原相机视角 int $M=intFieldGrp -q -value1 Array; /原相机阵列M*N int $N=intFieldGrp -q -value2 Array; float $z=10*$d1; /目标相机Z轴偏移 float $l0=2*$d1*tan($o1*3.1415926/360); /原来每个相机拍摄的物体大小 float $t=$l

16、0/24; float $s=2*($z-$d1)*tan($o1*3.1415926/360)/23; /目标相机间距 int $k; int $i;int $j; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) camera; cameraMakeNode 2 ; $k=($i-1)*$n+$j; float $x2=-(2*$j-$n-1)*$s/2; float $y2=-($m-2*$i+1)*$s/2; string $cam=camera+$k; select -r $cam; move $x2 $y2 $z; string $cam_aim=$c

17、am + _aim; select -r $cam_aim; move 0 0 $d1; float $x1=-($N-1)*$s1/2+$l0/2)+($j-1)*$t; float $y1=($M-1)*$s1/2+$l0/2)-($i-1)*$t; float $q=($x1-$x2)*(-$x2)+($y1-$y2)*(-$y2)+(-$z)*($d1-$z)/(sqrt($x1-$x2)*($x1-$x2)+($y1-$y2)*($y1-$y2)+$z*$z)*sqrt($x2*$x2+$y2*$y2+($d1-$z)*($d1-$z);/ float $q=($x2-$x1)*(-

18、$x2)+(-$z)*($d1-$z)/(sqrt($x1-$x2)*($x1-$x2)+$z*$z)*sqrt($x2*$x2+($d1-$z)*($d1-$z); float $o2=2*acos($q)*0.85;/ float $o2=2*acos($q); float $f=18/(tan($o2/2); string $camShape=cameraShape + $k; setAttr ($camShape + .focalLength) $f; /设置摄像机焦距 proc creatCamera2() int $m=intFieldGrp -q -value1 Pixel; i

19、nt $n=intFieldGrp -q -value1 Pixel; /相机矩阵m*n float $d1=floatFieldGrp -q -value1 PianYi; /原相机Z轴偏移 float $s1=floatFieldGrp -q -value1 JianJu; /原相机间距 float $o1=floatSliderGrp -q -value ShiJiao; /原相机视角 int $M=intFieldGrp -q -value1 Array; /原相机阵列M*N int $N=intFieldGrp -q -value2 Array; float $z=10*$d1; /

20、移轴相机Z轴偏移 float $l0=2*$d1*tan($o1*3.1415926/360); /原来每个相机拍摄的物体大小 float $t=$l0/24; float $s=2*($z-$d1)*tan($o1*3.1415926/360)/23; int $k; int $i;int $j; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) camera; $k=($i-1)*$n+$j; float $x2=-(2*$j-$n-1)*$s/2; float $y2=-($m-2*$i+1)*$s/2; string $cam=camera+$k; sel

21、ect -r $cam; move $x2 $y2 $z; float $x1=-($N-1)*$s1/2+$l0/2)+($j-1)*$t; float $y1=($M-1)*$s1/2+$l0/2)-($i-1)*$t; float $f=18*$z/(53*$s1/2); float $dx=-($x2-$x1)*($f*0.1)/$z-1.8)/2.54; /水平平移 float $dy=-($y2-$y1)*($f*0.1)/$z+1.2)/2.54; /竖直平移 string $camShape=cameraShape + $k; setAttr ($camShape + .foc

22、alLength) $f; /设置摄像机焦距 setAttr ($camShape + .horizontalFilmOffset) $dx; /设置左右平移 setAttr ($camShape + .verticalFilmOffset) $dy; /设置上下平移 /删除相机/proc delectCamera() select -r camera*; doDelete; /普通渲染/proc Render() $startTime = timerX; int $m=intFieldGrp -q -value1 Array; int $n=intFieldGrp -q -value2 Ar

23、ray; /相机矩阵m*n float $f=floatSliderGrp -q -value JiaoJu; /焦距 float $leftR=floatSliderGrp -q -value LR; /左右平移 float $upD=floatSliderGrp -q -value UD; /上下平移 int $jingS=checkBox -q -value JS; /景深 float $jjjL=floatField -q -value JJJL; /聚焦距离 float $gqF=floatField -q -value GQF; /光圈F值 float $qyB=floatFiel

24、d -q -value QYB; /聚焦区域比 int $xy=intFieldGrp -q -value1 Pixel; /图片像素 int $gesi=radioButtonGrp -q -select Format; int $format;string $GeSi; switch($gesi) case 1: $format=20;$GeSi=bmp;break; case 2: $format=8;$GeSi=jpg;break;/ case 3: $format=8;break; /图片格式 string $Path=textField -q -text TF; /路径 int $

25、i; int $j;int $k=1; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) string $camShape=cameraShape + ($k+); setAttr ($camShape + .panZoomEnabled) 1; /启动平移/缩放 setAttr ($camShape + .renderPanZoom) 1; /启动渲染平移缩放 setAttr ($camShape + .focalLength) $f; /设置摄像机焦距 setAttr ($camShape + .horizontalPan) $leftR; /设置左右平移 s

26、etAttr ($camShape + .verticalPan) $upD; /设置上下平移 setAttr ($camShape + .depthOfField) $jingS; /景深 1 启动 0 关闭 if($jingS=1) setAttr ($camShape + .focusDistance) $jjjL; /聚焦距离 setAttr ($camShape + .fStop) $gqF; /光圈F值 setAttr ($camShape + .focusRegionScale) $qyB; /聚焦区域比 setAttr defaultRenderGlobals.imageFor

27、mat $format; /设置渲染图片格式 workspace -fr images $Path; $k=0; progressBar -e -pr 0 JD; int $max=$m*$n-1; progressBar -edit -maxValue $max JD; string $com=move + $Path + tmp123_19. + $GeSi + + $Path + tmp; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) $k+; string $cam=camera + $k; string $mL=$com + $i + _ + $j

28、+ . + $GeSi; render -x $xy -y $xy $cam; system($mL); progressBar -edit -step 1 JD; $totalTime = timerX -startTime $startTime; textField -e -text $totalTime HS; /目标渲染/proc Render1() delectCamera(); creatCamera1(); $startTime = timerX; int $m=intFieldGrp -q -value1 Pixel; int $n=intFieldGrp -q -value1

29、 Pixel; /相机矩阵m*n int $pixelX=intFieldGrp -q -value2 Array; /图片像素 int $pixelY=intFieldGrp -q -value1 Array; int $gesi=radioButtonGrp -q -select Format; int $format;string $GeSi; switch($gesi) case 1: $format=20;$GeSi=bmp;break; case 2: $format=8;$GeSi=jpg;break;/ case 3: $format=8;break; /图片格式 string

30、 $Path=textField -q -text TF; /路径 int $i; int $j;int $k=1; setAttr defaultRenderGlobals.imageFormat $format; /设置渲染图片格式 workspace -fr images $Path; $k=0; progressBar -e -pr 0 JD; int $max=$m*$n-1; progressBar -edit -maxValue $max JD; string $com=move + $Path + tmp123_19. + $GeSi + + $Path + tmp; for($i=1;$i=$m;$i+) for($j=1;$j=$n;$j+) $k+; string $cam=camera + $k; string $mL=$com + $i + _ + $j + . + $GeSi; render -x $pixelX -y $pixelY $cam; system($mL); progressBar -edit -step 1 JD; $totalTime = timerX -startTime $startTime; textField -e -text $tota

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论