CG行业的pipeline,dataflow和workflow

转发相对豆一篇关于pipeline,dataflow和workflow关系的文篇:

首先这是个有限范围的讨论,这三个概念有相当大的部分是重叠的。但是有着看问题的不同角度,其中有些是任务驱动,有些是技术驱动多些。

从国内CG行业的现状来看,大家提的最多的是pipeline这个词,开始我大概也就理解成“流程”,因为翻译也是管道,我们都是脑子里容易出画面的人,你现在脑子里是不是一堆管线了。但是后来渐渐的发现应该看成流水线更贴切,它是由事件驱动形成的线路,用身边的事物解释可以有很多例子。

例如麦当劳的汉堡生产流水线:鸡肉下油锅5分钟,机器提示灯亮起,捞出鸡肉;面包排整齐放入加热器,正反面加热50秒,拿出,放上鸡块、生菜、蛋黄酱,盖上上盖,左手拿住汉堡,右手拿一张包装纸,将汉堡放人包装纸,右手合上,包装完毕。(其实还有很多细节啊)再比如全自动的咖啡机:放入咖啡豆,机器先自检,水够了、残渣盒空置,开始磨豆子,加热,水泵开始用预设的压力曲线将热水注入,萃取咖啡,萃取完毕,倒残渣,水不够->提示灯亮起->等待人工处理、残渣盒满->提示灯亮起->等待人工处理。我觉得咖啡机是家用电器中,机电一体化程度最高的电器。

一. Pipeline


再用我们自己行业的东西来说,请看教学https://www.pluralsight.com/courses/houdini-unity-advanced-production-pipeline#,这是“高级houdini->unity生产流水线教程”。说到这里,我想给一个定义,CG的pipeline是指生产CG产品的加工路线,是根据所创作的CG产品类型,对制作软件选型、集成、人员组织优化的精心设计。在CG资料的加工过程中,不论是跨部门,还是跨软件都不允许偏离设计的规范,并且要求数据以一定的速度通过各个生产环节。这种工业化生产的组织形式(CG生产流程、流水线)设计分几个阶段:

1.制定技术路线:主要由CG总监、技术指导、各环节leader、pipeline TD、TD探讨软件工具选型方案,以及使用的具体技术、技巧。(现在其实也没啥选的,主要看人,在个别细节上,比如毛发,爆炸这种选型会看到各组大佬们撕,有些基础技术也头10年没有大更新了,比如绑定的骨骼变形器、基于顶点的shape变形等,更多的是绑定技巧在进步)技术路线会随组织所处行业,而大不相同,游戏和影视生产的思路就有很大差别,游戏资产要汇入3D引擎,对贴图、模型讲究极致优化,视效特效电影要求各种真实,相对不在乎优化,除非机器跑奔溃了,这种差异会充分体现在技术选用的过程当中。这一步大、小公司,工作室差别不大哈,看菜下饭。

2.制定规范:部门结构划分、文件名命名、工作文件的存储、工程目录的层级组织,环节上下游交接等规范;规范当中有通用性规范可以满足大多数情形,有些则需要可配置性的开放,应对大量变化,工具也需要能够通过配置适应开放,减少耦合。

3.由艺术家通过应用软件的GUI,手工操作实施。大多数情况下脱离各种内部工具,流程也是照跑的,各种规范其实就是管理制度,应该是种活跃的分子存在于组织内部;

4.Pipeline TD,TD对容易出错、重复性的操作,实现自动化,提高效率、保障生产过程稳定、平滑。

5.维护、保障、打磨,

在这里插入图片描述

二. Workflow


workflow是企业为了实现业务目标,对工作流程各操作步骤之间规则的抽象和概况描述。workflow主要管理多个参与者之间按预定规则自动传递文档、信息或者任务。如片子中的一个角色资产,制作过程要经过,建模环节->材质、贴图绘制环节->绑定环节,假设每个环节一个部门一个人,workflow就更加偏重于上传下达的效果,和过程的逻辑性,这是偏向于组织架构、组织管理的视角。钉钉app、OA、ERP系统,都是用来处理这类组织运营过程中发起的各种业务流程的。CG行业有Shotgun、Ftrack、cgteamwork等。

