Skip to main content
Skip table of contents

OTW Multi-Viewport

Serial Multi-Viewport Customization Overview


120hz Serial Multi-Viewport (1x2), (2x1)

  • Serial Multi-Viewport (SerialMVPort) generally refers to two 60Hz video outputs driving a single 120Hz display device.
  • The legacy setup is that 60hz viewports are arranged in a side-by-side (2x1) or bottom-and-top (1x2) in a double-wide or double-tall Nova window and run off of a single graphics card.

120hz SerialMVPort (Customizable)

  • In Rel2022.1+, SerialMVPort can now be further customized beyond the two fixed setups. The viewport frustrums in each render window can be positioned and offset independently from one another. 
    • The setup for this isn't much different than the default config, you simply need to make some edits to the cluster.cfg.
  • An example file is provided below; but also there is a table highlighting some key required differences:

Serial Multi-Viewport Configuration


Serial Multi-Viewport Cluster Configuration

The required cluster.cfg setup doesn't differ much from the default serial multi-viewport layout, though the table below highlights key token differences.


Notes about Required Cluster tokens:

CHX_VIEWPORT_LAYOUT

  • When using LAYOUT_2_CUSTOM, both viewports MUST be defined and valid.
    • You also want to contain both viewports within the boundaries of the total framebuffer size, but keep in mind nova will not stop you from violating this!

CHX_VIEWPORT/2

  • The custom viewports are drawn based on 4 parameters passed in via the CHx_VIEWPORT token.
    • Follows format of  <offset posX, offset posY, sizeX, sizeY>
    • The 0,0 screenspace origin is the bottom left corner and "right and up" are considered positive directions.


Below is an example of the default config; meant for a 4k screen.


Custom Serial Multi-Viewport Usage


Custom Serial Multi-Viewport Runtime Operation

Runtime Scenario - Launch an OTW/OTW window with independently set FOVs on your deskside for testing

  1. Setup the cluster.cfg for complete viewport customization → let's say it's two 600x600s in the corners of screen.

    Cluster.cfg SetupVisual Example
    CHX_NAMEOTW_2VIEWPORTS

    The example below is opposite corners on purpose to display that X & Y offset are both possible. 
    To align the Viewports, simply replace the Y-offset "120" with "0" for VIEWPORT2.

    • Note: You can increase the values of the "OFFSET2" tokens for more difference between the FOVs, In this
      example it's meant to be more subtle.






    <--- These blank offsets can be anything; they're zero here to demonstrate with a simple example that they can be set independently.









    CHX_IGMODEOTW
    CHX_VIEWPORT_LAYOUTLAYOUT_2_CUSTOM
    CHX_MVP_INDEPENDENT_FRUSTATRUE
    CHX_WINSIZE_X1440

    CHX_WINSIZE_Y

    720
    CHX_VIEWPORT0 0 600 600
    CHX_VIEWPORT2

    840 120 600 600

    FOV_CHX_X_L                     36.25
    FOV_CHX_X_R36.25
    FOV_CHX_Y_T16.76625
    FOV_CHX_Y_B28.54625
    FOV2_CHX_X_L0
    FOV2_CHX_X_R0
    FOV2_CHX_Y_T0
    FOV2_CHX_Y_B0
    OFFSET_HOR_CHX0
    OFFSET_VERT_CHX0
    OFFSET_ROLL_CHX0
    OFFSET2_HOR_CHX15.0
    OFFSET2_VERT_CHX15.0
    OFFSET2_ROLL_CHX0

  2. Launch Nova using a cmd similar to the ex below:
TEXT
chad.lamfrom@clamfrom-desk /cygdrive/d/tree/database/data
$ D:/software/rel2023.1/built/ci/bin/optimized-x64/nova.exe -c versions/8.0/ren
derOTW.cfg -c versions/8.0/deskside.cfg DB_OVERLAY/DB_GLOBAL_DOD_V21/RELEASE/V21_1/global_dod_v21.cfg OTW_2VIEWPORTS


##########################################
# Channel 26 - OTW SerialMVPort (Customizable independent viewports enabled)
##########################################
CH26_NAME                        OTW_2VIEWPORTS
CH26_IGMODE                      OTW
CH26_VIEWPORT_MODE               MVMODE_SERIAL    # Enable Serial Multiviewport
CH26_VIEWPORT_LAYOUT             LAYOUT_2_CUSTOM       # Enables viewport layout customization
CH26_MVP_INDEPENDENT_FRUSTA      TRUE
CH26_WINSIZE_X                   3840             # Double window width to fit both frames in a pair.
CH26_WINSIZE_Y                   2160              # Double window width to fit both frames in a pair.
CH26_VIEWPORT                    0 720 1440 1440
CH26_VIEWPORT2                   2400 720 1440 1440
CH26_SWAP_INTERVAL               1                # VSync to 60Hz video output(s) (no tearing)
CH26_PIXEL_DEPTH                 32
CH26_ZBUFFER_DEPTH               32
CH26_STENCIL_DEPTH               0
CH26_MULTISAMPLE_MODE            8x
FOV_CH26_X_L                     22.5
FOV_CH26_X_R                     22.5
FOV_CH26_Y_T                     22.5
FOV_CH26_Y_B                     22.5
FOV2_CH26_X_L                     22.5
FOV2_CH26_X_R                     22.5
FOV2_CH26_Y_T                     22.5
FOV2_CH26_Y_B                     22.5
OFFSET_HOR_CH26                  0.0
OFFSET_VERT_CH26                 0.0
OFFSET_ROLL_CH26                 0.0
OFFSET2_HOR_CH26                  -45.0
OFFSET2_VERT_CH26                 0.0
OFFSET2_ROLL_CH26                 0.0




JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.