疑难解答 — 用 Maya mental ray 进行网络渲染
 
 
 

以下说明针对的是 Maya 2012 版本和 mental ray Standalone 3.9.1 版本。有关早期版本的信息,请参见该版本的 Maya 或 mental ray 文档。

为什么无法安装 rayserver 服务或无法编辑服务文件?

请确保您拥有这台计算机的管理员(或根)权限。

所有设置都是正确的,为什么仍无法进行网络渲染。

请检查以下几种可能性。

端口号

一种可能是正在使用的网络端口号已被另一个服务使用。请确保服务文件中没有其他条目正在使用端口 39010 (mental ray Standalone) 或端口 7412 (Maya mental ray Satellite)。如果该端口号已被使用,需要拾取一个新的可用端口号,并对即将一起工作的所有主计算机和从属计算机使用那个相同的端口号。

可能需要更改端口号。

若要在 Linux 和 Windows 中更改端口号,请编辑位于以下位置的端口服务文件:

  • (Linux) /etc/services
  • (Windows XP) C:\Windows\system32\drivers\etc\services

若要在 Mac OS X 中更改端口号:

  • (Mac OS X) 请打开 NetInfo 管理器 (/Applications/Utilities/NetInfo Manager),导航至 /services,然后更改 mental ray 或 Maya mental ray Satellite 的端口号。

在服务文件中,请确保存在以下行:

  • mental ray Standalone 3.9.1:mayamr391 39010
    注意

    实际的服务可能具有不同的名称。请查看服务文件。

  • Maya mental ray Satellite 2012:mi-raysat2012 7412

其中,7412 或 39010 是端口号。请确保主计算机和所有从属计算机的端口号相同。

mental ray Standalone 许可

(mental ray Standalone) 可能需要编辑名称为 rayd 文件的文件,其位于 mental ray 3.9.1 安装 bin 目录中。填充 SPM 许可服务器的名称,然后取消 setenv SPM_HOST 行的注释。

重新启动服务 (Windows)

若要在 Windows 中重新启动服务器,请转到 mental ray 存储箱目录并键入以下内容:

  • Maya mental ray Satellite
    raysat2012server.exe /stop raysat2012server.exe /start
    
  • mental ray Standalone
    rayserver.exe /stop rayserver.exe /start
    

inetd 配置

(安装了 7.2 之前的 Redhat 版本的 Linux)可能需要编辑位于 /usr/etc/inetd.conf 中的 inetd.conf 文件,并确保存在以下行:

  • mental ray Standalone:
    mi-ray stream tcp nowait nobody /usr/local/mi35/bin/rayd rayd
    
  • Maya mental ray Satellite
    mi-raysat stream tcp nowait nobody /usr/local/mi35/bin/raysatd raysatd
    

可能需要键入以下内容,以重新启动 inetd 服务:

% killall -v -HUP inetd

(仅对安装了 7.2 和 7.3 Redhat 版本的 Linux)可能需要编辑 xinetd.d 目录中的服务。请参见下方的检查 Linux 中的 xinetd 配置

检查 Linux 中的 xinetd 配置

  1. Linux 壳类型中:
    ls /etc/xinetd.d 
    

    应该有一个名称为 mi-ray (mental ray Standalone) 或 mi-raysat (Maya mental ray Satellite) 的文件。

  2. 如果不存在这样的文件,其将成为根,使用文本编辑器创建 mi-ray 或 mi-raysat 文件,并输入以下文本:

    mental ray:

    # description: mental ray for maya network rendering service mi-ray
    { flags = REUSE socket_type = stream user = nobody wait = no server = /usr/local/mi35/bin/rayd log_on_failure += USERID }
    

    Maya mental ray Satellite:

    # description: mental ray for maya network rendering service mi-raysat
    { flags = REUSE socket_type = stream user = nobody wait = no server = /usr/local/mi35/bin/raysatd log_on_failure += USERID }
    
  3. 保存文件。
  4. 为了使 xinetd 能够查找新配置的服务,需要重新启动或给其发送一个信号。
    • 由于重新启动会影响许多网络服务,因而重新启用 xinetd 可能不太方便。若要重新启动 xinetd,请键入:
      /etc/init.d/xinetd restart
      
    • 若要在不重新启动的情况下重新配置 xinetd,请通过执行以下操作找到 xinetd 的进程 ID:
      ps -e | grep -v grep | grep xinetd
      

    应该能够看到与此类似的行:

    980 ? 00:00:02 xinetd
    

    第一个数字是 xinetd 的进程 ID。

    如果系统安装的是 RedHat 7.2 版本,那么一接收到 USR2 信号,xinetd 就重新读取其配置。对于 RedHat 7.3 版本,接收到 HUP 信号后重新读取其配置。因此,对于 xinetd 进程 ID 为 980 的 RedHat 7.3 系统,可以执行以下操作:

    kill -HUP 980
    

    xinetd 应已经找到新服务,您应该能够为其发送来自网络上另一个节点的渲染请求。

如何在一台计算机上运行多个版本的 mental ray?

如果要在一台计算机上运行不同版本的 mental ray Standalone,确保每个版本在服务文件中都具有其自己的 mi-ray* 条目。

例如,如果在一台计算机运行 mental ray 3.3 和 mental ray 3.4,可以更改 mental ray 3.3(或 3.4)的 mi-ray 条目。

在服务文件中创建自己的 mental ray 3.3 mi-ray 变量。

服务文件可能如下所示

mi-ray 7003/tcp # used for mental ray 3.4
mi-raysat 7103/tcp # used for mental ray satellite 3.4
mi-ray_33 7155/tcp # used for mental ray 3.3 

服务器也需要更新。

重命名服务器文件 (Windows)

  1. 转到 mental ray 3.3 存储箱目录。
  2. 停止服务 (rayserver.exe /sto )。
  3. rayserver.exe 重命名为 ray_33se ver.exe
  4. 重新启动服务器 (ray_33server.exe /start)

重命名服务器文件 (Linux)

  1. 停止 xinet。
  2. rayd 重命名为 ray_33d
  3. 在 xinetd.d 目录中创建名称为 mi-ray33 的新文件。该文件必须包含设置信息。例如:
    { flags = REUSE socket_type = stream user = nobody wait = no server = /usr/local/mi33/bin/ray_33d log_on_failure += USERID }
    
  4. 重新启动该服务。

兼容性问题

由于早期 Maya 版本的 mental ray Satellite 和当前版本的 mental ray Satellite 之间有许多更改,主计算机(安装当前发行的 Maya 版本)与使用早期 Maya 版本的从属计算机之间不兼容。

解决方法

使用安装相同 Maya 版本(例如,Maya 8.5 或 Maya 8.0)的主计算机和从属计算机。