渲染农场小科普
简单来说,渲染(Render)就是把3D场景中的模型、灯光等元素通过复杂的数学计算转化为可视的2D图像。根据项目要求的不同,渲染的复杂程度会随着需要渲染要素的变化而增加。比如说,一个3D场景中包含有3D模型、贴图、灯光和其他众多不同的元素。完成如此复杂的渲染要求,我们需要采用高性能的计算机集群。渲染农场当我们需要渲染多个复杂图像时,比如动画电影中用到的图像,单台计算机是难以完成的。此时,我们就需要用到渲染农场,正如上文提到的,渲染农场是由相互联网的高性能计算机集群组成,用于渲染复杂的CG图像。渲染农场由主机和众多节点机组成,主机通过队列管理器(Queue Manager)或者渲染管理软件负责向节点机分配渲染任务。该复合系统采用并行计算技术,所以每台节点机都可以同时渲染自己的任务。根据渲染任务的复杂程度,渲染任务可以根据全图、层或者在建模型的序列进行渲染任务的分配。队列管理器可以根据渲染的情况检查和平衡渲染任务的数量,并可以作出相应调整。和超级计算机的区别渲染农场的可拓展是一个循序渐进的过程,主要取决于渲染任务的复杂性程度。一般情况下,制作方并不会购买数以千计的计算机进行VFX(视觉特效)的渲染。随着业务的发展,渲染农场会逐步增加节点机以确保渲染任务的顺利进行。任何渲染农场都是从小开始发展,逐步壮大。而超级计算机则是一套高速运转和处理预定义任务的系统。随着时间的推移,超级计算机需要进行升级维护。事实上,它从一开始就和渲染农场存在差异:超级计算机从处理多任务“开始”,而渲染农场从小规模开始,逐步发展壮大。再者,渲染农场的性价比也远高于超级计算机。渲染农场种类居家型渲染农场在这种情况下,用户在家自己搭建整个渲染农场。搭建居家农场比较复杂,管理起来也不容易,除非用户自身精通各种复杂的软件和编程。 协助性渲染农场协助性渲染农场由多个用户组成,每个用户可以将自己空闲的节点机让给其他用户使用,或者在渲染任务繁忙时拥有他人空闲的节点机。但是,协助性渲染农场的操作方式要求用户了解一些渲染技术性知识,以确保渲染农场协助性的流畅。因为其节点机的来源不统一,用户众多,管理起来相当混乱。 云渲染农场云渲染农场是目前市面上最可靠、性价比最高和效率最高的渲染方式之一。这主要是将渲染任务外包给专业经验丰富的数据中心或者组织。外包公司以项目为基础根据客户的要求对项目进行渲染,客户不需担心服务器空间或者相关技术问题。云渲染农场可以为客户节省大量的人力物力,可以让客户将更多的精力专注于项目的创新和质量,效果不仅显著,而且高效。 云渲染农场工作流程我们可以采用多种不同的方式将渲染项目提交到在线渲染农场:网页提交、插件提交、FTP提交。网页提交网页提交是将渲染文件上传到在线渲染农场最简单的方式,犹如将图片或者文件上传到社交网络或者邮件般简单。但是,我们不能将存档文件直接上传到在线渲染农场的云端,因此,我们建议在上传文件之间,对文件进行一些预处理确保文件都有所有的贴图和其他相关文件。 插件提交相对比之下,插件提交还是比较简单。一般情况下,在线渲染农场都会针对3D软件文件的上传指定相关的插件,以方便用户可以在上面直接提交相关任务。多数在线渲染农场都会在客户完成文件上传后立刻进行渲染。 文件传输协议(FTP)一般而言,在线或者云端服务器都会向用户提供一个由渲染农场规定的FTP(文件传输协议)服务器地址和端口,规定客户上传和渲染文件的类型。一般情况下,系统会提供项目渲染文件放置的指导说明。 接收渲染完成的文件接收渲染完成文件的流程与上传文件的流程相反。渲染完成的文件最后是通过网页、插件或者FTP进行下载。根据使用服务器的情况,在线渲染农场提供不同文件下载方式的细节和说明。 在线渲染农场优势简单易用在线渲染农场不仅实用,并且操作流程简单易懂,客户只需从本地计算机进入云渲染农场进行任务渲染即可。软件管理和维护由在线渲染服务供应商负责,客户可以抽出更多的时间专注于自己的项目。 性价比高相比于客户自己渲染所投入的时间和财务成本,专业在线渲染农场可以帮助客户节省人力财力,以将公司的人力财力实现最优化。 看得见的视觉特效在线渲染农场基于复杂的编程软件,可以让程序员渲染出实实在在的视觉特效。将渲染业务进行外包可以让客户获得更逼真更真实的视觉特效。在线渲染农场的专业工程师和程序员采用最先进的渲染技术以确保客户渲染视觉效果的真实性。高效渲染在项目临近结束时,根据渲染文件的格式和组织要求对项目进行更改是十分困难的。但是,外包渲染服务供应商可以根据客户的详细要求,对客户的项目渲染任务进行打包和分派处理,既高效,又实现客户需要对项目进行修改的目的。 保护客户数据安全不管项目的成品有多优秀,客户都必须确保自己项目数据的安全性。当决定使用在线渲染农场之前,客户须已经了解了渲染农场的数据保密协议和相关政策,一些协助性渲染农场倾向于分享客户的数据。如果渲染农场提供低廉的价格,甚至提供免费的渲染服务,客户需警惕他们是否会泄露客户渲染项目的数据。
2015-03-24 07:03:24渲染农场
小讲堂
《一万年以后》一段充满癫狂想象力的奇幻之旅
由易立导演、一立(中国)影业出品和瑞云科技奥斯卡原班渲染团队参与渲染的3D奇幻动作大片《》将与3月27日全国癫狂上映!野心,既是万恶之源,也是万善之本。它,可以让天下纷争,战火连天,天无宁日;它,也可以让天下分久必合,普世安宁,永久繁华!无野心,则无战端;有野心,则必死战!这是一场野心之战,这就是《一万年以后》!正义,既是灵魂之根基,也是一切罪恶之宿敌。它,可以让人誓死护国护民,抛头颅洒热血而宁死不屈;它,可以让一切罪恶闻声而寒颤,它,可以战无不胜,所向披靡。这是一场正义之战,这就是《一万年以后》!复仇,杀戮之导火线。它,可以让人魔性一发不可收拾,杀人成性,至死不休。这是一场复仇之战,这就是《一万年以后》!生存,万物之根本。它,可以让人残杀异己,陷害同胞,也可以让人苟且偷生;它,可以让人正义相伴,精诚团结,无畏于侵略与杀戮。这是一场生存恶战,这就是《一万年以后》!野心肆虐,而正义永存;复仇无期,而生存堪忧。3月27日,《一万年以后》全国震撼上映,带我们一起经历一段融合野心与正义,复仇与生存而又充满癫狂想象的奇幻之旅。 剧情简介:在《一万年以后》中,我们随处可见自然与人类、道德与文明的碰撞与博弈。环境恶化、资源枯竭、道德沦丧,人类文明在一场毁灭性的灾难后,湮灭殆尽,整个星球满目疮痍。历经万年,许多部落和新物种诞生并繁衍,西域孕育出一个全新的文明。新人类将上一纪元称为“上古”,曾毁灭上古文明的巨大能量被封存在一个叫“众神遗迹”的禁地。一万年以后,乌族的部落首领“乌神”从众神遗迹窃取了上古魔法,为了满足自己的野心,居然想让地球重回邪恶的上古时代;小女孩珠玛在西域各部落勇士支持和帮助下跨过千难万险,前往古格寻找抗击乌神的办法,与此同时,西域最后的堡垒-伽罗城正与乌神的乌罗大军展开终极之战。 史诗质感:《一万年以后》故事充满史诗质感。面对异族屠杀、面对民族浩劫 ,对待战争,每个部落、每个角色都有不同的态度和气节。在危难当中,角色之间的情感尤其珍贵。珠玛与战贡的感情已经完全超越了人与藏獒的感情,那份相依为命,守护一生的感情,令人动容、泪奔。 角色大反转:《一万年以后》的故事背景设定在一万年以后,我们当今的文明在影片里被称为上古文明,现代人在影片里被称为上古众神,汽车被称为众神的坐骑,石油被称为大地黑血......当影片里的时间人成为现实,观众的年代就成为了古代;当影片里的角色成为了现实,观众就成为了他们的神。影片通过一万年后的视角审视了当今的环境、能源、战争、核能、生化等危机。 3月27日,带上你羁傲不逊的野心和大义凛然的正义之心,我们不见不散,等你来见证这荣誉之战!深圳一立动画影业有限公司为答谢瑞云科技为影片提供了优质的渲染服务和支持,特邀瑞云全体小伙伴于3月25日晚8:00齐聚深圳嘉禾影城万象城店观看点映!消息一出,全体欢呼雀跃!春意浓,情谊深。感谢客户的盛情邀请,瑞云科技将一如既往为客户提供业内领先的渲染服务与支持,为国产动画行业奉献自己的力量!3月25日晚,我们一起duang…duang…走起,看《一万年以后》去!
2015-03-23 06:55:40一万年以后渲染网
案例
瑞云Rayvision渲染平台能使《超能陆战队》这样的大片节约一半渲染时间!
关于瑞云Rayvision渲染平台:咳咳咳,众所周知。云计算技术正在快速改变电影制作行业,让电影的生产流程加速。到2015年六月份,瑞云超级计算机将拥有超过10000台工作站的计算能力,如果迪士尼采用瑞云的云渲染服务,那么《超能陆战队》的渲染速度可能会提升一倍以上,从而让渲染时间节约一半,完全不需要迪士尼自己去组建庞大的计算机集群了,节省能源,降低污染,避免雾霾。你还在等什么,点击我们吧:
2015-03-06 08:43:22渲染
动态
MAX里不规则的三角面转换成规则四边面的小技巧
在max里的模型制作里面经常遇到不规则的三角面,不利于后面的细化和修改,下面给大家介绍一个小技巧,可以轻松的把一下三角面的模型转成易于修改的四边面模型。下面以一个很简单的等高线生成的山体模型给大家做个演示一般等高线直接生成的山体都是三角面的,不利于后面的细化调整和修改 那么我们来看下怎么把它转换成规则的利于修改的四边形,首先建立一个plane,等下转换出来的山体的细节和这个plane的段数成正比 然后我们把这个plane放到这个等高线山体的上方 来到物体创建面板,选择compound objects里面的conform 如下图显示,并且选择目标物体 可以看到plane和下面的山体进行了适配 接下来还有一步要做,勾上下面这项,把适配的原始物体隐藏掉 下面把plane上面的一排点和下面适配出来的山体对齐 新的规则四边面山体和之前的等高线山体完美匹配,但是布线完美了很多 以上就是本期瑞云学堂的讲授内容,下期瑞云小讲堂再见!
2015-03-04 08:41:26
小讲堂
瑞云Rayvision渲染助力CGtrader 3D科幻竞赛——有胆,你就来战!
科幻无处不在,幻想无界限!当我们折服于《阿凡达》和《星际迷航》等精美绝伦的科幻作品的同时,我们每个人都拥有一个自己的科幻世界。您眼中的科幻世界是什么样子的呢?您眼中的科幻世界存在生物吗?您眼中的科幻世界的生物是什么样子的呢?他们平常都做些什么?他们的生活又是怎样的呢?当您踏入其他星球时,您是否会为外星生物的魅力而感到震撼或者对他们燃起无尽的恐惧呢?您是否希望自己可以享受一次科幻之旅呢?……带着这些问题开始缔造您的科幻帝国,开启您的惊险旅程,撰写属于您自己的科幻神话。您的一点幻想火花,将点燃整个科幻世界。参加CGtrader 3D科技竞赛,与全世界3D科幻选手一决雌雄!有胆,你就来战!竞赛作品:宇宙飞船模型、科幻人物、科幻建筑、科幻交通工具、科幻武器以及所有种类的3D科幻模型竞赛时间:2015年2月20号至2015年4月17号;竞赛评审:所有参赛作品均由CGtrader内部人员进行评审。获奖作品须符合以下要求:最佳3D CG科幻竞赛模型奖(Best 3D CG Sci-Fi Challenge Model)- 高品质的3D CG科幻竞赛模型;- 3D CG科幻竞赛模型的设计须独特、创新和具备一定的实际意义;- 在CGTrader.com网站(www.cgtrader.com)所有参赛作品中表现优异;最佳D CG科幻竞赛组合奖(Best 3D CG Sci-Fi Challenge Portfolio)- 高品质的3D CG科幻竞赛组合;- 3D CG科幻竞赛组合的设计须独特、创新和具备一定的实际意义;- 在CGTrader.com网站(www.cgtrader.com)所有参赛作品中表现优异;获奖及奖品:本次竞赛将产生两类奖项,每一类奖项均设立1名冠军、1名亚军和1名季军。冠军将获得:- 由瑞云渲染提供的250美金渲染费;- 由Allegorithmic公司提供的Substance Indie Pack套餐;- 由Next Limit公司提供的Maxwell Render Suite Node Lock 许可证;- 获得3D Artist Online公司的杂志采访机会;- 由Clara.io公司提供的1年Professional level Clara.io使用账号;- 由Daz3D公司提供的100美金商店购物券;- 由CGtrader公司提供的150分信用额度;- 由CGtrader公司提供的专业推广服务;亚军将获得:- 由瑞云渲染提供的150美金渲染费;- 由Allegorithmic公司提供的Substance Painter或者Substance Designer许可证;- 由Next Limit公司提供的学习版许可证(Learning Edition license);- 由Clara.io公司提供的1年Professional level Clara.io使用账号;- 由Daz3D公司提供的50美金商店购物券;- 由CGtrader公司提供的100分信用额度;- 由CGtrader公司提供的专业推广服务;季军将获得:- 由瑞云渲染提供的100美金渲染费;- 由Allegorithmic公司提供的Substance Painter或者Substance Designer许可证;- 由Clara.io公司提供的1年Professional level Clara.io使用账号;- 由Daz3D公司提供的25美金商店购物券;- 由CGtrader公司提供的50分信用额度;- 由CGtrader公司提供的专业推广服务;竞赛条款:参赛者须知:竞赛时间从2015年2月20号开始,至2015年4月17号截止;当参赛者上传参赛作品时,须将作品标明“科幻竞赛(sci-fi-challenge)”的标签,并用于参赛;炫酷的渲染效果并不是必须项,但是我们在评审时会考虑作品的渲染效果;参赛者需知:- 上传到图库中的作品并不是用于参赛的有效作品;- 参加竞赛,参赛者同意参赛者的渲染场景可能会被赞助商用于市场营销(非商业)用途;- 竞赛对参赛者的作品数量并无限制。上传超过8款参赛作品,参赛者即有资格同时参加组合奖评选;- 竞赛具有完全开放性,开放对象包括但不限于公司团队、合法团体和全世界的人民。- 参加竞赛和上传竞赛作品均属免费;- 所有的参赛作品须为原作,不得具有可诱导性;- CGtrader的员工和所有相关人员以及赞助商不得参赛;- 如奖品须纳税,税款须由获奖者自己承担,CGtrader对获奖者的任何违法行为概不负责;- CGtrader是本次竞赛的独立审判方,将严格遵守竞赛规则,杜绝徇私舞弊;- 如有任何问题,请参考《常见问题解答》部分,或者将问题发邮件到info@cgtrader.com常见问题解答:1.问:我需要上传3D设计的整个文件还是仅上传图片?答:须上传3D设计的整个文件和图片,以更好地参赛。2.问:我不想在平台上出售我的模型,我应该怎么做呢?答:可以让您挣钱是件好事情,您可以将作品定价高点。3.问:我在出售作品后不想失去我对作品的著作权。答:您可以选择一般、可编辑和自定义许可。如果您不更改作品的许可,任何购买你作品的个人或者公司都无法将您的著作权用于商业用途,请不用担心。4.问:我如何参赛?答:为3D科幻竞赛设计好的作品,并上传到CGtrader平台。5.问:如果我给已上传到CGtrader平台中的作品添加参赛要求的标签,那我的这些作品可以参赛吗?答:这样的作品不能参赛!只有在竞赛期间上传的作品才有参赛资格。6.问:参赛是免费的吗?答:是的!我们欢迎大家在CGtrader平台上分享作品。7.问:我可以用参赛的作品参加其他竞赛吗?答:可以!我们并不限制您参赛作品的发布和出售。问:当评审完参赛作品后,作品的价格标签重要吗?答:不重要!价格是由客户决定。8.问:我将之前已上传的作品删除,并在竞赛期间再重新上传相同的作品进行参赛,这样做可以吗?答:不可以!我们会跟踪所有删除和上传的作品,这样投机取巧的方式行不通!CGtrader简介CGtrader是一个CG和3D打印的3D模型交易平台,拥有强大的设计师社区。在CGtrader平台上,3D艺术家和设计师可以分享和出售他们的作品,客户可以在数据庞大的高质量3D模型作品库中选择称心如意的作品,或者雇佣专门的设计师从事定制化的作品。CGTrader也是3D设计师展示作品的理想舞台,可以获得有价值的作品反馈,与志同道合的人一起进步,在一个设计友好的环境下成长。(更多信息,请访问CGtrader官网:http://www.cgtrader.com/challenges/3d-sci-fi-challenge)
2015-02-27 08:22:27CGTrader
CG竞赛
Python 的效率編程_simplified
Python --- 说是当今最热门的编程语言之一,相信大家都不会反对。在去年就有报导说在美国顶针的计算机大学当中,有80%的大学已选用Python 作为编程入门的教学语言。在三维动画业界当中,也越来越多软件支援使用Python 来作开发,使制作人员能容易开发出相关工具,从而提升工作效能。跟Perl 和Ruby 一样,Python 被归类为Scripting language,设计取向为语法简单,但秏用系统资源比较多,被形容为「犠牲执行效率去换取编程的开发时间」。在这里让我们来分享一些有关怎么去做Python 编程的例子,可以让我们争取更多的执行效率。例子一・ 交换两个变数的值: import timeit def doSwapWVar(): a = 1 b = 2 tmp = a a = b b = tmp def doSwapWOVar(): a = 1 b = 2 a,b = b,a if name == 'main': t1 = timeit.Timer('doSwapWVar()', 'from main import doSwapWVar') t1.timeit() ---------------------------------------- t2 = timeit.Timer('doSwapWOVar()', 'from main import doSwapWOVar') t2.timeit() The execute time print 'Swap with create variable : ', min(t1.repeat(3, 3000000)) print 'Swap without create variable : ', min(t2.repeat(3, 3000000)) print 'Swap with create variable : ', min(t1.repeat(3, 3000000)) print 'Swap without create variable : ', min(t2.repeat(3, 3000000)) print 'Swap with create variable : ', min(t1.repeat(3, 3000000)) print 'Swap without create variable : ', min(t2.repeat(3, 3000000)) Result : Swap with create variable : 0.577996969223 Swap without create variable : 0.568822145462 Swap with create variable : 0.588035106659 Swap without create variable : 0.556537151337 Swap with create variable : 0.599809169769 Swap without create variable : 0.563858985901a,b = b,a 是Python 的一个典殿堂范例,完美展现出Python 语法的简单和优雅,但好处不只这样。我们使用timeit 来统计这两个不同的交换方法执行所需的时间,doSwapWVar是产生一个参数来暂存其中一个变数的值,另一个doSwapWOVar是直接运用Tuple的打包/解包来实现互换。我们从结果看到,doSwapWOVar 执行的效率明显比doSwapWVar 快。例子二・使用if 还是使用 try/except:我们先来看下面的程式码 import timeit def doCheckUsingIf(x): d = {1:None, 2:None, 3:None, 4:None, 5:None, 6:None, 7:None, 8:None} for i in range(1, x): if i in d: d[i] = i def doCheckUsingTry(x): d = {1:None, 2:None, 3:None, 4:None, 5:None, 6:None, 7:None, 8:None} for i in range(1, x): try: d[i] = i except: pass if name == 'main': t1 = timeit.Timer('doCheckUsingIf(10)', 'from main import doCheckUsingIf') t1.timeit() t2 = timeit.Timer('doCheckUsingTry(10)', 'from main import doCheckUsingTry') t2.timeit() print 'Check using if :', t1.repeat(1) print 'Check using try :', t2.repeat(1) Result : Check using if : [2.5136549472808838] Check using try : [2.1905322074890137] 这次我们想要对一个dictionary 里面的key,指定一个跟key 一样的值。在Python 当中,如果指定值的Key 是不存在的话,系统就会返回错误。在doCheckUsingIf 当中,每次执行「d`[i]` = i」之前,都会用if 去先检查目标的key 是否存在于dictionary 里面。而doCheckUsingTry 当中,使用了try/except 去处理当「d`[i]` = i」错误发生的状况。从上面的结果看到的,使用Try/except 比使用if 所花的时间少。我们来修改一下刚刚的程式码 import timeit def doCheckUsingIf(x): d = {1:None, 2:None, 3:None } for i in range(1, x): if i in d: d[i] = i def doCheckUsingTry(x): d = {1:None, 2:None, 3:None } for i in range(1, x): try: d[i] = i except: pass if name == 'main': t1 = timeit.Timer('doCheckUsingIf(10)', 'from main import doCheckUsingIf') t1.timeit() t2 = timeit.Timer('doCheckUsingTry(10)', 'from main import doCheckUsingTry') t2.timeit() print 'Check using if :', t1.repeat(1) print 'Check using try :', t2.repeat(1) Result : Check using if : [1.8367161750793457] Check using try : [2.2109630107879639]我们只修改了d 在初始化时的内容,减少了一部份的key。有趣的是,这次的结果跟刚刚完全相反,运行doCheckUsingIf 比doCheckUsingTry 快!确实是当进入except 的次数比较多的状况下,执行所花的时间会非常多,但这是否代表我们就不应使用Try/except 呢?其实我们在编写程式的时候,不应该容许返回错误那么多的情况出现,只要我们在编程时注意所处理资料的向性,使用Try/except 也绝对可以是高效的。例子三· 比对两个List import timeit def doCompareWithList(): a = range(30) b = range(10) for number in a: if number not in b: b.append(number) def doCompareWithDict(): a = range(30) b = range(10) dictB = dict.fromkeys(b) for number in a: if number not in dictB: a.append(number) dictB[number] = None b.append(number) if name == 'main': t1 = timeit.Timer('doCompareWithList()', 'from main import doCompareWithList') t1.timeit() t2 = timeit.Timer('doCompareWithDict()', 'from main import doCompareWithDict') t2.timeit() print 'Compare between with list :', t1.repeat(1) print 'Compare between with dict :', t2.repeat(1) Result: Compare between with list : [21.412750959396362] Compare between with dict : [12.298678874969482]现在我们想要做的是比对一下a 跟b 两个List 里面的元素,当发现a 当中有b 没有的元素时,就把这个元素加入b 里面。在doCompareWithList 当中,用for 把a 的每一个元素代入成number,用if number not in b 去检查,我们要注意的是,这样要遍历整个b 才会知道number 是不存在的。所以当a 有大量b 没有的元素的话,遍历整个b 的次数会非常非常多。在doCompareWithDict 当中,我们在比对之前先用b 的元素创建了dictB 这个dictionary,然后用if number not in dictB 来比对,检查number 是否跟一个dictionary 的key 相同,所执行的速度是非常快,key数量的多少不会对这速度有太大的影响,所以我们看到范例的做法,doCompareWithDict 比doCompareWithList 效率超出了43%。以上就是本期瑞云学堂的内容,希望对CG感兴趣的朋友可以关注我们的微信公众平台,或者官方微博,下期瑞云小讲堂再见!
2015-02-09 08:38:52Python
小讲堂
明日西基计划(CG for tomorrow)又一力作《Life Of Bri' n Chris》 —下一个就会是你
2013年开始,深圳市瑞云科技发起:明日西基计划(CG for tomorrow)。预计投资500万的渲染设施,3年赞助100个项目。扶持在影视电脑视觉行业方面的技术发展或有理想却缺少技术、资金支持的年轻团队!动画短片《Life Of Bri' n Chris》就是其中一个项目,此动画短片由英国Anthem公司出品,MichaelWakelam自编自导。讲述的是来自苏格兰的平凡蜥蜴Bri'和来自澳大利亚的倒霉变色龙Chris之间幽默的故事,短片时长8分钟。短片集结了多位艺术家和赞助商的通力合作,经过三年的精心制作终于2015年与观众见面。《Life Of Bri' n Chris》预告视频:http://v.qq.com/iframe/player.html?vid=j0145nk0orv&amp在接下来的几个月中,我们将独家披露电影制作幕后的故事,敬请留意!
2015-01-23 03:37:53三维渲染
动态
Maya物体随机颜色教程案例二
背景: 很多情况下,在一个场景中我们很多类似的物体,有着相同的材质只是在颜色上有不同,比如一棵树上有上千的叶子,这些叶子的颜色有绿的,有黄的,有褐的。。。。。如果想把这各种颜色都能制作出来,我们就要一个一个给材质加载贴图,这样做很麻烦,效果也很低。 这个教程将告诉你怎么用一个ramp节点来控制多个物体的颜色。 原理: 使用arnold提供的aiUserDataColor节点使用每个物体的颜色受各的属性控制,再通过表达式从ramp上获取到随机的颜色赋给每一个物体。aiUserDataColor这个节点的作用就是给物体的shape节点上添加属性,通aiUserDataColor来读取这个属性的值以改变物体的颜色。 第一步:打开maya通过复制来创建很多个小球,创建一个面片pPlane1,一个aiSkyDomeLight来方便我们渲染观察。打开Hypershade窗口,并创建一个aiStandard 材质(aiStandard1)赋给所有的小球。渲染所下 第二步:选中所有的小球,打开脚本编辑器运行下面的脚本: string $sel[] = `ls -sl`; for($current in $sel) { string $shape[] = `listRelatives -s $current`; if(!`attributeExists delightSurfaceColor $shape[0]`) { addAttr -ln "mtoa_constant_Color" -at double3 $shape[0]; addAttr -ln "mtoa_constant_ColorR" -at double -p "mtoa_constant_Color" $shape[0]; addAttr -ln "mtoa_constant_ColorG" -at double -p "mtoa_constant_Color" $shape[0]; addAttr -ln "mtoa_constant_ColorB" -at double -p "mtoa_constant_Color" $shape[0]; setAttr -e -keyable true ($shape[0] + ".mtoa_constant_Color"); setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorR"); setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorG"); setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorB"); } } 这些脚本的做用是,给所有的小球添加mtoa_constant_Color 属性。 第三步:运行下面的脚本: shadingNode -asTexture -n "ColorRamp" ramp; 创建一个叫做ColorRamp的ramp,这样创建出来的ramp是没有连接place2dTexture节点的,如果手动创建要记得打断与place2dTexture的连接。 第四步:选中所有的小球,运行下面的脚本: string $sel[] = `ls -sl`; for($current in $sel) { select -r $current ; pickWalk -d down; string $shape []= `ls -sl`; if(!`attributeExists delightSurfaceColor $shape[0]`) { expression -s "float $vCoord = rand(0,1);\nsetAttr \"ColorRamp.uvCoord.vCoord\" ($vCoord);\nvector $color = `getAttr ColorRamp.outColor`;\nmtoa_constant_ColorR = $color.r;\nmtoa_constant_ColorG = $color.g;\nmtoa_constant_ColorB = $color.b;" -o $shape[0] -ae 1 -uc all ; } } 这个脚本的作用是给所有小球的 mtoa_constant_Color属性上添加一个表达式来随机读取ramp上的颜色。 第五步:运行下面的脚本,创建一个aiUserDataColor ,设置color attr Name属性为 Color; string $aidataColor = `shadingNode -asTexture aiUserDataColor`; setAttr -type "string" ($aidataColor+".colorAttrName") "Color"; 第六步:把aiUserDataColor 连接到aiStandard1的color属性上,赋给物体。渲染结果为: 第七步:改变ramp的颜色, 改变时间线上的当前帧(因为maya的表边式赋值是基于时间的),再次渲染为: 第八步:通过改变ramp的颜色取值,可以得到自己想要的随机颜色。 除了直接把aiUserDataColor连接到color上我们也可以把他连接到高光或者其它的颜色属性上,也可以把得到这个随机颜色通乘除节点或者加减节点和贴图连接到一起来改贴图的颜色。 以上就是本期瑞云学堂的讲授内容,讲述了如何在maya场景中控制物体的随机颜色的方法,希望感兴趣的朋友赶紧打开maya软件按照我们的例子一步一步操作一下,相信你会学到很多知识,请关注我们的微信公众号吧。下期瑞云小讲堂再见!
2015-01-12 07:50:43Maya
小讲堂

热搜关键词

搜索

媒体支持

media-0media-1media-2media-3media-4media-5media-6media-7media-8media-9media-10media-11media-12media-13media-14media-15media-16media-17media-18media-19media-20