3D渲染集群,你了解多少?

Wesley13
• 阅读 631

摘要:渲染是批处理运行模式,那能不能使用Docker容器技术,做大规模的渲染集群呢?

我们先说说3D渲染涉及哪些领域:

3D渲染集群,你了解多少?

1、什么是3D渲染

简单粗暴的讲:就是将虚拟世界里的3D模型,变为(人眼看到)平面图片。

比如你画了个3D模型,经过渲染,变成了最终我们看到的图片:

3D渲染集群,你了解多少?

(3D模型)

3D渲染集群,你了解多少?

(2D图片)

2 、3D模型,怎么得到2D图片

将一个想象的“摄像机”放到3D空间中,去拍摄图片。这个“摄像机”跟我们的眼睛类似,它看到的就是2D的图片(视网膜上)。

3D渲染集群,你了解多少?

墙裂建议去看看这个教程:https://www.khanacademy.org/partner-content/pixar/rendering/rendering1/v/overview-rendering

所以简化后就是,一个“摄像机”+ 一个“视窗”。如下图:

3D渲染集群,你了解多少?

画重点:从摄像位,发出一束射线,穿过栅格,打到3D模型上,并记录下击中的那个点的颜色。

重复上述步骤,扫描每个栅格上面的点,得到所有点的颜色。这就得到栅格最终的图片:

3D渲染集群,你了解多少?

这种方式也叫光线追踪,这个词也比较常见。

3D渲染集群,你了解多少?

每张图片里的每个像素点,都是通过“摄像机”+“栅格”拍摄出来的。

3 、3D->2D 更复杂的场景

实际渲染情况下,并不只是这么简单,因为3D模型表面的颜色,会受到它周围的环境的影响。比如:3D模型的附近有个光源,3D模型的表面光滑程度等等。

所以即使你知道“摄像机”发出的那束光击中了3D模型的位置,你也并不能马上得到该点的颜色(底色+干扰=最终颜色)。

3D渲染集群,你了解多少?

3D渲染集群,你了解多少?

所以真正计算像素点的颜色,工作量还是非常大的。注意,这还是一张图片(一帧)的计算量,一部动画电影得有多少帧图片?

4 、完美的批处理任务

一部电影由很多的帧组成,每一帧都由上面光线追踪算法计算出每个像素点的颜色。注意:每一张图片,都可以分别计算的,互相之间并不影响。

3D渲染集群,你了解多少?

(每一帧,单独进行渲染处理)

  • 渲染是创建 3D 模型并将其转换为 2D 图像的过程。 在 Autodesk 3ds Max、Autodesk Maya 和 Blender 等应用程序中创作 3D 场景文件。 Autodesk Maya、Autodesk Arnold、Chaos Group V-Ray 和 Blender Cycles 等渲染应用程序可生成 2D 图像。 有时,可以从场景文件创建单一的图像。 但是,常见的操作是建模并渲染多个图像,然后将其组合成动画。
  • 传媒娱乐行业往往使用渲染工作负荷来生成特效 (VFX)。 广告、零售、石油和天然气及制造等其他众多行业也会使用渲染。
  • 渲染过程属于计算密集型工作;要生成的帧/图像数可能很多,而渲染每个图像可能需要大量的时间。 因此,渲染是一个完美的批处理工作负荷,可以利用 Batch 类服务来并行运行多个渲染器。

5 、渲染云厂商

各大通用类云厂商,一般都是通过直接买买买,获得了云渲染的能力。

3D渲染集群,你了解多少?

也有一些是直接定位为渲染领域的专业云:

3D渲染集群,你了解多少?

瑞云,又独立搞了个“青椒云”。这么看来,华为云如果想要进入渲染计算,也得买个小帮手才行啊~

6 、渲染大客户

一般就是各大渲染厂商,也就是制作动画片的大厂。比较有名的“追光动画”大家总有听说过吧。

3D渲染集群,你了解多少?

3D渲染集群,你了解多少?

今年疫情,电影行业受挫,估计这些渲染厂家日子不好过。。

7 、渲染软件的生态

要计算那些光线追踪的像素颜色,就得有专门的软件。

这些软件有开源的,有商业的。大部分都在Windows或者Mac上面(毕竟Mac才是设计师们的宝贝)。当然,也有不少是支持在Linux的。

3D渲染集群,你了解多少?

看Google趋势,热门的渲染软件如上。基本上渲染软件都在下面:

3D渲染集群,你了解多少?

8 、容器搞渲染集群?

既然渲染是完美的批处理,每个步骤的处理互相不影响,可以分布式大规模同时进行。

同时,容器技术,天然适合大规模运行环境的复制。

那能不能使用Docker容器技术,做大规模的渲染集群呢?

答案当然是肯定的。

2019年1月份,Google CloudSony Pictures Imageworks合作推出了OpenCue,高性能的开源渲染管理器,专门针对VFX和动画功能而设计。**Apache 2.0许可**

3D渲染集群,你了解多少?

Google云,也基于OpenCue,推出了渲染解决方案:

3D渲染集群,你了解多少?

https://cloud.google.com/solutions/creating-a-render-farm-on-gcp-using-opencue?hl=zh-cn

9 、容器渲染集群尝试

毕竟咱是搞容器的嘛,所以小组也针对这个OpenCue做过原型验证,还给他们提了贡献呢:-)

3D渲染集群,你了解多少?

安装Maya,安装插件:

3D渲染集群,你了解多少?

配置渲染任务:

3D渲染集群,你了解多少?

投递渲染任务,容器们开干啦:

3D渲染集群,你了解多少?

额,容器估计要统一宇宙了。

点击关注,第一时间了解华为云新鲜技术~

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
thinkphp3.2.3模板渲染支持三元表达式
thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这