Immersive Rooms (free mode)

Multiple projected walls, floor, ceiling - using standard cameras (not fisheye)

Immersive rooms utilize multiple projectors to create an engaging and enveloping environment. These projectors work in unison to display high-resolution, panoramic visuals across the walls, floor, and sometimes the ceiling of a room.

By carefully calibrating and aligning the projections, the experience is seamless, making users feel as though they are part of the scene. These setups are commonly used in simulations, virtual reality experiences, educational environments, and artistic installations, offering an unparalleled level of immersion.

1. Prerequisites

As usual when dealing with autoalignment, a proper projector lineup and projector configuration is the key for best image quality as well as for a precise alignment and robust recalibration.

Projectors:

  1. Make sure, all projectors are mounted properly, creating an overall sharp and focussed image

  2. When using ultra-shortthrow projectors, do not tilt them, as the loss of focus and brightness cannot be compensated properly!

  3. To increase the blending quality, make sure the overlaps are covering from bottom to ceiling

Camera:

Typical immersive rooms consists of several walls, eventually using the floor and ceiling as projection surfaces as well.

In this tutorial we cover the usage of standard cameras or manual calibrations.

Calibration can be done

  • with one mobile camera, that changes it's position

  • entirely manual setup (no camera)

  • 1 camera per wall => this enables fully automated recalibrations

Computer:

Based on the content, the configration of the GPU must made accordingly. For any case (including video playback) we encourage the use of NVIDIA Mosaic as it ensures a perfect synchronized, tearing-free result and provides a massive performance-boost for any other application running on top of it.

For using NVIDIA Mosaic all projectors must have the same resolution, framerate and orientation.

When embedding warping & blending using NVIDIA Mosaic, it is of utmost importance to replicate the physical topology of the projectors within the topology of the NVIDIA Mosaic:

  • Projector cabling to the GPU must follow their physical lineup (left projector => GPU output 1, next projector => GPU output 2 and so on)

  • Match orientation: Portrait mode mounted projectors must have portrait mode in NVIDIA

Video Content:

When playing back video, consider the requirements of the playback application. Typically, content for the walls and floor/ceiling is available separately.

The simplest procedure is to have each projector recognised as a separate display in Windows. The more projectors that are connected to a computer (especially with multi-GPU configurations), the more likely it is that performance problems will occur in this case.

It can therefore be useful to use NVIDIA Mosaic or similar procedures to increase performance. Exaplay is particularly flexible: here, all projectors can be combined into a single Mosaic and are automatically assigned correctly in Exaplay based on the VIOSO calibration.

Desktop Hooking on NVIDIA GPUs:

To ebmed warp&blen in the Windows Desktop, an NVIDIA Mosaic configuration is required. You need to set up one mosaic that contains all projectors.

Keep in mind the relation between the Mosaic topology and the content to be displayed. While this is straight forward on configurations with walls only (see 2.1. Walls only), it's a more complex consideration for configurations including floor and ceiling (see 2.2. Walls and floor + ceiling)

2. Calibration strategies

It is important to know the content before you design the calibration procedure. Consider some generic approaches:

2.1. Walls only

This configuration consists of 2 or more walls (typically up to 4), and one content that is displayed across all walls. Content can be a video or the Windows Desktop, that is warped & blended uing NVIDIA Quadro GPUs features.

  • As reference content, use 1 frame of the content (when delivered as video)

  • If the content is to be mapped precisely to the edges between the walls, the reference content must show the boundaries of the walls using lines or other indicators

  • If no content is avaliable, create a testpattern per wall, that matches the aspect ratio of each wall.

Do not use testpatterns just in projector resolutions, this is misleading. Make the testpattern matching the aspect ratio of the walls by all means. Learn more about creating testpatterns here: Testpattern

Resulting calibration strategy:

  • Several calibrations (one per wall)

  • At export, calibrations are stitched together into a single file

2.2. Walls and floor + ceiling

This configuration consists of 2 or more walls (typically up to 4) and projection on the floor and/or eventually the ceiling. This leads typically to at least two different contents: One content for the walls and a different content for floor (and ceiling).

  • For the walls mostly one content is provided. Let's call it "the view on the walls".

  • For the floor/ceiling, another content is provided, the "view on the floor/ceiling".

  • Both views must fit together - in terms of resolution and scaling, so that you can use these contents to align walls, floor and ceiling.

Resulting calibration strategy:

  • Several calibrations (one per wall and floor and ceiling)

  • At export

    • Calibrations for the walls are stitched together into a single file

    • Calibrations for floor and ceiling are exported separately from the walls

  • At playback

    • One content on all the walls

    • Another content on floor and ceiling

2.3. Camera strategies

In these kinds of immersive rooms we consider to calibrate either with a single camera which changes position several times. Instead of using a camera, also a manual approach is possible. In both of these cases, recalibration requires an operator onsite who can carry out all subsequent steps.

