`
schi
  • 浏览: 205890 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mel,cmds,python API哪个更快?

阅读更多
昨天偶然的跟同事谈论到这个问题,相信也有不少朋友对这个话题感兴趣.
其实在pymel出来的时候就已经有很多人去对它们的运行效率进行比较了,我以前也做过很简单的对比,但没做更多和更深入的对比,所以没有详细的数据来证明哪个更快.这里我只能给你们讲述一些比较理论上的东西.

首先是mel,它是maya的内置脚本语言,它的命令都都是内置的,而你只能通过C++ API(未支持Python前)来创建新的命令,所以它的运行速度是很快的.

cmds,它是mel的python版本,首先python和mel有着本质上的区别,它们的运行环境是完全不同的,所以它们的运行效率不在我们讨论的范围,我们只想知道cmds里面的命令和对应的mel命令对比哪个更快些.

我们先来了解一下cmds这个模块,打开maya的安装目录下的python路径,我们可以看到一些熟悉的python目录在site-packages里我们就能找到maya这个包,cmds就在里面,但它是空的,里面只有__init__.py.那它里面的涵数都是在那里实现的呢?其实cmds是在maya运行的时候被填充的,也就是dynamic load.maya启动的时候会调用maya.app.commands.py来对cmds进行动态加载,把需要的mel命令都放进去.为什么叫dynamic load?因为被加载的mel命令都是通过maya.cmds.dynamicLoad()来进行加载的.但是maya.cmds是空的这个dynamicLoad()从何而来?其实在mel里就有一个叫dynamicLoad的涵数,用来加载DLL的,但和maya.cmds.dynamicLoad()不同,maya.cmds.dynamicLoad()是maya内置的它必须在maya.app.commands.py被调用前就已经存在,虽然如此也不难推断出maya.cmds.dynamicLoad()跟mel版本的功能是一样的,只是实现上不同而已.就是说cmds里面的所有命令都是通过DLL来加载的,跟mel一样是内置的.

所以对应cmds和mel的命令是同一个DLL里的,运行速度应该是一样的,但我上面说过了,它们的运行环境不同,所以实际运行速度还是有些差别的.

cmds vs python API
cmds的命令可以看成就是通过C\C++来扩展的python模块,而python API是通过SWIG来对C++的API来转化的,我对SWIG不是很了解,但在速度优化方面肯定是没手动编写的好,所以不是cmds的命令就比python API慢,其实这两个是不好对别的,因为cmds的一句命令,API就可能有好几种写法,每种写法的运行速度也会不同的.
分享到:
评论

相关推荐

    maya mel/python编辑器

    此外,还可以通过`cmds`模块访问MEL命令,通过`pyMel`库使MEL和Python脚本互相调用。 7. **学习资源**:学习Maya的MEL和Python编程,可以参考Autodesk官方文档、在线教程、社区论坛如CGTalk、StackExchange等。此外...

    python与mel基础语法区别

    其实所有编程语言的差异在概念上的差异都很小,只是有些功能更多,涵盖量更大更复杂,而有些功能少,但简单易学 这里来一起看下mel与python语法上的差别 首先归类为以下几点 1, 变量 mel: string $st="hello world"; ...

    MayaPython简易教程.doc

    2. **挖掘隐藏功能**:Maya Python允许用户访问和利用Maya内部的高级功能,实现更多自定义操作。 3. **开发脚本和插件**:掌握Maya Python有助于快速开发自己的定制工具和插件,满足特定需求。 **什么是Maya Python...

    pymel:Maya中的Python完成了

    修复Maya的python模式,maya.cmds和maya.mel中的错误和设计限制 保持代码简洁易读 通过类层次结构和子模块添加组织 提供可通过html和内置的`help()函数访问的文档 使它“正常工作” 生产证明 自2008年发布以来,...

    Maya_Python_教程-很难得最新mayapython教程.pdf

    * Maya Python 是 Python 语言包裹起来的 MEL 命令。 * Maya Python 可以大幅度地提高工作效率,挖掘 Maya 隐藏功能,并快速开发脚本插件。 2.为什么学习 Maya Python? * Maya Python 可以提高工作效率和挖掘 ...

    探索Maya的编程世界:精通API的实用指南

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    python下wav音频文件绘制melspectrogram

    从文件夹中载入wav音频文件,根据音频文件绘制出相应的melspectrogram

    pythonForMaya

    同时,Maya Embedded Language (MEL)是Maya的原生脚本语言,对于某些任务,MEL可能更直观,Python可以通过`mel.eval`函数调用MEL脚本。 五、开发Maya插件 1. **节点插件**:创建自定义的节点类型,例如几何节点、...

    MAYA MEL 语言基础教程

    使用 MEL 指令可以快速产生物体、精确移动物体和对物体进行更有效的控制。MEL 程序可以帮助用户自动化工作流程,提高工作效率。 MEL 指令 MEL 指令是 MEL 语言的基本组成部分。MEL 指令可以用来快速产生物体、精确...

    Maya python简易教程

    Maya Python 是用 Python 语言包裹起来的 MEL 命令。它可以大幅度地提高工作效率,挖掘 Maya 隐藏功能,并快速开发脚本插件。 2. 为什么要学习 Maya Python? 学习 Maya Python 可以提高工作效率,挖掘 Maya 隐藏...

    Ctrl_O.zip_Mel_maya MEL

    Python 在 Maya 中也可以被用来扩展功能,与 MEL 脚本结合使用可以实现更复杂的功能,因为 Python 语言相比 MEL 更强大,语法更简洁。 3. `__init__.py`:这是一个Python模块初始化文件,表明这里可能包含一个Python...

    maya MEL工具_MELanie

    例如,现在的很多插件和工具已经开始采用Python作为主要的脚本语言,Python的GUI库如PyQt或tkinter提供了类似的功能,可以帮助用户更容易地创建交互式界面。此外,也有一些现代化的Maya插件开发框架,如OpenMaya,...

    探索Arnold渲染新境界:Maya脚本控制的艺术

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    自定义Maya工具架:打造个性化工作流的秘籍

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    探索Maya的无限可能:自定义节点开发指南

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    探索Maya脚本的无限可能:OpenMayaAnim高级动画操作全解析

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    Maya脚本进阶:打造个性化上下文菜单

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    Maya脚本中文件操作的奥秘:读取与写入的艺术

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    Maya脚本自动化:一键渲染场景的艺术

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

    驾驭OpenMayaUI:在Maya脚本中构建用户界面的艺术

    Python脚本可以通过`maya.cmds`模块访问Maya的命令,实现与MEL相似的功能。 在Maya中,脚本可以通过“脚本编辑器”(Script Editor)进行编写和执行,也可以保存为`.mel`或`.py`文件以便重复使用。脚本编辑器提供了...

Global site tag (gtag.js) - Google Analytics