随笔分类 -  C++

转:关于支持多重采样的FBO和Texture
摘要:该文转自风过枫默的博客,对于如何使用MSAA(Multisample Anti Aliasing)解释的比较透彻,特转载来供自己查阅,也方便大家,原文链接为 http://www.cnblogs.com/chandler00x/p/3888139.html?utm_source=tuicool&ut 阅读全文

posted @ 2016-02-23 14:43 如梦令 阅读(1289) 评论(0) 推荐(0) 编辑

浅谈Stingray中的定制与开发
摘要:上周刚刚开完了我们传媒娱乐行业一年一度的开发者日活动,有不少朋友,尤其是一些设计领域的朋友也都对这个全新的游戏引擎 Stingray比较感兴趣。我们在会上也做了一些开发介绍,为了方便更多没来参加的朋友,我也把这个简单录了个视频放在这里,大家可以一起探讨。 阅读全文

posted @ 2016-01-21 15:27 如梦令 阅读(254) 评论(0) 推荐(0) 编辑

Can I compile and run Dx11Shader for Maya 2015 on my side?
摘要:Currently, you can find the source code of Dx11Shader under our devkit\plug-ins\ folder, but if you want to do some modification on this, can it be bu... 阅读全文

posted @ 2014-12-09 15:21 如梦令 阅读(612) 评论(0) 推荐(0) 编辑

Don't performan heavy tasks in the MoBu Real-time engine thread, even if it worked before
摘要:Recently we received a question about a crash while calling FBPlayerControl::GotoStart() from within a device real-time engine thread. It seems this w... 阅读全文

posted @ 2014-11-20 11:19 如梦令 阅读(362) 评论(0) 推荐(0) 编辑

欧特克传媒娱乐行业正在招聘技术开发顾问(API evangelist)
摘要:欧特克传媒娱乐部门为整个传媒娱乐行业提供了一整套完整的制作软件,有大家熟知的用于数字制作的平台软件Maya, 3ds Max,有用于动画制作的MotionBuilder,用于后期编辑的Smoke等等。同时,我们也提供了SDK来让用户能够根据自己的实际需求对这些产品来进行深度定制。而我们部门Autod... 阅读全文

posted @ 2014-06-19 08:56 如梦令 阅读(239) 评论(0) 推荐(0) 编辑

node.js 初体验(转载)
摘要:最近学习游戏开发,后台技术在研究node.js,发现这篇不错的入门帖子,转下:转自聂微东, 出处:http://www.cnblogs.com/Darren_code/ 最近写的文章收到许多朋友的反馈,感谢大家的支持和建议,让我对坚持写博客充满热情,一个月一篇文章确实有点少,所以以后尽力多做分享,... 阅读全文

posted @ 2014-05-28 15:27 如梦令 阅读(200) 评论(0) 推荐(0) 编辑

关于Maya 的 Node ID
摘要:经常有人问,开发了一些Maya 的DG 节点,想要分享给全球用户使用,如何才能获取到 Node ID,这就需要向Autodesk申请全球唯一的ID。首先,先简单看下如下说明:获取方式很简单:1. 打开 www.autodesk.com/developmaya链接;2. 在Register a Maya Developer Node ID Block 中,点击相应链接进入;3. 在新打开的页面的最下方,可以看到有Register an ID Block,点击相应的链接;4. 填写相应的表格,参考如下;5. 然后,Autodesk会自动发送Node Id block 到你的邮箱中,请注意查收。另外 阅读全文

posted @ 2014-03-19 18:09 如梦令 阅读(696) 评论(0) 推荐(0) 编辑

使用ScriptJob来添加回调函数
摘要:在Maya开发中,我们知道 MMessage 和它的派生类可用于对Maya的内部事件添加一些回调函数,用于在指定的时机处理一些自定义的任务。但除了用MMessage类,我们还有一些其他简单的 Mel 命令可处理类似情况,今天我们就来看一下ScriptJob 命令。Mel 命令 scriptJob 可以用来为Maya内部的event,condition 或者attribute 添加回调函数,使用非常简单,我们可以看下如下命令 :// 设置当选择集改变事件触发的时候,打印一段文字scriptJob -event "SelectionChanged" "print \& 阅读全文

posted @ 2014-03-07 10:16 如梦令 阅读(778) 评论(0) 推荐(0) 编辑

