在整个行业都在高呼“农业学大寨,流程学xx”的大背景下,你想推出一个新的更好的流程有着极大的难度。

在2014年的时候行业内大部分公司就有了资产的概念,会成立资产部门去专门创建资产,供后续环节多次重用,提升单一项目的效率,甚至会供后续其他项目多次使用。由此可见资产的概念已经广为接受,但提出概念容易,要让概念落地就不是一回事了。

       如何整理资产的组织逻辑,如何建立基于资产组织逻辑的配套工具在国内依然缺乏成熟的框架。

近年Pixar为了提升流程的灵活程度,推出了USD这样一个稳定可伸缩的资产组织工具,这个工具充分考虑到了资产组织过程中会涉及的各个节点,对后续资产的复用也提供了任意粒度的重写机制。基于USD如此多的优点,我们来看一下USD是如何组织资产的。

简单举四个例子:

  1. 资产部门创建了一匹马,这匹马有低中高三个不同精度的模型,USD提供了variant功能来支持这种需求;
  2. 资产部门创建了一匹马,马会有多套skin shading network供后续环节选择使用,skin shading network就是马的材质部分,USD提供了reference-layer功能来支持这种需求;
  3. 资产部门创建了一匹马,马鞍是马的道具部分,与马的材质部门分属两个不同层面的粒度,现在马鞍也希望有多套版本供后续环节使用,USD变通地提供了reference-asset功能来涵盖这种需求;
  4. 当资产部门创建的这匹马地可替换部分无法满足后续环节需求的时候呢?USD提供了override机制来化解,你可以inherit这匹马,修改之后发布。

USD通过一套成系统的概念及关系网络来实现这四种特例,是不是很心动?

然而现实很残酷,USD对Maya的支持是有限的,即使是对Presto的支持也是有限的。很多USD中的概念在Maya中并无对应的节点,.usd文件中的层级关系导入到Maya后只能用Group来替代,Maya制作体系中要采用USD是难以覆盖全部环节的。很多人认为USD对Presto是全面支持的,这是一个误解,在Pixar中USD依然是作为Cache使用的,只不过这个Cache更为高级,具备丰富的组织能力。

话题回到Maya,Maya作为国内三维制作中普及率最高的软件,在大多数公司中的绝对位置不容撼动,而当前大部分基于Maya的配套流程工具都采用Maya-Cache-XML-Katana的混合方案,这种方案有几种非常明显的缺点:

  1. 这种方式并未对资产概念做充分实践,大抵还是model->shade->rig->layout->animation->lighting的套路,没有把资产环节单独提炼出来独立设计,粒度不清晰,在资产复用时,这种方案缺少力度。
  2. 装配环节过于简陋,将多个场景文件的配置信息记录在xml中再组装起来的过程层级过于单一,并未形成装配网络的概念体系。
  3. 即使个别公司实现了多层的装配网络,每一个层级也并未组件化,更遑论成熟的配套工具了。

实际上这种方案的极限可以参考Golaem,该插件将XML的方案用到的了极致,并提供了一系列配套工具来构建资产,使用资产,但这个级别的开发可能国内所有视效公司都是望尘莫及的。

那么公司内部的Maya自研流程真的就到极限了吗?显然不是,我下一篇文章将会介绍如何在Maya中成体系的快速建立资产体系,将资产环节的问题一劳永逸的解决!

闲话Pipeline In Maya的更多相关文章

  1. cg tut

    Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...

  2. redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作

    前段时间在做用户画像的时候,遇到了这样的一个问题,记录某一个商品的用户购买群,刚好这种需求就可以用到Redis中的Set,key作为productID,value 就是具体的customerid集合, ...

  3. 将MPM雪模拟移植到Maya

    同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...

  4. 从Maya中把模型搬运至网页的过程

    虽然利用threejs来在网页中渲染3d模型不是第一次折腾了,但是还是遇到了各种问题.总结下我所遇到的问题,希望能给正在使用threejs的小伙伴一个帮助. 一.所使用的软件与开发环境 Maya201 ...

  5. Building the Testing Pipeline

    This essay is a part of my knowledge sharing session slides which are shared for development and qua ...

  6. Scrapy:为spider指定pipeline

    当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置s ...

  7. 图解Netty之Pipeline、channel、Context之间的数据流向。

    声明:本文为原创博文,禁止转载.       以下所绘制图形均基于Netty4.0.28版本. 一.connect(outbound类型事件)  当用户调用channel的connect时,会发起一个 ...

  8. 初识pipeline

    1.pipeline的产生 从一个现象说起,有一家咖啡吧生意特别好,每天来的客人络绎不绝,客人A来到柜台,客人B紧随其后,客人C排在客人B后面,客人D排在客人C后面,客人E排在客人D后面,一直排到店面 ...

  9. jcFeather Maya 羽毛插件

    jcFeather 2.8.6 插件持续更新地址为:http://www.jerrykon.com/jcFeather.html 和 http://www.creativecrash.com/maya ...

随机推荐

  1. UITableView section 圆角 阴影

      在UITableView实现图片上面的效果,百度一下看了别人的实现方案有下面2种: 1.UITableView section里面嵌套UITableView然后在上面实现圆角和阴影,  弊端代码超 ...

  2. Docker多主机互联最佳实践

    在公司使用docker多主机互联时碰到了各种坑.搞清楚后才发现如此简单,以下是根据实际经验的总结. 版本信息 Client: Version: 18.09.0 API version: 1.39 Go ...

  3. 1--HTTP基础知识

    1. HTTP工作流程 客户端与服务器要建立连接(TCP) 客户端向服务端发起HTTP请求 服务器做出应答,表示对客户端请求的应答 客户端接受服务器所返回的信息 2. HTTP之URL 协议部分:HT ...

  4. MDK5报错missing closing quote

    用emwin做界面的时候遇到的错误,MDK5可能无法编译一些汉字编码,对应汉字在信息反馈中会显示为乱码,更会附带一些如“expected a "}"”这样的错误提示. 解决方法:O ...

  5. 导入PrefixHeader.pch 报错UNknow The type "NSString",等基础类

    进入到项目,在Buid Settings收索Compile Source 把Compile Source As 改成Objective-C问题即可解决.

  6. java开发150个建议

    阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法 建议 ...

  7. mysql 导入数据库问题

    今天数据库迁移测试,发现存储过程导入不了,提示如下错误: Cannot load from mysql.proc. The table is probably corrupted 原因是mysql5. ...

  8. Java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind异常

    端口被占用,可能是其他程序占用,也有可能是自己代码逻辑不对,比如BZ在写SocketServer时把添加端口的代码放进了while里(sasasa.....). 查看本机端口是否被占用:netstat ...

  9. MySQL基本操作——1

    1.命令行启动或关闭MySQL服务:方式一:计算机--右击管理--服务方式二:net start MySQL服务器名称net stop MySQL服务器名称 2.登录和退出(必须在MySQL服务启动的 ...

  10. 19.python的序列化

    自定制序列化 import json from datetime import datetime class JsonCustomEncoder(json.JSONEncoder): #自定制序列化类 ...