Side View

From SIMboxWiki
Jump to navigation Jump to search

Side view is a SIMbox simulation feature that allows the SIMbox graphic engine to utilize multiple computers or multiple CPU cores to render its content on large monitor arrays.

The graphic engine does support rendering multiple monitors from a single computer running a single process. However, each monitor takes quite a bit of computational power to render. In order to maintain a good framerate using the current technology, a high-end computer can realistically support no more than 3 to 4 monitors that are rendering 3d scenes. This is unlikely to change given current computer and graphic card technology. Side view can extend the number of monitors supported and make more efficient use of single-computer-multi-monitor setups.

This feature is available for Simigon graphic engine version 5 (SGEV5) from SIMbox version 5.6.1 (with hotfix level 2) and up.

Why use side view

Certain situations require that the number of monitors rendered would be more than a single computer can support. Up to the development of this side view feature such a system could only have been created based on the simulation's DMT feature. However, the DMT approach had several drawbacks:

  1. Implementing the system through DMT (Distributed Mission Training) requires large volume of information to be transferred between computers. This would tax the DMT network and could potentially create an information bottleneck.
  2. DMT requires a setup process to ensure that all the data which needs to be communicated over the network is actually communicated. This setup is content specific, which means that every new content requires its own setup process.
  3. Because of the DMT mechanism, monitors rendered in DMT would always be a couple of frames behind the main computer. This is problematic for situations where a high level of synchronization between monitors is required, such as with rendering dome or panoramic-like environments.

On the other hand, the side view feature does not use the DMT protocol. It uses a different protocol to transmit the information, requiring far less bandwidth to be transmitted. The feature requires a very simple setup which is non-content specific. It can also reach a high level of frame synchronization between windows rendered on the different computers.

The side view feature is meant to extend the rendering capabilities of a single computer. It is by no means a replacement to the DMT system. The DMT feature enables communication between computers. Each computer running its own simulation process. Each computer capable of simulating and controlling different entities in the scenario.

On the other hand, under the side view system, a single computer runs the simulation while communicating with several client computers. The client computers run a stripped down program containing only the graphic engine and a network communication component. The clients have no simulation capabilities. They are drones, used only to render the visual information received from the server.

Multi process rendering

A secondary benefit of this system is that it in certain cases it can be used to improve the framerate of stand-alone computers rendering multiple monitors. Using this method the simulation opens its windows normally. However, behind the scenes the multiple Side-View client programs are activated. Each client program is then assigned to a monitor or pair of monitors, which it renders independently of the simulation.

Note however that this feature is effective only for strong computers with more than one graphic card. In situations where the computer has limited computational resources, the framerate may drop or jittering issues may ensue.

System Setup

Hardware Setup and prerequisites

Network

The side view network requires a high speed broadband connection to communicate the visual data between computers. Computers running side view require to be connected to each other by a network supporting at least 1 gigabit per second transfer speed.

For best results, it is recommended that this network would be a separate network from the DMT/VOIP network. This would ensure a constant high data transfer rate.

Monitors

All monitors connected in the same side view network must have the same monitor refresh rate. Failing to set the same refresh rate to all monitors may cause severe framerate jittering effect.

Software prerequisites

Content layout

The system relies on a setup of a single server computer with clients connected to it. Both the clients and the server have the ability to render monitors. However the client will always be limited by the server's framerate. It is advised to keep the server rendering relatively simple scenes, such as a single monitor rendering an instrument view or an outside view. Client computers should be able to handle 2 monitors each without framerate loss.

Note: The server machine enforces the KnowBook graphic settings, by passing the graphic settings to all of the connected clients. Terrain settings are not enforced from the server to the clients. Any changes in terrain settings should be applied manually to each participating client machine.

Simulation content

Simulation content must be up to date on all machines so that the render visual result will be the same on all client machines. Simigon offers several deployment solutions out of the box, with future plans for automatically updating content behind the scenes.

Side view configuration

Side view configuration tool

The side view configuration tool lets you set up side-view systems. There are 2 ways to access this tool.
Option A: You can open it from KnowBook folder in start menu (Knowbook -> Settings -> Simulation Settings).

2a.png
Select the Graphic Engine Tab, and click the 'Open' button under 'Side View Configuration Tool'. 

2b.png

Option B
: Navigate to your KnowBook\Bin folder to locate the DistributedRenderingConfigTool file. You can create a Desptop shortcut to this file. 2c.png
Double-click the file to run the program - the Side View Configuration Tool appears.


The side view configuration tool is used to configure both the server and client programs. It is also used to run the client program. Depending on your system and network setup, the tool may need to be used on each computer individually to setup the side view properly .


SideViewConfiguration.png