For a fully automated, recalibratable installation, a dedicated camera must be installed for each wall (in this example we need 3 cameras thereof). Please note, that webcams do not work, as muliple webcams on a single PC cannot be addressed properly. The use of computer vision cameras therefore is a must.

3. Calibration

In this chapter we cover the handling of typical immersive rooms using the free mode. With VIOSO 6.1. we added features to faciliate the handling of such setup with various new features.

3.1. Configuring Free Mode

This guide covers the operation in "Fee Mode", so switch to free mode if not done already:

In this example, we look at a setup of a room with 4x5m floor and 2 walls at a height of 2m. Each wall as well as the floor is covered by 2 projectors. In our example we assume that each projector has a resolution of 1920 x 1200 pixels (WUXGA), thus resulting in a 16:10 aspect ratio.

To ease such kind of setups, VIOSO 6 provides "channels", where each channel represents a calibration. In this case, you need at least 3 channels to display all calibrations. To set the number of available channels, go to Menu - Options - Settings - Startup options and set the number of channels appropriate (requires restart of VIOSO 6):

Handling of multiple channels (=displaying several calibrations at the same time) is available from VIOSO 6.1

3.2. Scanning

The scanning procedure is performed three times: one calibration per wall. Depending on the camera strategy, either one camera is used and changed in place (no recalib), or each wall has a dedicated camera assigned.

In the following example we assume that all projectors are combined into a single NVIDIA Mosaic group, where all 6 projectors are assigned to walls & floor like this:

To match this Mosaic setting, make sure to split the Mosaic display in VIOSO 6 according to the same topology (Menu "Options" - "Screen Split"):

After that, click "Calibrate" and select the projectors and camera from the list. You can choose "man

Scan #1: Left Wall

Select the projectors and camera from the list:

Please do not forget to provide a proper compound name - it will help you in subsequent steps.

You can choose "manual setup" and not selecting a camera instead.

Follow all instructions regarding the scanning procedure as outlined here: Scanning

As a result, we have a new calibration called "Left Wall" in the list of the targets. To have this result displayed, select channel 1 and "Left wall" as target and click "Activate". The VIOSO testpattern should show up, filling the left wall completely:

You can now fine-tune the result (e.g. match the corners) based on the integrated testpattern or a custom testpattern that you place in the Player of VIOSO 6. There is a dedicated playlist for each channel.

After completing everything, save this result in an *.SPS file.

Scan #2: Right Wall

If you are using a temporary placed camera, now it's time to put the camera on it's new position. Make sure, that the connection is not lost to the computer, otherwise you might need to restart VIOSO 6 to recognize the camera again.

Click "Calibrate" again and select the projectors that are covering the right wall.

After doing the appropriate calibration for this wall, save the calibration (overwrite the existing file) and set up a second channel to be displayed like this:

Do all required measures to optimize this result and save again, overwriting the existing *.SPS file.

For configurations with more walls, repeat this step until all walls are calibrated and represented in the "target" drop down.

Scan #3: Floor

The last calibration in this example is dedicated to the floor projection. It can be also camera based, but often floors are handled manually since mounting cameras can be an issue.

After doing the appropriate calibration for this wall, save the calibration (overwrite the existing file) and set up a third channel to be displayed like this:

As a result, you now have all calibrations displayed. By changing through the channels, you can easily make adjustments to the overall warping, blending etc.

Do not put too much effort in the overall warping at this step, as it requires the final content mapping. See next chapter.

4. Content Mapping

The mapping of the content is a sometimes underestimated task. As long as all walls are symmetric to each other, the content is equally distributed, which is pretty straight forward.

4.1. Calculating content distribution

In our example we have walls with different dimensions and also two contents. Wall content and floor content.

First, we should determine the pixel space of each content based on the room measures. We know the image height (2m) and the corresponding pixels (1200, as all projectors are WUXGA), which leaves the width of each content in question. We can easily calculate the pixel width of each content by using width/height relation based on the 1200 pixel projector image height:

widthpx=widthwallwidthtotalpxtotalwidth_{px} =\frac {width_{wall}} {width_{total}}*px_{total}
SufaceMeasuresPixels

All Walls

9m x 2m

8640 x 1200

  • Left wall

  • Right wall

4m x 2m 5m x 2m

3840 x 1200 4800 x 1200

Floor (10% overlap)

5m x 4m

2160 x 1728

Use our free testpattern generator https://testpatterngenerator.com to create two pictures:

  1. "Walls" (in this example 8640x1200px) => Walls_8640x1200.png

  2. "Floor" (in this example 2160x1728px) => Floor_2160x1728.png

4.2. Applying content distribution to the calibrations

In our example we have 3 calibrations and 2 contents. This is how the content is therefore mapped.

Floor mapping

