This document describes how to set up and use multi-machine configuration when the special needs of a large studio environment apply.
The special needs and circumstances are usually these:
- You have multiple studios which have to be operational simultaneously.
- You have 5-10 or more cameras, each equipped with a tracking system, distributed across the studios.
- You have 5-10 or more renderer machines.
- You want to dynamically allocate which renderer machines are to be used when starting shooting in one of the studios.
- This implies that you want to dynamically route each of your cameras and tracking systems to an arbitrarily selected renderer machine.
It is recommended to build your system in a way that is similar to the example below.
This example shows an environment with 5 studios, 2 cameras + tracking per studio, and 10 renderer machines. (On the diagram we only depicted two of the studios, the other ones are represented by the "+" texts.)
It is highly recommended to build two completely separated Ethernet LANs:
- one for the lagging-free transmitting of camera tracking data
- and another for the normal network data traffic which includes the controlling signals between the Aximmetry machines and the graphics, video, and other file transfer between the File Server and the renderer machines.
Internet access should also go through this second network for the machines that need it.
Routing the camera and tracking signals
The goal is to enable dynamic routing of any camera and tracking system to any renderer machine.
Since the camera images are transferred via SDI we recommend using an SDI matrix device through which you can arrange any routing. This part of the system has to be operated separately, it cannot be controlled from the Aximmetry software.
However, the routing of camera tracking signals can be controlled from the software given that the tracking systems are either TCP-based or UDP based and set up to send to broadcast or multicast IP addresses. See this later in the document.
Aximmetry entirely relies on the file system for storing the virtual scene, graphics, and video files. It is recommended to have a separate File Server machine that provides access to the files through one or more shared folders.
Also, it is recommended to have a Backup File Server in which all the data are reflected regularly.
Aximmetry controlling machines
Each studio should have its own controlling machine to allow operating on multiple shows simultaneously. These machines will provide the Aximmetry UI and will control the selected renderer machines.
Through the Data LAN, they access the virtual scene files stored on the File Server.
Aximmetry renderer machines
These perform the actual rendering and compositing of the virtual graphics. They can be dynamically allocated to any studio (controlling machine) and any camera.
These machines must have two network interface cards to connect to the two separate LANs.
Through the Data LAN, they access the virtual scene, graphics, and video files stored on the File Server. Through the Tracking LAN, they receive the camera tracking information. Through the SDI network, they receive the camera picture and other auxiliary video inputs and transmit the final composite image.
Graphics artists can design the required virtual 3D graphics on these machines.
Through the Data LAN, they access the virtual scene, graphics, and video files stored on the File Server.
Initial setup of the machines
Setting up the File Server
On the File Server, create a folder that will serve as the project root folder for Aximmetry. For example, you can name it "AximmetryProjects" or anything you like. Share this folder with full access for all users on the network. Make the access to all users absolutely sure before your start installing Aximmetry instances.
Installing Aximmetry on all the machines
Aximmetry Broadcast SE/DE Edition has to be installed on all controlling, renderer, and designer machines.
In the case of a DE Edition, Unreal Engine for Aximmetry has to be installed on the renderer and designer machines. (It is not necessary to install it on the controlling machines since they will not perform any actual rendering.)
Common Library, and optionally other libraries, have to be installed into the shared folder of the File Server.
Downloading all the necessary files
Since you will have to install many instances of Aximmetry it is recommended to pre-download all the necessary installers and use them multiple times. To do that log in to your My.Aximmetry account, find your license and click:
Then select Packages from the main menu, find COMMON LIBRARY and click:
Optionally you might want to download the other libraries as well for learning purposes. However they are not mandatory.
Installing Aximmetry SE/DE
This has to be done on all
- controlling machines
- renderer machines
- designer machines
Start the downloaded Aximmetry_Broadcast_XX_XXXX.X.X.exe and follow the instructions.
When asked for Projects folder, specify the shared folder on the File Server, e.g.:
Uncheck all libraries to prevent them to be downloaded and installed (you will install them separately from the already downloaded files):
When asked about Unreal Engine choose No to prevent it to be downloaded and installed (you will install it separately from the already downloaded file):
Installing Unreal Engine for Aximmetry
Only applies to Aximmetry DE Edition.
This has to be done on all
- renderer machines
- designer machines
Start the downloaded Unreal_Engine_for_Aximmetry_XXXX.X.X.exe and follow the instructions.
Installing libraries on the File Server
Do this from one of the controlling machines. This has to be done only once.
Double-click the downloaded Common_Library_XXXX.X.X.xpack file. The Aximmetry Installer application will start. Click INSTALL.
Since the projects folder is directed to the shared folder on the File Server, the application will copy the files there.
If you downloaded other packages as well do the same procedure with them.
Ensuring access to shared device configuration
In the shared projects folder on the File Server create a folder named DeviceSetups manually. E.g. based on the example above it will be at \\FileServer01\AximmetryProjects\DeviceSetups.
When this folder exists, it means that all Aximmetry instances on the controlling, renderer, and designer machines will see the same shared set of device configuration data, Calibration Profiles and camera presets (see below), instead of using a local user-specific set of them.
Setting up the controlling machines
Note that if you use multiple Windows user accounts you have to perform these steps for each user.
Start Aximmetry Composer.
Go to the Preferences section. Make sure that the Project root folders list contains only one element and it the path of the shared folder on the File Server.
When you installed Aximmetry you already set this path. However the installer only set it for the current Windows user. If you switch to another user account you will see a default path here. In this case double-click the path and specify the shared folder to replace it.
Then go to the Remote Renderers section. Make sure that Local rendering is OFF, while Remote rendering is ON. This means that the controlling machine itself will not perform any rendering, it only controls the renderer machines which will do the actual work.
Select Edit / Preferences or press Ctrl + P.
Go to the Rendering section and select the Frame size and Frame rate that you generally use in your studio system:
Then go to the Channel Matrix section and check Unified multi-machine setup. This is the simplest way to ensure that output #1, #2, etc. means the same thing on all renderer machines when running a scene.
You can close Aximmetry Composer.
Setting up the renderer machines
Renderer machines usually reside in a separate IT room and no direct access through monitor/keyboard is provided. Therefore log in to any of the controlling machines and use Remote Desktop to access the renderer machines.
Start Aximmetry Launcher from the Start menu. This application has to be always running on all renderer machines. It is the one that provides the connection between the controlling and the renderer machines. It is a user-level application so you have to keep logged in to Windows when you exit Remote Desktop.
Start Aximmetry Renderer Config from the Start menu.
In the Video Outputs section find the SDI output device through which you want to output the final composite image.
Assign index #2 to this device. It's IMPORTANT TO REMEMBER that you have to select #2, not #1. The reason is that the recommended standard wiring of Aximmetry scenes sends a preview/editing screen to output #1 and the final picture to output #2.
In the Mode field of the device click the three-dot button and select the video mode you generally use in your studio system:
Finally, check the Sync checkbox beside the device. IT'S VERY IMPORTANT. This will synchronize the rendering frame rate of the machine to the selected video mode.
Now go to the Device Mapper section and select the Video section:
For slot #1 select the SDI input device from which the camera input will be received. Leave mode on AUTO.
Optional: if you plan to use any auxiliary video inputs, for example for feeding virtual screens, map them to the #2, #3 etc. slots:
Setting up the tracking systems
If a given tracking system is TCP based (e.g. NCam) then it does not need a special setup, all renderer machines will be able to connect to it.
If the given tracking system is UDP based (e.g. Free-D, Stype, Mo-sys, TrackMen, etc.) then its target IP has to be set either to broadcast or multicast IP. It means that all renderer machines will be able to receive the signal of all cameras.
If the tracking system's protocol includes a camera ID in the UDP packet (e.g. Free-D, Mo-sys) then all the systems of the same type can send the signal to the same target port, but they have to be set to different camera IDs.
If the tracking system's protocol does not include a camera ID in the UDP packet (e.g. Stype, TrackMen) then all the systems of the same type have to be set to different target port numbers.
Lens and tracking calibration
For each of your cameras with a tracking system, you must have the lens data (FOV, distortion, etc.) and the data describes the relation of the tracker to the camera (we call it "tracking calibration").
Some tracking systems, like Stype, Mo-sys, NCam, Trackmen, etc. provide their own calibration method performed by their own technicians. During the shooting these systems send full calibration data along with the positional data, so you do not need any additional setup in Aximmetry.
Other tracking systems, like the ones using Free-D, cannot send full calibration data, because the protocol does not allow it. They only send raw zoom/focus encoder data. In this case, you have to perform the calibration with Aximmetry's own Camera Calibrator application (see more info). The result of it will be a Calibration Profile file (stored in the shared DeviceSetups folder, see above) for each camera.
Defining camera presets in Aximmetry
In order to be able to route the camera tracking signals easily from Aximmetry, you have to define camera presets. It means that for each of your physical cameras you create a preset that contains
- a friendly name
- the parameters of the associated tracking system
- and the Calibration Profile that applies to that camera (only in the case of Free-D-like protocols).
Start Aximmetry Composer on one of the controlling machines. Go to the Remote Renderers section and click Manage Cameras.
Then click Add:
Give any friendly Name that makes it easy to identify the preset later:
Then click the three-dot button of the Tracking field:
Select the type of tracking system that is mounted to the camera in question. Let's assume it is Stype:
Double-click the item or click OK.
The different tracking systems have different sets of parameters. In the case of Stype, you only need a port through which its UDP packets are received. Specify the same port number you specified as the target port when you set up the specific Stype system that belongs to this camera.
Since Stype has its own internal calibration system you do not have to specify any Calibration Profile here. Just click OK.
The first preset has been added to the list.
As a second example let's define a camera with Free-D tracking. Repeat the same steps, but choose Free-D from the list.
Besides the UDP port, it also has a Camera ID parameter. Again set these to the same values you set up the tracking system with.
In the case of Free-D, you also have to specify a Calibration Profile. Click the three-dot button in the Calibration Profile field:
The list of profiles you previously created with Aximmetry Camera Calibrator appears. Select the one that applies to this camera.
Double-click the item or click OK.
You have the full preset, click OK.
Suppose you have ten cameras, two per studio, six with Stype, and four with Free-D. Then your final preset list will look something like this:
Click OK to save the list.
Using the system when shooting a show
Log in to the controlling machine associated with the studio you want the shooting performed in.
Start Aximmetry Composer.
Go to the Remote Renderers section. The list of all the available renderer machines will be populated automatically.
means that the machine is currently free to use; it is not used by any other controlling machine.
means that the machine is currently occupied; it is rendering for another controlling machine.
Suppose you want to do a two-camera shoot in your studio. For that select, any two of the Idle renderer machines and assign them the #1 and #2 indices.
Please note that upon changing an index the list is automatically reordered. The machines with indexes will always be listed at the top ordered by the index.
After selecting Axi-Renderer-05 and 06 as #1 and #2 you will see this:
This means that later on your Aximmetry UI the Remote #1 and Remote #2 designations will refer to these two machines.
Routing tracking systems dynamically
The next step is assigning the cameras you will work with to the selected renderer machines. For that simply select the camera preset that belongs to the desired camera from the Cameras drop-down list.
Do the same for the other camera as well. You will get:
PLEASE NOTE that this step only takes care of the routing of the tracking system signals, not the camera video signals themselves!
At this point you have finished setting up the remote renderers in Aximmetry, you can click Start.
Note that Aximmetry remembers your choices. Next time you start Aximmetry you will see the same assignments in the list.
However it is possible that you will see something like this:
The red label indicates that one of the renderer machines you previously used is now occupied by another studio. In this case, you simply have to assign index #2 to another free machine.
It is also possible that you get something like this:
means that the machine is currently unreachable; it is either down or has connection issues. This should not occur normally. In this case, you have to do the same: select another machine.
Routing cameras and other SDI signals dynamically
The routing of SDI signals cannot be controlled from Aximmetry. It has to be arranged separately on the SDI matrix.
The proper settings of the virtual scenes
In order to have all the settings described above in this document work properly you have to make sure that in all loaded Aximmetry scenes the input and output parameters are set in the following way.
Note that you only have to do this setup once for each scene. Then you save the scene, and these setting will always apply after.
Go to the INPUTS control board.
For all INPUT X panels make sure that both Camera Device and Tracking Device are set to Mapped: #1. This ensures that the input mappings you did on the renderer machines and the selected camera presets are in effect on all machines.
For each INPUT X panel select a corresponding renderer machine in the Engine property. This assigns the processing of the corresponding input to the selected machine.
....... and so on depending on how many renderers you use.
Go to the CAMERAS control board.
On the SELECT CAMERA panel set all the Cam X Engine property to the corresponding renderer machine.
Please follow this documentation.