三. Dataflow


这个是重点,数据流在现在这个时代不陌生了,我们每个人都是data发生器,微信、淘宝、jd的所有操作都会被这些寡头们毫无遗漏的保留,他们称之为“帮助我们提高用户体验”,这些操作记录是严格的时间序列,可以非常容易的评估你每天在app上的习惯。那么你每天产生的操作记录叫做“数据”,评估出来的结果叫做“信息”。CG行业一个项目几百T的数据量不在话下,所以说把我们称为大数据行业也不为过。

CG行业的工作其实是在3D World里垒砖(我是真想加个捂脸的表情),所有3D软件的工程文件都是一种描述世界的风格,这和真实世界里定义事物属性的数据一点差别都没有。通过obj、abc、usd等通用格式,我们得以在不同世界里穿梭,我们要做的就是管理这些数据,让它们以正确的方式(I/O),通过管道抵达各个时空,并正确的组织起来,有没有平行宇宙的感觉。

一般情况下,我们会以一种文件格式将数据记录在磁盘上,比如说maya的.ma、.mb,houdini的.hip,ps的.psd等等,经过一个环节的处理后,我们移交另外一个环节,也是通过磁盘文件。数据就这样通过流程管理约定的规格发生转移,事情并不简单。大规模生产的时代,项目会被分解成细小任务,分配到艺术家身上,在不同环节的艺术家将需要纳入其他人的工作数据,或作为参考,或延续下一步工作,并将自己的成果发布到流程主线上:

下图是一个生产单元:
在这里插入图片描述

1.import:可能是模型,材质贴图,动画等。方式有几种:直接导入,在本场景中形成一个数据拷贝。引用导入,在场景中形成一个外部引用。有时两个方式需要切换。

2.update:场景的某一个资产在其他环节被更新了,根据数据链传递的信息,这里需要同步,这是版本管理的一部分工作,版本并不都是使用最高的,目的是可以“选择合适”的版本。

3.output:为了打破线性的生产关系,同一份数据,可能还需要冗余处理,用多种文件格式输出,过滤掉不需要的数据,为不同环节提供数据支撑。

在这里插入图片描述

各种颗粒度,维度的数据源,都随时会发生更新。数据最终是非线性或者线性的传递到流程末端,当任何维度的数据发生更新,都要求能够触发信息链,让世界描述成需要的样子,这一点houdini简直是无敌的,前提是不要lock节点。

数据流在这样的环境下,已经不是简单的二维结构,而是一个张量结构:
在这里插入图片描述

希望的线性制作流程和数据更新可能性:
在这里插入图片描述

并发式的生产数据流:
在这里插入图片描述

当信息能任意抽取时,并发流程才有了可能性,uv转移,骨骼权重转移,shader指定,版本控制,都不是太大障碍,但是并发有更复杂的逻辑,更多的异常和更多的自动化工作,也需要根据实际情况来使用,用直接的技术完成工作任然是最好的,所以流程设计的交付物也是慢慢演变,一点点进化的。同时也需要考虑整个组织的柔性,实现好的业务过程控制。很多时候会觉得小队伍就没有流程,用了Shotgun、Ftrack、cgteamwork就有流程了,实际上小队伍的内部君子协定就是流程的一部分,各种流程软件起的作用是尽量管理流程上事件发生的过程,所以广义上的流程其实和企业要实现的目标相关,软件工具、技术栈是这个系统的子系统。

分享技术流程的文章也很多,但是现在技术生命周期非常的有限,强耦合的流程也带来不少困扰,所以这篇换个角度,也算是个知识科普。

链接: https://www.jianshu.com/p/da90284318b5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值