As we have a 1:1 mapping of the floor content (remember: we assume to get the content for the entire floor as a dedicated video), all we need to do is to load the floor content in the playlist of VIOSO 6. Therefore, we choose the appropriate channel 3 and open it's playlist:

We now should see the floor covered with the testpattern. If the measures are correct and assuming that the warping was done precisely, the pattern should be matching the floor measures, resulting in proper squares and circles:

Wall mapping

The walls are represented as 2 calibrations, but there is only one content to map. To make matters worse, the walls aren't the same width, so we need to make the content mapping aware of which part is being displayed.

For this reason, we have carried out the above calculation and can now apply the calculated values to the content mapping following these steps:

  1. Change to Channel 2 (Right Wall) and assign the "Wall" testpattern we just created:

  2. Change to Channel 1 (Left Wall) and assign the same "Wall" testpattern we just created:

  3. Open Menu - Calibration - Content Mapping and enter the values as follows:

    • Content width: Enter the dimensions of the content as played back

    • Select "Left Wall" (first compound):

    • Select "Right Wall" (second compound):

    • Click "Apply" and close to save this mapping

Please note, that 1:1 mappings (like the floor in this example) do not need to be mapped here, therefore they remain "unused".

These are example values. Please adjust according to your setup.

Once these values have been applied, we obtain a uniform and linear content display. In this example in particular, it becomes clear that content mapping of this kind is essential for correct display due to the uneven wall widths.

4.3. Fine Tune and final saving

All channels should now be active and produce a representative output on all projectors. This is a situation in which excellent fine-tuning can now be carried out:

  • Switch through the channels and adjust the warping of each calibration successively so that the content transitions between walls, floor, ceiling etc. fit exactly.

  • You can also edit the calibration properties such as blending, colour settings etc. in this mode.

  • Use the option of using a list of different test images for each calibration. This allows you to try out different content scenarios and adjust the parameters accordingly.

When everything is completed to your satisfaction, save the work again as a *.sps file.

5. Using the calibration

How to proceed after the calibration is done depends on the use case and content to display. We look at two typical scenarios:

  • Playing back video content In the following we explain how to export to Exaplay 2 to run several videos (walls & floor) matching the calibration. This workflow is very similar to other players or media servers supporting VWF-processing

  • Applying to a NVIDIA GPU Professional NVIDIA graphics cards ("Quadro") support processing of warp, blend and overlap generation. Using this feature, the windows desktop is mapped onto the immersive room. Typically, custom made applications (e.g. with Unity3D) are then launched to take over the whole content rendering process.

5.1. Option A: Exporting to Exaplay 2

We use the export to Exaplay as an example how to treat the exports of multiple compounds.

The workflow to export that is shown here is also applicable to other 3rd party media servers like Pixera or Vertex (might be slightly different, depending on the individual configuration of each show).

We need to do 2 exports: one for the floor and one for the walls, where all calibrations for the walls are combined into one export file.

Exporting a compound (floor)

Use when one calibration matches exactly one content:

  • Choose 1 calibration only

  • Check "keep splits"

  • Provide a descriptive name (will be used without change)

  • Export to [USER]/Documents/Exaplay2/targets

As a result, we get the file "ImmersiveRoom Floor.vwf" created in Exaplay's target directory.

Exporting multiple compounds (walls)

Use when several calibrations are assigned to one content.

  • Multi-Select all calibrations that are mapped to one content

  • Check "keep splits"

  • Check "collected export (all in one)"

  • Provide a descriptive name (will be used without change)

  • Export to [USER]/Documents/Exaplay2/targets

As a result, we get the file "ImmersiveRoom Walls.vwf" created in Exaplay's target directory.

Using the calibration in Exaplay 2

Launch Exaplay and start a fresh project.

In Targets/System set the same split on the detected output as you did for the calibration (see above).

Create two screens: "Walls" and "Floor". We recommend to give the appropriate screenfiles a telling name as well (screenfield "Walls" and screenfield "Floor").

Screen "Walls"

According to our example, make the screen using the first 4 slices of the Mosaic group.

Assign the calibration "Immersive Walls.vwf":

Screen "Floor"

According to our example, make the screen using the last 2 slices of the Mosaic group.

Assign the calibration "Immersive Floor.vwf":

Assign and play content

After creating the screens and assigning the calibration, the show is ready for playback. Create either a timeline where each content is placed on a track or using two cuelists.

Make sure to have one track or cuelist outputting the content dedicated for the walls on screeenfield "Wall" and another track or cuelist outputting on screenfield "Floor".

5.2. Option B: Applying to NVIDIA Mosaic

Instead of exporting the calibration to Exaplay or 3rd party software, the calibration can be applied to the Windows Desktop, if everything happens on one local device.

Make sure that all calibration-specific tasks are done, everything is fine tuned and ready to be used in production. After that, switch to "NV Warp" mode:

Confirm both popup dialogs (overwriting the existing calibration) to continue with the Desktop embedding.

Last updated