1.1. 什么是分布式渲染(Distributed Rendering)
分布式渲染是一种能够把单帧图像的渲染分布到多台计算机(或多个CPU)上渲染的一种网络渲染技术。有许多方法可以实现这种技术,主要的思路是把单帧划分成不同的区域,由各个计算机或CPU各自单独计算。常用的方法是把静帧划分成许多小区域(Buckets),每台计算机都渲染一部分buckets,最后把这些buckets合并成一张大的图像。VRay就是用的这种做法。(mental ray也是,好像mental ray做得更好一点,更稳定一点)
1.2. VRay的实现
Vray通过TCP/IP协议实现分布式渲染的网络联接,不需要任何附加的程序或目录共享。分布式渲染的管理分成两个部分:服务端和客户端。
1.3. 客户端
客户端是指用户现在正在使用的那台计算机。它把单帧划分成许多小的渲染区域(bucket)并把它传给服务端去计算。整个渲染过程由客户端来管理和组织。在客户端计算机上,有一个用户界面来管理网络上的服务端——指定哪些服务器参与计算哪些不参与——并控制服务器端的状态。每当一个渲染区域(bucket)计算完毕,客户端上显示出这块bucket,并发送另一块bucket给空下来的服务器计算(当然如果有的话)。
1.4. 服务端
服务端就是渲染服务器啦,顾名思义,就是网络上提供计算服务的真正在干苦力的计算机们。它们渲染每个bucket,并计算结果送回客户端。它们的状态也由客户端监控。
1.5. 界面说明
Distributed: 启用分布式渲染。Settings...: 打开VRay Networking Settings框。
Search: 查找网络上可用的VRay渲染服务器。约需2秒钟。所有找到的服务器显示在列表中。在服务器名上右键鼠标可以设置服务器状态:Enable: 启用,Disable: 禁用,Set priority: 设置响应优先级。
1.6. 开始使用分布式渲染
首先测试服务器,运行vrmaxspawn.exe:这将自动运行3dsmax为服务器状态 。这种状态下,3dsmax的标题会自动设置成 "$0_SRV_MAXSCENE.MAX"。一切正常的话,服务端就设好了。在每个渲染服务器上做以上的步骤。
现在测试客户端。如通常一样,打开max,打开要渲染的图。。设置vray为当前渲染器,勾选distributed,按settings按钮。你要确保你所在的局域网至少有一台vray渲染服务器设好了,然后按search按钮。大概需2秒钟完成搜索。如果自动搜索没有找全,可以用add server按钮手动输入IP地址添加。在服务器名上右键鼠标可以设置服务器状态:Enable: 启用,Disable: 禁用,Set priority: 设置响应优先级。启用服务器。现在的VRay可以设置响应优先级。不要把它设成实时(Real-time)。如果设成实时的话,将在服务器上使用最高的CPU优先级而使VRay100%地占用服务器的CPU导致服务器上不能做其它的操作。渲染过程中可以一直开着这个VRay Networking Settings框,显示各服务器的当前状态:关闭、空闲、忙、失效。现在可以按Render开始渲染了!请不要在渲染过程中启用过禁用服务器。如果你希望本机也参加运算,只要把本机也作为服务器即在本机也运行VRMaxSpawn大场景时这样做很费内存,VRay的开发者承诺答应在1.1版的时候解决这个问题。如图,两台电脑,其中一台是服务端,另一台既是服务端又是客户端(所以图面上可以看到有两个max在运行)。客户端渲染过程中截屏:
1.7. 特别注意(很重要): jb51.net收集整理
* 所有的服务端必需有当前文件所需要的全部插件和贴图。所以,渲染前必须把当前场景中所用到的所有插件安装到各台渲染服务器上,把贴图复制到各台渲染服务器上MAX的贴图搜索路径下。
* 目前使用分布式渲染来渲染动画是很低效的。最好只用来渲染静态的图像。动画可以使用MAX的标准方法:Net Render.
* 渲染使用I-map的场景可能也不是很有效。因为在I-map部分的计算并不是分布式的。每台渲染服务器都会独立地计算I-map,这是重复计算,造成浪费。开发者将在以后试着改进这一点。我的办法是选一台最快的服务器做完计算后,存成I-map文件,放在网络上,每台电脑直接调用这个I-map。比如,I-map的路径设成:\\192.168.0.2\share\1.vrmp。
* 不要开始渲染后马上取消渲染。有时候会造成MAX死掉。
* 暂停按钮无效,尚未实现。这个问题是MAX本身的问题,可能以后也不能解决。
* 3DSMAX3.X,3DSVIZ 3.X/4.X不支持VRay分布式渲染。
* 可能碰到的一个问题是使用D版的朋友运行不正常,这是因为破解不好。VRay 1.08.04p由roocoon破解的这个版本roocoon声明已经完全破解了分布渲染部份
相关文章
- 10-19windows平台的分布式微服务解决方案(5)--Web服务/WebApi的负载均衡
- 10-19部署分布式类型的glusterfs(二)
- 10-19GlusterFS 分布式文件系统的使用入门
- 10-19在完全分布式搭建中,namenode无法启动的问题
- 10-19有关于分布式和SOA的理解
- 10-19DCache 分布式存储系统|Set, ZSet 缓存模块的创建与使用
- 10-19四、Tensorflow的分布式训练
- 10-19python – Seaborn matplotlib:无法获得没有渲染器的窗口范围(RuntimeError)
- 10-19Ceph 十年演进的经验教训 —— 磁盘文件系统并不适合作为分布式存储后端
- 10-19Jmeter的Throughput有误差与分布式测试时的坑