在整个行业都在高呼“农业学大寨,流程学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. BUAAOO P5-P7 Elevator Simulation

    目录 Abstract Introduction Topic Request Elevator Analysis Reading Requests Coordinating Scheduling an ...

  2. 记Weblogic部署BUG(websocket)

    将含有websocket的SSM项目部署在Weblogic上面,遇到websocket报错如下 java.lang.ClassCastException: org.springframework.se ...

  3. Python 死锁现象

    import time from threading import Thread,Lock,RLock def f1(locA,locB): locA.acquire() print('f1>& ...

  4. IIS Express服务器遇到400/503/IIS Express Error的解决办法

    目前脑子比较乱.下午想让室友从局域网中它的主机访问我电脑上自己部署的一个网站,可是接二连三遇到了400,503,...等问题,弄得有点头大.还好现在解决了.下面记录一下遇到的问题: (不知道为什么图片 ...

  5. 06_java基础知识——break/continue和标签的配合使用

    package com.huawei.test.java03; /** * This is Description * * @author * @date 2018/08/29 */ public c ...

  6. 小程序 movable-area 实现悬浮窗效果

    最近做一个小程序 实现页面内悬浮窗的效果 给自己制定两个方案: 1.通过一个自定义的组件,通过触摸事件进行实现: 2.使用微信的movable移动组件实现: 第一种方案: 结果:实现了 悬浮窗和自动靠 ...

  7. 1个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)

    1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409  ...

  8. 纯粹的python绑定

    目前很多学习资料这样解释赋值与绑定,当是一个简单变量时,是赋值,当是复合变量时,是绑定. 注:赋值是重新复制变量到新变量中,赋值前后两个变量之间无联系.例C语言中: int a=6: int b: b ...

  9. android textiew自定义ClickableSpan无效问题

    我们有个需求,需要将一段文本中的url跳转,替换成跳转我们app的某个页面.然后就开始搞,先自定义clickspan,在设置LinkMovementMethoid, 但是不管怎么搞就是不生效. 这是我 ...

  10. org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open con

    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session f ...