[suDLS.mel]3Delight渲染shave自动化工具
项目接下来要开始大量使用Shave&3DL,而现有的破解版本9.0.0在配置渲染时是异常繁琐的,正好之前写过一个小工具可以自动化执行这些重复的操作,但是有些小bug,今天拿出来修改了一下已经可以使用。上图就是使用此工具设置的Shave的预设grass渲染的结果,原本繁琐的步骤可以在半分钟内搞定了。
使用方法秉承极简主义,界面语言响应Maya中文化的大潮流。
三步走:在打算使用3Delight渲染shave的场景里面执行此mel,会弹出如图的弱智界面;
- 点1初始化
(建立render pass,自动选择渲染相机) - 选择照明灯光,点2
(为灯光建立set和相应delightAttr节点,调整deep阴影选项以及灯光自身bias值) - 框选所有投影、遮挡物体,包括shave,点3
(为物体建立delightAttr节点,接受指定灯光光照,并设置物体Matte属性为true以遮挡shave)
/* suDLS.mel cuckons[at]163.com
* Make shave renderable by 3DLFM automatically.
2011.7.8
*/
int $suDLS_res = 512;
print $suDLS_res;
//Get the renderable camera
proc string suGetRenderCam(){
string $renderCam;
string $cams[] = `ls -type camera`;
for ($each in $cams){
if (`getAttr ($each+".renderable")`){
$renderCam = $each;
break;
}
}
return $each;
}
proc suSetShave(){
DL_createSurfaceShader("C:/Program Files/3Delight/shaders/Shave.sdl", 0);
string $shave[] =`ls -typ shaveHair`;
DL_setObjectAttrib("Shave1","surface",$shave);
setAttr "Shave1.SHAVEselfshad" 0.6;
print "Shave OK.\n";
}
//Setup the lightSet
global proc suDLS_SetLight(){
global int $suDLS_res;
string $lights[] = `ls -sl`;
sets -n "lightSet";
DLA_create();
//Assign
DL_setObjectAttrib("delightLightAttribs1","delightLightAttribs",$lights);
setAttr "delightLightAttribs1.generateShadowMaps" 1;
setAttr "delightLightAttribs1.shadowMapResolutionX" $suDLS_res;
setAttr "delightLightAttribs1.shadowMapResolutionY" $suDLS_res;
setAttr delightLightAttribs1.shadowMapType 1;
for ($each in $lights) {
string $shape[] = `listRelatives -s $each`;
setAttr ($shape[0]+".useDepthMapShadows") 1;
setAttr ($shape[0]+".dmapBias") 0.2;
}
print "Light OK.\n";
}
global proc suDLS_SetObj(){
string $objs[] = `ls -sl -l`;
//Check over the objs and group if shavenode have no parent
for ($i = 0; $i<size($objs);$i++){
string $foo[] = `listRelatives -s -f $objs[$i]`;
if (size($foo) == 0)
continue;
if (nodeType($foo[0])=="shaveHair"){
string $grp =`group -n "shave_grp" $objs[$i]`;
$objs[$i] = $grp;
}
}
//<-------------
//create the Matte objects
//
sets -n "objSet" $objs;
DGA_create();
//Assign
DL_setObjectAttrib("delightGeoAttribs1","delightGeoAttribs",$objs);
//Illumination from
addAttr -ln "illuminationFrom" -at message delightGeoAttribs1;
//Matte Object
DGA_matteObjectCreateAttr delightGeoAttribs1;
setAttr "delightGeoAttribs1.matteObject" 1;
//lightSet
DL_disconnectNode( "delightGeoAttribs1.illuminationFrom" );
DL_connectNodeToMessagePlug( "lightSet", "delightGeoAttribs1.illuminationFrom" );
DL_disconnectNode( "delightLightAttribs1.shadowObjects" );
DL_connectNodeToMessagePlug( "objSet", "delightLightAttribs1.shadowObjects" );
//----------------->
//<----------------
//create the anti Matte objects
//
string $shaveShape[] =`ls -typ shaveHair`;
for ($i=0;$i<size($shaveShape);$i++) {
string $foo[] = `listRelatives -p $shaveShape[$i]`;
$shaveShape[$i] = $foo[0];
}
DGA_create();
//Assign
setAttr "delightGeoAttribs2.inheritDAGParentAttributes" 0;
DL_setObjectAttrib("delightGeoAttribs2","delightGeoAttribs",$shaveShape);
//Illumination from
addAttr -ln "illuminationFrom" -at message delightGeoAttribs2;
//Matte Object
DGA_matteObjectCreateAttr delightGeoAttribs2;
setAttr "delightGeoAttribs2.matteObject" 0;
//lightSet
DL_disconnectNode( "delightGeoAttribs2.illuminationFrom" );
DL_connectNodeToMessagePlug( "lightSet", "delightGeoAttribs2.illuminationFrom" );
suSetShave();
print "Objects OK.\n";
}
//Start setup
//
global proc suDLS_Init() {
source DL_aeCommon.mel;
source DL_attribsNodeManager.mel;
source DL_globals.mel;
source DL_lightAttribsNode;
source DL_geoAttribsNode.mel;
int $sample = 3;
string $rpn = `DL_createRenderPassNode`;
//Sample
setAttr ($rpn+".pixelSamplesX") $sample;
setAttr ($rpn+".pixelSamplesY") $sample;
//Set the renderable camera
AE_setConnectedNodeFromMenu delightRenderPass1.camera AE_updateAE `suGetRenderCam`;
print "Initialized OK.\n";
}
global proc suDLS_SetRes() {
global int $suDLS_res;
string $text;
string $result = `promptDialog
-title "分辨率"
-message "设置阴影贴图的分辨率,\n越高越清晰,但渲染时间越长.\n建议512 - 1024\n\n*注意* 此选项只影响以后设置的灯光,\n已经设置好的灯光不受影响!\n"
-button "OK" -button "Cancel"
-defaultButton "OK" -cancelButton "Cancel"
-dismissString "Cancel"`;
if ($result == "OK") {
$text = `promptDialog -query -text`;
$suDLS_res = int($text);
}
}
// Delight Setup UI
global proc suDLS() {
global int $suDLS_res = 512;
string $win_name = "suDLS_UI";
if (`window -q -exists $win_name`)
deleteUI $win_name;
window -t "3Delight&Shave Setup" -wh 200 126 $win_name;
columnLayout -adj 1;
button -l "1. 初始化" -c "suDLS_Init";
button -l "2. 设置灯光" -c "suDLS_SetLight";
button -l "3. 设置物体" -c "suDLS_SetObj";
button -l "阴影分辨率.." -c "suDLS_SetRes";
showWindow();
}
[suDLS.mel]3Delight渲染shave自动化工具相关推荐
- [转载]武哥的3delight渲染shave笔记_huadingjin_新浪博客
原文地址:武哥的3delight渲染shave笔记作者:黑化武 1,创建物体+毛发+灯光,就以poly小球 毛发brunette 只打一盏聚光灯 为例 2,分别选中物体毛发 和 灯光 分别SET (C ...
- 微软“最强自动化工具”playwright实战项目
微软"最强自动化工具"playwright实战项目 近期微软推出了一款号称"最强"的自动化测试工具,网上便出现了大批讲解文章,一看全是github上的reade ...
- selenium自动化工具(一)
Selenium 的使用 文章预览: Selenium 的使用 1. 准备工作 2. 声明浏览器对象 3. 基本使用 4. 初始化配置 5. 查找节点 5.1 单个节点 5.2 多个节点 6. 节点交 ...
- python 自动化办公 案例_python自动化工具之pywinauto实例详解
python自动化工具之pywinauto实例详解 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python自动化工具之pywinauto实例详解.txt ] (友情提示: ...
- 推荐一个工作流自动化工具
以下文章来源方志朋的博客,回复"666"获面试宝典 今天,要和大家分享一个"开源"工作流自动化工具--n8n ,简单来说,它是一个与其他应用程序集成的应用程序, ...
- 前端自动化工具 grunt 插件 uglify 的简单使用(一)
Grunt 的简介: Grunt 是一套前端自动化工具,是一个基于 node.js 的命令行工具,它一般用于: 1.压缩文件: 2.合并文件: 3.简单的语法检测: 4.监听文件变动: 5.less ...
- 在 CentOS 7 中安装并使用自动化工具 Ansible
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端.它使用SSH来和节点进 ...
- python 网页自动处理_推荐一款 10 行 Python 代码实现网页自动化工具
各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习.影音娱乐.查询资料.协同办公,越来越多的任务都被迁移到浏览器 因此,网页也蕴含着很多有价值.我们能够用得到的资源 例如,数据.歌曲.影视 ...
- gulp前端自动化工具的快速入门案例
最近项目和工作中要开始使用自动化工具了,回想一下以前接触这个的时候就是什么nodejs,grunt之类的了,这次干脆就用一个新的,那么就是gulp... 全局下利用npm安装gulp sudo npm ...
最新文章
- php获取当月开始和结束的时间戳,PHP获取今天开始和结束的时间戳
- 9个用于构建容错系统的开源工具
- wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
- 给你准备的Linux启动流程
- C语言 pthread_create
- python连接postgis_python连接PostgreSQL
- js 浅拷贝和深拷贝
- Chrome 新功能:因更新或崩溃而重启后,PWA应用将自动恢复运行!
- 阿里巴巴Android开发手册(规约)
- 如何使用VMware 和ISO镜像文件 安装linux虚拟机,(附有安装工具)
- 微型计算机原理(第六版)姚向华编著(转载请注明出处---https://www.cnblogs.com/qingl)...
- 15直接引语变间接引语(陈述句作宾语从句)
- 测试键盘是否灵敏的软件,u盘启动大师pe检测键盘灵敏度图文教程
- 16比9尺寸是多少厘米_16比9(16比9分辨率大全)
- word方框内插入对勾
- swing(二十一)
- 大牛证券医药板块连续遭遇重挫
- 硕士复试自我介绍中英模板
- PS 父图层与子图层
- 华大单片机DMA学习