The configuration tool provides the following options:

  • Server IP / name - (Relevant for clients only) The network (DNS) name or IP of the side view server computer. On a SideView server machine, this field should be empty.
  • Network adapter - (Relevant for servers only) When server is on a computer with multiple network adapter cards. This field allows to choose on which adapter to create the side view's network connection. This setting may be important for cases such as when setting up computers with separate networks for DMT and side view.
  • Server data port - The TCP port to which the server will open for incoming client connections. Note that a second sync port will be created with a one number above the data port. This port is used for syncing the rendering of frames.
  • Number of clients - (Relevant for servers only) The number of clients that the server should expect to connect to it. This number does not include clients that may be created from using Multi process rendering.
  • Server timeout - The maximum amount of seconds the server awaits for all clients to connect to it. If the total number of clients (see Number of clients) fail to connect before the time expires, the simulation will pop an error message and exit.
  • Client timeout - After connecting to the server, this is the number of seconds the client awaits for server responses before the client assumes the server disconnected and shuts itself down.
  • Multi process rendering - Checking this option means that the simulation will use extra processes on the same computer to render multiple monitors.
    • Disabled - Disables multiprocessing, the graphic engine rendering will be performed as part of the simulation process.
    • Per adapter - A new process will be created for each graphics adapter. There's a limit to 2 monitors per adapter - if there are more than 2 monitors connected to a single adapter then another process will be created.
    • Per monitor - A new process will be created for every connected monitor.
    • Per machine - A single process will br created per machine.
    • Default - Default settings - Per adapter.
  • Use helper process only - All rendering will be done in external render processes. When this option is unchecked the simulation process itself will process the scene as well and be counted as a rendering process.
  • Show cursor - (Relevant for clients only) Tells whether to show or hide the cursor inside the client windows.
  • Developer mode - Sets certain options to allow easier debugging of side view environments. This includes opening the client windows in a windowed mode. This allows easier access to the desktop on client computers. It also removes certain timeout checks. This prevent the side view network from disconnecting while halting execution for debugging purposes.
  • Sync terrain processing - Activates a system that ensures that terrain LODs will change simultaneously across all computers in the network. Note that this system has the potential to increase the loading time of terrain LODs.
  • Async receive - Client optimization. Receives network packages on a separate thread to reduce network related contentions.
  • Scalable SDK Mode - When running side view with ScalbaleSDK, the client machines need to set this to "On".
  • Scalable SDK Path - Configures the path to the ScalbaleSDK mesh files (.ol files).
  • Monitors - Allows to select and to name the monitors participating in the side view environment.
    • Monitor Name - Used to set the name of the monitor as it will be identified in the simulation. Note that monitor names in a side view network must be unique.
    • Active - Used to set whether to use the given monitor in the side view network. Note that the main monitor on the server computer must be used. Main monitor can be identified by its position of 0x0.
    • Position - (Read only) Position of the monitor as set in the windows monitor setup.
  • Identify - Places the name of the monitor on the top of each monitor enabling to identify them.
  • Load - Load a new configuration.
  • Save - Saves the current configuration. Note that each machine must save it's configuration.
  • Run client - (Client mode only) A toggle button that once pressed will run the client continuously. Note that changes in the configuration tool's options must be saved before the button becomes active.
  • Close - Closes the program

Multiprocess rendering

The simulation supports multiprocess rendering for handling large scenes on multiple monitors. From version 5.7 the default client process is a 64 bit process. This allows better support for large terrains introduced by the support for CDB terrain format. Using mulitprocessed rendering affects several rendering integration APIs:
Agi::RenderVideoCameraToImage - As the render clients are in a different process (and optionally on a different machine), this is not supported in multiprocess.
3rd Party OpenGL Instrumentation - Need to take into account that the instrumentation DLL will be loaded in a separate process.
Also need to compile a matching 64 bit version of the DLL and put it under folder called "\64\" in the same path as the original DLL. (for example: $(SITEC_BIN_DIR)\64)

Simulation and client setup

To run the simulation with a side-view network:

  1. Make sure that the computer you are using has the proper side-view configuration files.
  2. Add the MultiScreen extension collection to your running configuration (or an extension collection derived from the MultiScreen extension collection). Add the "Multiscreen" extension (at the machine level) to the Go command; In KnowBook, select "KnowBook Client -> Tools -> Options -> Launch Parameters" from the main menu. Select Go from the Launch Parameters drop-down arrow, and select the MultiScreen check box.
    1a.png1b.png
  3. Using SIMbox toolkit go to your Multiscreen extension and change the properties GLOBAL_PROP_SIDE_VIEW_CONFIG_NAME and GLOBAL_PROP_SIDE_VIEW_CONFIG_PATH that are within the SceneLayoutManager extension to reflect the name (without ".local.cfg" or "network.cfg") and directory of the configuration file. 

To run the client computers use the Network configuration tool to run the client. If you wish for the computer to automatically run the client process create a batch program with the following command line and add it to the windows startup process.

"[Knowbook Bin directory]\DistributedRenderingConfigTool.exe" -d "[Directory where the configuration is saved" -c "[Configuration name]" -autorun

Setting Layouts

When running the SideView rig for the first time, clients will start up with blank screens. The initial setup is performed from the SideView Server machine by using the main menu Window->Client-Monitor->View selection.

Using each monitor sub-menu you may also create and join master-slave relationships.

Once all displays are configured, save the MultiScreen layout on the SideView Server machine (as #1 for automatic load on startup).

Previous Layouts

Previously saved layouts will not work with the side-view configuration. If you have previous layouts, you should remove the previously saved layouts and then create new layouts from scratch using Side-View configuration.
To remove the previous layouts:

  1. Navigate to C:\Program Files\KnowBook\Sitec\Resource\XML\SceneLayouts.
  2. Delete the existing XML files in the SceneLayouts folder. 

Deployment

For the side view feature to work, every computer, both server and client, must have a configuration files to work from. The side view configuration tool provides the means to create those configuration files.

When saving a side view configuration you will be prompted to provide a directory and a configuration name. Once saved, 2 files will be created "[configuration name].local.cfg" and "[configuration name].network.cfg". The *.network.cfg file will contain values concerning with the network such as: server name, data port, number of clients and so on. The *.local.cfg will contain properties associated with the individual computer, properties such as monitor naming and cursor state.

Each computer in the network must have a different *.local.cfg file. This is because as as stated before monitor names within a network must be unique for all computers. However the same *.network.cfg can be shared among the computers in the same network

If you create several work stations, where each station contains several computer connected with a side view network, equivalent computers within each network should share the same local configuration file. However, all computers within a single work station should share a single unique network configuration file.


Multi process setup

As mentioned above, the multi-process feature allows rendering the content using multiple processes on the same computer. It is best to use this feature on computers with more than one graphic card, where each process is assigned to monitors associated with a different graphic card.