【TD】CG 特效公司里 Pipeline TD 的职业生涯如何?



转载请注明:http://www.zhihu.com/question/29414824/answer/51894749
乐琢,CG爱好者


其实我之前是特效师(effects artist),并不是pipeline TD,但在离开公司前,也确实做了1年左右的流程开发。

关于楼主问的一些问题:

1,Pipeline TD的职业生涯是什么?

要我说的话,岗位终极目标就是技术总监,就是带领一个技术团队来解决问题。个人事业的最终目标就是自己创业咯,为CG公司提供流程解决方案,类似于shotgun等软件服务。

所谓职业生涯无非就两个目的:赚钱 or 自我实现 or both

2,Pipeline TD需要哪些技术?

虽然题主没有问这个,但我感觉这个也似乎困扰着题主,因此冒昧答一下:

首先看看pipeline TD的职责

私以为pipeline常见的工作有两种:数据pipeline 和 流程 pipeline

数据pipepine,就是数据的导入和导出,由于CG公司使用的软件众多,如果确保数据在各个软件之间平滑顺利的流动是个关键。举个实例,假如公司用boujou做跟踪,maya做动画和模型,houdini做特效,arnold渲染。那么TD首先要琢磨如何将boujou跟踪的摄像机完美导入maya和houdini,maya的模型和动画如何导入houdini,houdini做出的特效如何导入maya或者如何用houdini的arnold直接渲染等等。

流程pipeline,就是确保项目进度的运行。我们之前做了一个名为Campaign的平台。在这个平台上,可以浏览项目信息、分配任务、检查制作进度、制作人员提交结果,并且总监对结果进行反馈和批示。这个平台的界面用的是html + js来实现的,后台是python。除了管理项目之外,也做过一些杂七杂八的工作,比如渲染农场管理,批量重命名等等。

弄清了职责,再来看看需要哪些技术:
· 首先需要能做界面的,qt或者html等
· python。这个是神器,除了速度慢之外几乎没有缺点,常见的CG软件(maya,houdini,nuke等)都有python接口,可见这个语言的通用性之强。由于pipeline TD往往面临大量的字符串操作,而python在这方面又非常方便,因此强烈建议掌握python。
· c++,这个其实我不大熟,但如果想做些底层的数据导入导出的东西,这个速度肯定是更快的。
· shell/cmd,许多插件的运行需要使用终端的命令,因此也需要学习。比如我现在做的一个远程渲染的插件,就是基于windows的cmd命令实现的。

楼主提到了学习图形学,我感觉做pipeline对图形学的要求并不高,了解一些数据存储格式就行了。毕竟TD和RnD还是有很大区别的。

3,年龄大的学习问题
这个看个人想法了,我觉得人是可以活到老学到老的,这可能是因为目前我在科研所工作,耳濡目染,看到许多中年人尝试新的领域、学习新的东西,之前遇到一帮生物科学家,为了展示自己的系统,从头开始学计算机编程,学了大半年,居然也搭建出了个平台雏形。总之,人的可塑性是很强的,60岁之前,只要你想学, 有恒心,就一定能学好。

建议学习的时候,不要从头看教材,而是应该着手处理一个具体问题,遇到困难时,再去查资料或翻书。这样学习更有目的性,兴趣也更高。


在OpenCV中,创建并初始化GStreamer Pipeline通常涉及到以下步骤: 1. **包含头文件**: 首先要在你的代码中包含必要的头文件: ```cpp #include <opencv2/gstreamer/gstreamer.hpp> ``` 2. **初始化GStreamer上下文**: 使用`cv::gstreamer::init`函数初始化OpenCV对GStreamer的支持: ```cpp cv::gstreamer::init(); ``` 这一步非常重要,因为它设置了OpenCV与GStreamer通信的基础环境。 3. **创建元素链**: 定义你的GStreamer Pipeline,例如,从摄像头抓取视频: ```cpp std::string pipelineString = "v4l2src device=/dev/video0 ! video/x-raw, format=UYVY,width=640,height=480,framerate=30/1 ! videoconvert ! appsink"; cv::GStreamerPipeline pipeline(pipelineString); ``` 这`pipelineString`是一个字符串,描述了你想要的管道结构,例如摄像头设备、编码转换等。 4. **打开并启动管道**: 使用`start`方法打开并开始播放管道: ```cpp if (!pipeline.isOpened()) { std::cerr << "Failed to open pipeline!" << std::endl; return -1; } pipeline.set(cv::CAP_PROP_FPS, 30); // 设置帧率 pipeline.play(); ``` 5. **读取数据**: 开始循环读取并处理从Pipeline中获取的数据。 6. **结束和清理**: 当不再需要时,记得关闭并清理资源: ```cpp pipeline.stop(); pipeline.unload(); cv::gstreamer::deinit(); ``` 注意,上述例子假设你的系统支持`v4l2src`(Linux V4L2输入)。根据实际需求,`pipelineString`可能会有所不同。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值