学生处对象的软件,C和JAVA哪一个好
来源:网络 编辑:第一茶叶 时间:2023-09-14 13:14:40
1,C和JAVA哪一个好
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,
而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。
我在这里不能完全列出不同之处,仅列出比较显著的区别:
1.指针
JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。
2.多重继承
c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
3.数据类型及类
Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。
4.自动内存管理
Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:
Read r=new Read();
r.work();
语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
5.操作符重载
Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.预处理功能
Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7. Java不支持缺省函数参数,而c十十支持
在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。
Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。
8 字符串
c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
9“goto语句
“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
l0.类型转换
在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
11.异常
JAVA中的异常机制用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
}
其中exceptionType表示异常类型。而C++则没有如此方便的机制。java是现在的主流语言之一!
所以普遍被人所接受!因为他的前景很大!
但是熟练掌握C++的,会更被人所欣赏!际消息 美国纽约大学的两位计算机科学系退休教授发表一篇公开文章,标题是“计算机科学教育:明日的软件工程师在何处?”。在文中,他们强烈地批评了纽约大学和其他大学,没有向学生传授纯粹的语言如C、C++、Lisp和ADA。
“学生从当前教育实践课程中获取的技能不足以应付今日软件行业的发展(尤其是安全和安全目的方面)。更不幸的是,与外部行业需要过于匹配了,我们训练了许多容易被取代的软件工程师。”
尤为注意的是,文中以“Java作为第一编程语言的诸多缺陷”为小标题对Java进行了批判:
由于Java在Web应用领域的流行,以及初学者容易生成图形化编程,Java成为入门课程中使用最普遍的语言。从此后学生发现很难在一个没有图像界面的语言上编写程序,不清楚源程序和硬件如何执行之间的关系,更具有危险性的是他们一点也不了解指示器的语义,这使得使用C语言编程也成为挑战。”
编程的真正的美妙之处在于,将复杂的过程缩减成非常小的一个简单操作。Java并没有体现这种美妙,它鼓励采用“问题解决(problem-solving)”的方式,使程序员就像五金店的水管工人:到处翻腾抽屉、阁子最后找出需要的零件。最终的结果使得学生知道如何将一些简单的程序组到一起,而对编程却一无所知。而且过早地使用Java库和框架有一个更大的缺陷:它使得学生很难对编写的东西形成运行时间成本(run-time cost)的概念,因为他们很难知道究竟哪种方法的调用是有效的。
我们为此亦找到了一些证据。Bjarne Stroustrup(被誉为C++之父)在德州农工大学(Texas A&M University )的报告中,指出了工业对于这种方式越来越多的不满,而且Bjarne这样说,“从工业那里我看到了许多许多对此(Java作为第一编程语言来使用)的抱怨,尤其是AT&T, IBM, Intel, Bloomberg, NI, Microsoft, Lockheed-Martin等等。”
另外在文中,这两位教授们认为真正的程序员能够使用任何语言(C,Java,Lisp,Ada)。肯定是Java啊,现在大部分企业都是用java和C#,一般很少用C++
2,3g工程师需要什么条件
要学的东西可多了!UMTS蜂窝移动通信网络结构 CDMA2000-1X蜂窝移动通信网络组件功能 UMTS蜂窝移动通信网络组件功能 码分多址(CDMA)的原理 UMTS网络相关无线技术 CDMA2000-1X蜂窝移动通信网络结构 ATM技术 CDMA2000-1X网络的信道 UMTS协议体系 CDMA2000-1X网络系统状态 码分多址(CDMA)的原理 IP路由技术 WCDMA在UMTS网络中的实现 IP隧道技术 UMTS网络的空中接口技术 AAA服务技术 UMTS网络的移动性管理 CDMA2000-1X的分组交换解决方案1-简单IP技术 UMTS网络的切换技术 MOTOROLA的CDMA2000-1X蜂窝移动通信系统实例 UMTS网络的功率控制技术 CDMA2000-1X的分组交换解决方案3-移动IP技术 MOTOROLA的UMTS蜂窝移动通信系统实例 码分多址(CDMA)在CDMA2000-1X网络中的实现 CDMA2000-1X、UMTS等移动通信技术简介 CDMA2000-1X的分组交换解决方案2-VPDN技术 从GSM/GPRS到UMTS的演进路线参考资料: http://classad.xaonline.com/viewinfo.asp?id=6225&category=%BD%CC%D3%FD/%B3%F6%B9%FA/%C5%E0%D1%B53G工程师详解 随着移动通信技术的迅猛发展,3G离我们可以说是越来越近了。作为一项新兴事物,它的发展离不开人才的大力推动。3G人才对于以多元化服务为特色的3G产业来说,同样有着特殊的意义。那么IT尤其是通信行业从业人员应如何提升自己,加入到3G的“洪流”中来呢? 什么是3G工程师 3G是第三代通信网络,目前国内不支持只有GSM和CDMA两种网络,GSM设备采用的是频分多址,而CDMA使用码分扩频技术,先进功率和话音激活至少可提供大于3倍GSM网络容量,业界将CDMA技术作为3G的主流技术,国际电联确定三个无线接口标准,分别是CDMA2000,WCDMA,TD-SCDMA,也就是说国内CDMA可以平滑过渡到3G网络,3G主要特征是可提供移动宽带多媒体业务,其中高速移动环境下支持144kbit/s 速率,步行和慢速移动环境下支持384kbit/s速率,室内环境支持2Mbit/s速率的数据传输。 3G工程师就是从事3G通讯技术行业的工程师 3G最缺什么人才 目前,我国的3G核心人才仅有不足万人,而且基本上都被几大运营商和设备厂商所掌握。广大手持端设备制造商所急需的嵌入式开发人才、软件开发商所紧缺的移动商务解决方案人才以及3G时代海量的内容开发商和提供商(SP/CP)所需的增值业务开发人才,基本上处于无处可寻的状况。随着各大电信运营商3G网络的大规模铺设并投入运营,以及3G手机的普及,未来人才的需求量还将成倍增长,3G软件人才将成为人才市场上的“抢手货”。根据智联招聘对市场的调查,2.5G环境下比较成熟的工程师年薪在10万元左右,未来过渡到3G以后,其潜力将进一步被发掘。北京智联易才人力资源顾问有限公司副总经理韩庆峰预测,3G人才的年薪至少在15至20万元左右,相对IT其他行业来说,这一数值是非常具有诱惑力的。由于市场中3G人才的匮乏,第一批3G人才将具备非常强的市场竞争力。 3G工程师需要哪些素质 由于3G技术对手机软硬件高级开发工程师有着非常高的要求,就一般企业而言,3G工程师必须拥有通信、电子类专业本科以上学历,熟悉移动通信原理及微波通信技术,能熟练使用C或C++语言编程,具有丰富的数字电路设计或硬件开发工作经验,或者具备CDMA、GSM或TD-SCDMA、WCDMA等手机软/硬件开发经验等。从3G对人才素质的要求来看,目前高校培养的应届毕业生似乎难以符合市场的要求,事实上,3G行业相关的服务企业也更加倾向于从通信行业从业人员中进行招聘。但这并不意味着大学生就没有入行3G的机会,通过学历教育打下的深厚基础,再辅以职业培训,大学生们还是能够在竞争激励的3G职场找到属于自己的一席之地。 成为3G工程师要学什么专业? 3G工程师就是指从事3G通讯技术行业的工程师, 3G工程师需持证上岗 职位描述:3G工程师包括3G无线软件开发工程师、3G无线研发质量工程师和3G无线网络规划、优化工程师等。 前景预测:业内专家分析指出.通信行业3G标准投入运营以后.每年将为我国创造80万至100万的新增就业机会。既懂互联网又掌握电信技术的人员将成为企业新宠。 教育部信息中心和摩托罗拉公司联合开设“无线通信网络工程师”培训项目(MCNE-Campus),培训内容包括第2代GSM、CDMA网络课程、第3代UMTS、CDMA 1X网络课程,以及TCP/IP基础知识、网络管理、网络优化等高级网络课程,为有意进入无线通信领域工作的在校大学生提供专业技能培训。国家信息产业部则于今年9月,在全国通信行业启动了3G职业资格认证及培训工作。 培训建议 目前市面上从事3G人才培训的机构可以说是凤毛麟角,比较著名的是摩托罗拉工程学院,其培训体系主要是围绕着MCNE(摩托罗拉认证网络工程师)系列课程而展开。 课程名称:摩托罗拉MCNE系列课程 培养目标:3G网络工程师和增值业务工程师 针对人群:在校大学生和想要转行的IT从业人员 课程介绍:MCNE系列课程包括四个方面,MCNE-AE(助理工程师):面向通信业的新进入者、职业转型者、需要迅速补充和掌握最新通信技术体系知识的专业技术人员和团体;MCNE-AD(应用开发工程师):面向在现有及未来3G移动通信网络上进行多种增值业务策划、设计和开发能力的专业人才;MCNE-SE(系统工程师):培养基于无线接入网、核心网技术、能透视网络中各个网元的协同工作和运行的工程师和工程项目管理人员;MCNE-PE(专业工程师):培养熟练掌握移动通信网络技术、产品和解决方案的专家级工程师。 MCNE的四门课程基本上覆盖了移动通信技术的方方面面。 3G有着非常美好的应用前景,对于广大有志于投身3G行业的年轻人来说,应当抓住机遇、提升自己,以发展来迎接挑战。在一般人眼中,3G人员一定是精通专业知识的资深工程师,因此专业培训的门槛也高高在上。事实并非如此,凡从事与3G相关的系统设备、增值服务、运营、研发、销售和工程技术等领域工作的人员都被统称为3G人才,其中,除搞研发、设计的专业技术人员及管理人员外,其他领域的入行门槛并不高。 专家具体分析认为,3G的第一阶段以建立系统为主,对有经验的工程师和营销人员需求很大。技术人员的专业门槛较高,3G工程师必须拥有通信、电子类专业本科以上学历,能熟练使用C或C++语言编程方法,熟悉移动通信原理及微波通信技术,具有4年以上数字电路设计或硬件开发工作经验,并有CDMA、 GSM或TD-SCDMA、WCDMA等手机软/硬件开发经验。因此,对于从事3G研发技术的专业人员来说,参加3G培训是补课,在原有无线通信技术(2G或2.5G)的基础上,补充3G知识。 与技术人员相比,营销人员入行门槛较低,一般要求是了解3G产品,具有较强的沟通和营销能力。此类人员参加3G培训主要是了解产品知识,掌握市场动态。目前市场上的3G人才主要分三类:设备开发人员、运营人才和增值服务人才。从目前行业现状来看,3G人才主要集中在研发领域,企业对这方面人才的储备也较为充分,但3G的市场营销人员非常短缺。由于3G行业的兴衰最终由消费者决定,所以3G最终要推向市场,营销人员对产业的推动显得非常重要。 另外,3G培训的门槛虽不像外界传得那样高高在上,但并不意味着没有门槛。参加3G培训最好具有电子通讯专业的知识背景,3-5年的行业从业经验,最好有一年左右的3G开发经验。没有任何专业背景的“门外汉”从零学起会有较大难度。 ◆摩托罗拉MCNE-UMTS系统工程师培训认证:适合对象:业内技术人员、社会人士、高校学生。 ◆摩托罗拉职业等级认证-MPC:适合对象:在通信领域从事技术工作1年以上,并具有一定英语水平的专业人员。 ◆国家3G移动通信职业资格认证:适合对象:移动通信营运与制造企业、电信设计研究院的技术管理人员,维护、设计、开发人员,工程技术人员。 一般企业招聘3G工程师要求:必须拥有通信、电子类专业本科以上学历;熟练使用C或C++语言编程,熟悉移动及微波通信技术,有4年以上数字电路设计或硬件开发经验,有CDMA、GSM或TD-SCDMA、WCDMA等手机软/硬件开发经验等。 报考条件 凡中华人民共和国公民,遵纪守法并具备下列条件之一者,可报名参加注册咨询工程师(投资)执业资格考试: (一)工程技术类或工程经济类专业大学专科毕业后,从事工程咨询相关业务满8年。 (二)工程技术类或工程经济类专业大学本科毕业后,从事工程咨询相关业务满6年。 (三)获工程技术类或工程经济类专业第二学士学位或研究生班毕业后,从事工程咨询相关业务满4年。 (四)获工程技术类或工程经济类专业硕士学位后,从事工程咨询相关业务满3年。 (五)获工程技术类或工程经济类专业博士学位后,从事工程咨询相关业务满2年。 (六)非工程技术类或工程经济类专业上述学历或学位人员,其从事工程咨询相关业务年限相应增加2年。 (七)人事部、国家发展计划委员会规定的其它条件。 凡符合下列条件之一者,可免试《工程咨询概论》、《宏观经济政策与发展规划》、《工程项目组织与管理》3个科目: (一) 符合考试认定范围, 但在考试认定中未获得通过的人员。 (二) 获国家计委或中国工程咨询协会优秀工程咨询成果奖项目及全国优秀工程勘察设计奖项目的主要完成人。 (三) 在2002年底前按国家规定取得高级专业技术职务任职资格,并从事工程咨询相关业务满8年。 (四) 通过国家执业资格考试,获得工程技术类执业资格证书,并从事工程咨询相关业务满8年。
3,autodesk的maya2011和2010有什么区别
软件不仅仅只是改变了用户界面,在很多功能上也带给用户不小的惊喜。相对2009版本时增加的内核系统,Maya2011功能上出现了质的飞跃。下面就来简单介绍下软件新加入的先进功能。当然,这种革新也会伴随着新问题的产生(以及部分用户的不满)。
1.QT InterfaceQuantumToolkit(量子工具包)设计的用户界面,具备了可自由浮动的编辑窗口,极大的方便了工作流程中的繁琐切换。暗灰色的默认界面让用户能更集中于工作区中的元素,相对于以前的灰白色,视觉上会柔和许多。拖拽出的属性编辑窗口,可以和通道栏窗口组合成新的标签面板。当然,这不等于说就能凌乱的摆放各种窗口,比如左边的ToolBox(工具盒)就不能拖放到上下的区域中,而菜单中拖拽下的工具窗口也不能吸附到界面的区域。同时,文件浏览器、工具架编辑器、拾色器等的元素包含也变得丰富。
新加入的Namespace Editor(名称间隔编辑器)方便了大型场景的名称管理,而这之前必须通过MEL语句来修改庞大的名称间隔(名称间隔,通常是在导入外部场景文件时Maya自动添加的名称前缀)。
不过Maya2011新的界面布局也有个缺点,那就是视图切换时软件的响应速度变得缓慢,对硬件的要求也提高了不少,这对熟练于热盒快速切换操作的用户将有很大的影响。PS:Maya2011对中文输入法的支持很差,一旦在软件界面中切换为某些第三方中文输入法,Maya的Ctrl+空格的最大化界面操作将可能失效,需要重启软件才行(怀疑还会有不少BUG)-之前版本因为中文输入法的缘故,Ctrl+空格的回复默认界面的快捷键。实际操作为Ctrl+Shift+空格。2.ModelingMaya第一次加入了贝塞尔曲线的创建,因此Surfaces模块下的EditCurves菜单也多了一个BezierCurves的功能选项。通过正切手柄,我们可以对贝塞尔曲线的切角进行调节,这是一项很重要的新功能。不过需要注意的是,贝塞尔曲线不完全等同于NURBS曲线,某些情况下需要将它转为常规的NURBS曲线才能正常使用,如Effects菜单下的CreateCurveFlow要求对象必须是NURBS曲线。贝塞尔转NURBS的命令在:Modify->Convert->BezierCurve to NURBS。
EditMesh->ConnectComponents命令可以将临近的点和线进行连接,在多边形物体上直接添加线条(相当于SplitPolygonTool的另一种版本)。
EditMesh->SpinEdgeForward(Backward)命令可改变线条的朝向,常用于调整模型的布线走向。快捷键:Ctrl+Alt+←或者→(会生成新节点)。
Mesh下的SculptGeometryTool增加了一个Pinch的笔刷模式,作用是将笔刷区域内的点向笔刷中心收缩。
选择,旋转,缩放工具设置中的SoftSelect(软选),增加了一个Object的衰减模式,可以直接作用于大量不同的物体。与Global模式不同,Object模式不会改变物体的形态,仅改变它们的空间位置和大小。这个功能对于摆放场景中的大量物体十分有用。
EditMesh->AssignInvisibleFaces是个有趣的功能。它的原理是,首先给模型上的面标记为不可见,之后对该面进行任何操作,和该面有关的最终效果都会被真实渲染的出来。换句话说,就是将实际存在的面设为渲染不可见。在设置窗口中,Assign表示将选定的面标记为不可见,Unassign则取消不可见的标记。当设置了不可见标记后,我们需要选择模型并执行:Display->Polygons->InvisibleFaces才能在场景中显示出面消失的效果。
ScaleTool(缩放工具)完善了一个实用的功能:增加缩放手柄的调整。现在,缩放工具可以像移动工具那样对操作手柄进行方向调节了。在对特殊朝向的面或物体进行缩放操作时,这项功能显得十分重要(之前版本的Maya只能通过TransformComponent增加一个Normal法线朝向的缩放手柄,相当于3dsMax中的Outline工具)。
UV编辑器中,在View->Grid的选项窗口中多了一个Tiles的选项,可以将UV网格按1*1的划分加粗显示分界线。这个功能主要用于大量UV排布时的方便定位。增加了一个Select->ConvertSelection->ToUVEdgeLoop的功能,它的作用是将所选的点,UV或者线所在的UV环形线选择。这个UV环形线与通常多边形上的环形线不同,它会在出现UV边界的地方断开。Mesh->TransferAttributes中增加了一个Topology的选项。相对于Component,Topology是根据模型的拓扑结构来转换不同物体间的属性,即使点、面和线的IDs不同也可以进行。不过和Component一样,都需要物体之间有一样数量的点、线、面。常用于物体间UV的传递。
3.Animation动画方面,Maya2011增加了一个CameraSequencer(摄像机队列管理器),可以实时管理摄像机快照。简单的说,就是根据台本的镜头时间安排相机队列。开始支持多音频轨道的导入,并增加了场景时间码的显示功能。动画曲线编辑器的显示和操作也得到了改善,尤其增加了欧拉旋转产生的万向节问题的解决方案:四元插值。不过,最让广大用户兴奋的是,在骨骼绑定方面,Maya2011增加了一个InteractiveSkinBind(交互式蒙皮)的绑定方式,可以通过一个包裹物体来实时改变绑定的权重分配;同时还增加了一个用于解决关节处挤压变形的Dual Quaternion(双重四元法)蒙皮方式。这些都大大减少了权重分配的工作量。
Maya2011在Skeleton菜单下新增了一个HumanIK的骨骼系统,能快速的搭建人体骨骼并绑定控制器。HumanIK可以结合FBIK的两足骨骼来完成,也可以是用户自己设置的骨架。4.Dynamics作为影视动画用的三维软件,Maya一直在加强特效上的功能。在2009增加了内核粒子之后,Maya2011再次将内核系统进行了一些强化。n布料系统主要是在碰撞效果上的改善,而n粒子则增加了很多功能。如Rotation属性,可用于控制粒子碰撞时产生的旋转;新加入的表面张力和粘性渐变,配合已改善的n粒子输出网格,在模拟流态效果上又提升不少;粒子UVW的功能可以直接对粒子进行纹理贴图。
这也许是Maya2011带给我们的最大惊喜:流体系统的功能扩展。
这次流体的改进有两个最强大的功能:AutoResize和Emit fluids from nParticles(Particles)【AutoResize】自适应以往的流体只能被限定在封闭的三维容器中,无法进行大范围的运动;现在流体依然是无法逃出这个容器,但是容器却会自动跟随流体的形态而运动了。我们不得不佩服Autodesk开发人员的聪明才智:既然流体无法逃逸出三维容器,那么干脆让三维容器离不开流体,于是三维容器服从了流体的形态。在流体的形节点中,当我们勾选流体形节点下的AutoResize,将启用容器自适应功能。其中启用ResizeToEmitter选项,还可以让流体容器根据发射器的位置变化而偏移。这个新特性在制作运动的火焰或者爆炸效果时具有重大意义――以往只能通过粒子模拟来实现。
【Emit fluids from nParticles(Particles)】从粒子上发射流体从粒子上发射流体,将使很多组合型特效变得容易实现,如爆炸物体上的粉尘,冒烟的燃烧物体,雨滴的涟漪效果,粒子水花和海洋特效的结合等。过去需要用户输入一大堆MEL语句来模拟各种效果传递的方式,到了Maya2011,简单的几个按钮就实现了。
除了以上两个最强大功能,流体还增加了很多特性:在DynamicSimulation区块下,启用新增加的Forward Advection(正向水平对流)选项,可对密度、温度、燃烧使用一种质量正向传播的技术推动流体在方格中前进。但是这个功能会和HighDetailSolve(高细节解算)有些冲突,同时使用会产生一些异常的效果。增加的Substeps(子步数)调节选项,可改变每帧流体解算的次数。在解算快速运动或者高密度的流体效果时,提高Substeps的数值可改善场景效果。
Self Attraction and Repulsion(自身吸引和排斥),让流体在所有三维方格中产生高密度扩散、低密度聚拢的特殊效果,能模拟更真实的烟雾缭绕效果。ContentsDetails区块下,Noise(噪波)的功能增加到了密度、温度以及速度当中,扩展了这些属性的作用;Tension(张力)则在密度和温度中得到实现,作用是在液态模拟中使流体凝聚成球状;GradientForce(渐变压力)在密度中的作用是模拟SelfAttraction and Repulsion(自身吸引和排斥)效果,虽然它不能影响相邻像素的流体,但是在解算速度上要快很多。OutputMesh区块增加了一些选项,五个Per Vertex选项对应颜色,不透明度,自发光,速度,UV包裹,分别由相应的流体属性来控制(除了UVW)。也就是说,流体的材质效果直接影响着转换为多边形网格后的材质效果。在流体形节点的Lighting区块下,增加了一些用于照亮流体的灯光属性。同时,流体发射器也改进了很多:增加了一个类似粒子发射的控制区块,能同时对所有流体方格进行发射率调整;MotionStreak(运动拖尾)效果也应用于流体当中,模拟快速运动的残影效果。
除了这些,还有一些体贴的功能改进,这里就不详细说明了,用户在操作过程中会逐步认识到。PaintEffect(只针对植物类笔刷)包含了新的Leaf Face Sun(向阳枝叶)和Flower Face Sun(向阳花朵)属性,可通过设置一个SunDirection(阳光方向)属性来改变枝叶和花朵的朝向。具体位置在brush(不是stroke)节点下的Tubes->Growth区块下,Leaves和Flowers栏就包含有FaceSun的属性。5.Rendering点击视图Renderer菜单,可以看到增加了一个“Viewport2.0”的选项。这个功能常用于观看复杂场景的贴图和灯光效果,它能优化场景的图形显示。Hypershade(超材质)编辑器也改变不少。增加的文字列表栏,用于各材质纹理节点的分类,还可以增加用户的“Favorites”(常用的材质);而通常的纹理贴图方式,则是在纹理节点图标上右键选择。
PS:Hypershade的开启速度慢了很多,关闭也是要等一会。Maya2011的摄像机工具中,增加了一个2D Pan/Zoom Tool(二维摇/拉镜头工具),用于移动整个场景界面(包括物体和摄像机)来观看物体细节:Ctrl+左键框选为缩放镜头,Shift+左键切换为摇移镜头。这不会影响渲染结果。
增加了新的StereoscopicCamera(立体摄像机)绑定工具,这是用于制作三维影像的(也就是常说的三维立体电影-戴3D眼镜的那种)。在渲染设置中新增一个ColorProfile(色彩轮廓)的功能,用于对渲染后的图像进行校色,以适应播放平台的色域。不过一般我们都是通过后期来完成的。 对于MentalRay渲染器,Maya除了增加一些新的MR材质并改进渲染通道,还增加了一个32位的浮点图形渲染格式(也就是HDR图片)。当在界面设置中启用了32位浮点渲染,我们可以在RenderView渲染视图中通过ColorManager(色彩管理)功能直接设置HDR效果的强弱;在这之前,修改HDR属性后需要更新渲染才能看到最终效果。
同时,新的FG缓存功能增加到了渲染设置中(在IndirectLighting栏中),有利于解决启用了FG效果的场景的渲染效率问题。如果在MR中使用了DircectionalLight,可以开启平行光特有的Shadow Map Camera(阴影贴图相机),通过摄像机来控制平行光聚焦的区域。
6.PyMEL因为增加了不少功能,因此Maya的命令库也增加不少内容;同时,Maya脚本编辑器支持了语法的高亮显示,使命令输入更为直观。
Maya2011允许用户通过python创建新的软件界面。*MEL:Maya嵌入式语言,属于面向过程的脚本语言;Python:面向对象的编程语言,高级但易学。PyMEL是Maya2011的一大革新。PyMEL文档中有这么一句话:Rather than reinvent the wheel, Autodesk opted to provide “wrappers” around their pre-existing toolsets: the C++ API and MEL.译文:相对于重新改造系统,Autodesk选择了在原有功能的基础上提供“封套”:C++API和MEL。
尽管之前传言的取消MEL并不实际,不过从PyMEL的诞生我们可以看出,Autodesk正逐步将Maya的MEL以python封套的形式来改变。使用Python的语法,调用MEL的函数,我们可以这么理解这个PyMEL。尽管Maya8.5的时候已经开始支持python语法,但是通过载入maya.cmds进行的模块转换却显得极不方便,因而pythonForMaya一直没有明显的优势。不过,Maya2011在此基础上,整合了大量命令到新的类库中,利用新的Maya脚本-PyMEL,充分发挥了pythonForMaya的优势:灵活的面向对象的设计。Autodesk将maya.cmds和PyMEL的区别比作是:翻译机器和翻译专家。前者按设定的规则执行信息转换(自动封套),而后者则会根据环境重组语句(重组封套)。
阅读全文