Iray Programmer's Manual

Server configuration

An application embedding Iray that wishes to act as an Iray Bridge Server needs to do the following:

  1. In addition to the plugins required for Iray render modes (see Render mode selection) and normal Iray operation, the following plugins should be loaded:

    • cloud_render_server.dll/so: This is the server-side variant of cloud_render.dll/so and but must be loaded by the server for Iray Bridge rendering to work.

    • x264_video.dll/so and its dependency libx264-114.dll/so: This is the software H.264 encoder based on the x264 library. Iray Bridge will fall back on software encoding if hardware encoding is not available.

    • nvenc_video.dll/so: This is the hardware H.264 encoder. Requires a Kepler based NVIDIA GPU. Iray Bridge will automatically fall back on the x264_video.dll/so and software encoding if hardware encoding is not available.

    • cb_importer.dll/so: This is the plugin required to load Iray Bridge snapshots. See Snapshots.

  2. Configure the server. Apart from normal Iray configuration, look up the Iray API component mi::neuraylib::IRemote_configuration and set the following configuration options:

    • Disk cache path: Call set_remote_disk_cache_path() with the path to a directory where the data of the server side disk cache will be saved. If the directory doesn't exist it will be created, provided the server has sufficient permissions. Make sure the server has write permissions for the provided path.

      Note: Multiple remote servers must not write concurrently to the same disk cache over a networked file system because this might cause data corruption. Best practice is to have one disk cache per Iray Bridge server.
    • Iray Bridge snapshot path: Call set_scene_export_path() to set this path. It must be set to an existing directory to which the server has write permissions. Optional, only required if the feature to save Iray Bridge snapshots will be used. See section below on how to save Iray Bridge snapshots for more information.

    • Server listen address: Call set_remote_server_listen_address() with the address the server should use to listen for Iray Bridge clients. The format is "interface:host". Use the address 0.0.0.0 to listen on all interfaces. For example, the address "0.0.0.0:8998" will accept clients on all interfaces on port 8998.

  3. Start the Iray Bridge server. Call mi::neuraylib::IRemote_server::start() to start the remote server. After the server is successfully started, Iray Bridge clients can be accepted.