Planar Projection#

Describes a projection for the Viewport that is a flat projection described by simple frustum, which may be asymmetric. If you are building a new configuration file and do not know which projection type you should use, this type is probably the right one.

  • type
    string = “PlanarProjection”

    Defines the type of this projection.

  • fov
    one of the following

    This object describes the field of view used the camera in this projection. The angles for the field of view can be provided in two ways. Either by providing the up, down, left, and right angles, which enables asymmetric frustums, or alternatively providing horizontal (hfov) and vertical (vfov) angles for symmetric frustums.

    Option 1

    • hfov
      number [0.0, \(\infty\))

      The angle (in degrees) covered by the camera in the horizontal direction. This is a symmetric frustum around the center and provides the same result as providing the left and right values with the half-angle.

    • vfov
      number [0.0, \(\infty\))

      The angle (in degrees) covered by the camera in the vertical direction. This is a symmetric frustum around the center and provides the same result as providing the up and down values with the half-angle.

    Option 2

    • left
      number

      The angle (in degrees) that is covered by the camera between the central point and the left border of the viewport. The left and right angles added together are the vertical field of view of the viewport.

    • right
      number

      The angle (in degrees) that is covered by the camera between the central point and the right border of the viewport. The left and right angles added together are the vertical field of view of the viewport.

    • down
      number

      The angle (in degrees) that is covered by the camera between the central point and the bottom border of the viewport. The down and up angles added together are the vertical field of view of the viewport.

    • up
      number

      The angle (in degrees) that is covered by the camera between the central point and the top border of the viewport. The down and up angles added together are the vertical field of view of the viewport.

  • distance (optional)
    number

    The distance (in meters) at which the virtual render plane is placed. This value is only important when rendering this viewport using stereocopy as the distance and the User’s eyeseparation are used to compute the change in frustum between the left and the right eyes.

  • orientation (optional)
    orientation

    Describes a fixed orientation for the virtual image plane. This can be provided either as Euler angles or as a quaternion.

  • offset (optional)
    vec3

    A linear offset in meters that is added to the virtual image plane. Must define three float attributes x, y, and z. The default values are x=0, y=0, z=0, meaning that no offset is applied to the image plane.

Example#

Example file (download)#
{
  "version": 1,
  "masteraddress": "localhost",
  "nodes": [
    {
      "address": "localhost",
      "port": 20400,
      "windows": [
        {
          "pos": { "x": 50, "y": 50 },
          "size": { "x": 1280, "y": 720 },
          "viewports": [
            {
              "projection": {
                "type": "PlanarProjection",
                "fov": { "down": 35, "up": 15, "left": 10, "right": 70 },
                "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 }
              }
            }
          ]
        }
      ]
    }
  ],
  "users": [
    {
      "eyeseparation": 0.06,
      "pos": { "x": 0, "y": 0, "z": 4.0 }
    }
  ]
}

image

Example file (download)#
{
  "version": 1,
  "masteraddress": "localhost",
  "nodes": [
    {
      "address": "localhost",
      "port": 20400,
      "windows": [
        {
          "pos": { "x": 50, "y": 50 },
          "size": { "x": 1280, "y": 720 },
          "viewports": [
            {
              "projection": {
                "type": "PlanarProjection",
                "fov": { "hfov": 80, "vfov": 50.534 },
                "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 }
              }
            }
          ]
        }
      ]
    }
  ],
  "users": [
    {
      "eyeseparation": 0.06,
      "pos": { "x": 0, "y": 0, "z": 4.0 }
    }
  ]
}

image

Example file (download)#
{
  "version": 1,
  "masteraddress": "localhost",
  "nodes": [
    {
      "address": "localhost",
      "port": 20400,
      "windows": [
        {
          "pos": { "x": 50, "y": 50 },
          "size": { "x": 1280, "y": 720 },
          "viewports": [
            {
              "projection": {
                "type": "PlanarProjection",
                "fov": { "hfov": 80, "vfov": 50.5340 },
                "orientation": { "yaw": -50.0, "pitch": 25.0, "roll": 45.0 }
              }
            }
          ]
        }
      ]
    }
  ],
  "users": [
    {
      "eyeseparation": 0.06,
      "pos": { "x": 0, "y": 0, "z": 4.0 }
    }
  ]
}

image