Maya 属性关于 writable, readable, connectable, hidden 的一些说明
摘要:我们知道Maya属性有多个性质,比如是否是数组之类的等等,但是其中有几个属性:writable, readable, connectable, hidden 却是比较容易混淆的,而且事实上,Maya自身对这几个属性也没有处理的很好,内部有一个Bug正在处理这个问题。让我们来看下目前Maya这几个属性的现状和功能:Writable: 字母意思很容易理解,设置属性是否可写,参考开发文档,表示这个属性是否可以作为连接的目标属性,另外也提到,如果这个属性的writable 为false的话,setAttr 是无法改变属性值的,事实是否如此呢?我做了一个简单的实验,结果如下:sphere -n eart 阅读全文

posted @ 2014-03-03 09:17 如梦令 阅读(647) 评论(0) 推荐(0) 编辑

如何了解该属性是否会触发MDagMessage::addWorldMatrixModifiedCallback事件
摘要:有一个partner问我,他在使用 MDagMessage::addWorldMatrixModifiedCallback 这个事件,但是他想了解到底哪些属性的变化会触发这个事件,他们有一些特殊的需求需要单独处理那些不触发这个事件的属性。这个就涉及到属性之间相互影响的关系,查了下SDK,上面说“This method registers a callback that is called when a DAG node's worldMatrix changes.”,那也就说,要知道哪些属性变化会触发该事件,只要知道哪些属性会影响到worldMatrix 属性, 一开始,我建议用户使用 阅读全文

posted @ 2014-02-24 15:05 如梦令 阅读(309) 评论(0) 推荐(0) 编辑

关于数组元素(ArrayPlug)的增减使用,逻辑索引和物理索引,MArrayDataBuilder
摘要:我们知道,Maya中接口(Plug)可以包含多个元素,另外每个元素也都可以再包含多个元素,形成一个多层数组接口。Maya SDK专门提供了 MArrayDataHandle 类用于处于数组接口(Array Plug)。但是我们看到,该类只能遍历读取数组元素,但是没有提供增加或者删除数组元素的方法,那如果要想对数组元素进行增减,这个该如何操作呢?大家可能都知道 MArrayDataBuilder 这个类可以用于处理数组元素,但是这个Attribute 必须在初始化的时候用 MFnAttribute::setUsesArrayDataBuilder(true) 来指定。默认状态是无法使用MArra 阅读全文

posted @ 2014-02-24 14:12 如梦令 阅读(609) 评论(0) 推荐(0) 编辑

PostSceneRead 事件和MSceneMessage::kAfterFileRead 的关系和区别
摘要:Maya 内部事件 阅读全文

posted @ 2014-01-29 12:53 如梦令 阅读(491) 评论(0) 推荐(0) 编辑

如何检测DG中是否有循环链接?
摘要:有个用户发来了一个问题,他们有一个自己的渲染器,但是如果用户在Maya DG中使用材质或者纹理等节点创建了一个循环链接,当他想使用他们的渲染器去渲染这个着色节点的时候,这时会使得整个Maya都崩溃。引起Maya崩溃的原因是该渲染器没有去检查是否有循环链接,最终导致了内存耗尽。这就引发了一个问题,如何去检测DG中是否有循环链接,其实,Maya 提供了一个命令可以用于做该检测:cycleCheck:这里,我不详细讲该命令的具体使用和一些参数,推荐大家可以参考帮助文档,或者咱们可以在此一起讨论:) 阅读全文

posted @ 2013-10-10 07:38 如梦令 阅读(300) 评论(0) 推荐(0) 编辑

如何让一个被连接的目标接口的值仍然可以被用户改动?
摘要:我们知道,在Maya中有一些 Constraint节点,当一个目标节点的接口被某一个 Constraint节点连接控制后,用户仍然可以修改这个目标节点的接口的值。但是如果不是Constraint节点,而是一个普通的DG节点的话,尝试对连接节点的目标接口去做更改的话是不起作用的。那如何能让一个普通的DG节点连接的目标接口也能被改变呢?就像被 Constraint节点连接的一样?答案是重载下面这个虚函数: virtual bool MPxNode::isPassiveOutput (const MPlug &plug) constPS: Constraint节点中有一个叫做 lockOut 阅读全文

posted @ 2013-09-11 12:51 如梦令 阅读(204) 评论(0) 推荐(0) 编辑

如何获取在异世界(underworld)中的子节点
摘要:Maya中有个一个大家知道的不多且容易误解的概念就是异世界,英文是 underworld。它其实就是另一种类型的几何空间,可以在这种空间中定位自己的对象。大家可以参考帮助文档http://docs.autodesk.com/MAYAUL/2013/ENU/Maya-API-Documentation/index.html?url=files/DAG_Hierarchy_Transforms_with_multiple_shapes.htm ,topicNumber=d30e9861来获得更多关于异世界的信息。Maya中,Nurbs 曲面是一个常用的异空间,可以由两个坐标(u,v)来定义,这两个 阅读全文

