在整个行业都在高呼“农业学大寨,流程学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. Python 函数的描述

    函数 函数是带名字的代码块,用于完成具体的工作. 要执行函数定义的特定任务,可调用该函数.需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运 ...

  2. debian系linux墙内安装安全工具集

    虽然有kali linux这样集合了很多安全工具的操作系统,但是kali的软件源相对老旧,没有ubuntu等主流debian系统丰富,kali默认使用su权限进入图形化界面也是违背linux权限机制的 ...

  3. Linux:OpenSUSE系统的安装

    又过了比较长的时间,基本上都是一周一更了,这期我们就来演示Linux系统中OpenSUSE系统的安装吧! 安装OpenSUSE系统 系统映像文件下载 OpenSUSE 15下载地址: https:// ...

  4. 组合,Mixin,类、类对象、实例对象

    1.组合,将几个横向关系的组合在一起.所谓的组合就是将类的实例化放到新类里面,那么就将旧类组合进去了. class Turtle: def __init__(self, x): # 注意 init 前 ...

  5. volatile--领域分界线?

    volatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量.volatile的作用是作为指令关键字,确保本条指令不会 ...

  6. 网站内容js设置 禁止复制,禁止选择

    网站内容禁止复制和粘贴.另存为的js代码 1.使右键和复制失效 方法1: 在网页中加入以下代码:  复制代码代码如下: <script language="Javascript&quo ...

  7. python—文件创建

    # 1.文件操作# day1.txt# 1.文件路径:E:\day1.txt# 2.编码方式:utf-8.gbk# 3.操作方式:只读,只写,追加,读写,写读# 以什么编码方式储存的方式储存就以什么编 ...

  8. 深度学习(pytorch)-1.基于简单神经网络的图片自动分类

    这是pytorch官方的一个例子 官方教程地址:http://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-b ...

  9. Docker 部署应用过程记录

    Kibana直接部署到centos中,老是没有任何征兆退出,今天将他移动到docker中部署,以下是部署的过程,做个记录防止忘记 1.安装Docker # yum install docker 2.启 ...

  10. Sql Server数据字典

    1:添加字段属性或者表属性 execute sys.sp_addextendedproperty @name = N'MS_Description', @value = N'要添加的属性信息', @l ...