posted @ 2013-07-12 13:11 如梦令 阅读(379) 评论(0) 推荐(0) 编辑

小技巧, 如何保持DG节点之间的连接不被破坏或者不被创建
摘要:如果你有节点A 和 B,并且他们这样相连 A.output -> B.input ,如果你希望保持这个连接不被删除,那么你可以考虑重载 MPxNode 中的两个虚函数legalConnection和legalDisconnection来实现这个目的。重载这两个虚函数可以用来确定指定的接口之间的 连接/删除连接 是否被允许,当这个节点上的连接被建立或者删除的时候,Maya都会先调用这个虚函数来确定这个操作是否合法。让我们来看一个例子:如果我希望NodeForTest.output 不能连接到任何节点 radius 属性上,那我就可以通过设置 isLegal 标志来阻止这个连接,MStatu 阅读全文

posted @ 2013-07-05 11:02 如梦令 阅读(337) 评论(0) 推荐(0) 编辑

关于 Maya Python API 中的简单类型的一些问题
摘要:我们知道,Maya 的Python API主要是对于C++的API上的用SWIG来做的一层封装,那么,其API的本质和参数基本上都是和C++的一致的。很多Maya的API方法中都还有一个指针或者应用参数,返回值也是如此,那么对应到Python API中,我们该怎么来处理呢?我们知道在Python中,class 类型是通过应用来传值的,但是一些简单类型,比如 int, float 等是直接传值的。这样就使得一些C++方法中参数如果含有简单类型的指针或者引用就比较复杂。我也碰到过一些案例关于这个的误操作,让我们来看一下下面的一个示例:问题:有一个用户想调用如下方法对应的的Python方法,MSta 阅读全文

posted @ 2013-07-04 17:12 如梦令 阅读(1190) 评论(0) 推荐(0) 编辑

关于Maya Viewport 2.0
摘要:我们知道 Maya Viewport 2.0 的性能相比原来的Viewport 有了很大的提升,并且 Maya 2014 的 Viewport 2.0 开始正式支持微软的 Direct X 11.这个对于很多游戏厂商来说是个很好的消息,因为很多游戏引擎都是基于 Direct X,这样他们可以在Maya中得到和实际运行时相一致的效果,不用担心Maya中OpenGL的显示结果,到最后游戏中Direct X显示相差很大。另外他们的很多HLSL着色器也可以直接集成到Maya中来。并且如果用户用HLSL写的着色器也可以直接集成到3ds Max中,并且效果一样。不过大家要注意的是,Maya Viewpor 阅读全文

posted @ 2013-06-30 22:40 如梦令 阅读(1353) 评论(0) 推荐(0) 编辑

关于首届欧特克开发者训练营的一些感想
摘要:为时三天的欧特克开发者训练营顺利结束了,也暂时可以稍微轻松一些。关于这次Dev Camp,对于我个人而言,也是一个非常好的机会,一个是能了解到部门其他同事都在做什么,AutoCAD 组已经在移动,云和消费级产品上面下了不少功夫,并且也已经有了不少积累,很多应用对于我们传媒娱乐部门也有不少借鉴,也开阔了视野。另外一方面也直接面对面的接触了传媒娱乐行业的客户,更好的深入行业本身,了解他们的现状和问题,真的对我帮助也非常大。对于我们传媒娱乐行业而言,我们也非常希望能把国际上一些先进的开发技术和成功经验能带给大家,本次训练营中来了有差不多25个成员,并且有不少都已经开始了基于Maya,3ds Max 阅读全文

posted @ 2013-06-30 22:09 如梦令 阅读(269) 评论(0) 推荐(0) 编辑

Maya中操作普通DG节点和Dag节点的区别
摘要:在Maya中,Dependency Graph是Maya的核心,由许多DG节点互联组成。其中包含了两种我们常见的节点,一种是普通的DG节点,一种是DAG(directed acyclic graph)节点。DAG节点在本质上也是一种DG节点。当我们需要操作DG节点的时候,我们知道,用户是不能直接访问Maya核心的,Maya在其核心之上提供了一系列严格定义的接口,使用户能够通过这些API来操作Maya内部数据。当我们需要对DG节点进行操作时,我们可以使用MFnDependencyNode函数集来进行操作,MFnDependencyNode需要设定一个DG节点MObject对象作为操作数据,具体如 阅读全文

posted @ 2013-02-26 21:57 如梦令 阅读(2707) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示