direct.cluster.ClusterConfig
import direct.cluster.ClusterConfig
- ClientConfigs = {'composite': [{'display name': 'master', 'display mode': 'client', 'pos': LVector3f(0, 0, 0)}, {'display name': 'left', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'right', 'pos': LVector3f(0.105, -0.02, 5), 'hpr': LVector3f(0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}], 'mono-cave': [{'display name': 'la', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(51.213, 0, 0), 'focal length': 0.809, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'lb', 'display mode': 'client', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'lc', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-51.675, 0, 0), 'focal length': 0.82, 'film size': (1.0, 0.83), 'film offset': (-0.0, 0.173)}], 'seamless-cave': [{'display name': 'master', 'display mode': 'client', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'la', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(51.213, 0, 0), 'focal length': 0.809, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'lb', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'lc', 'pos': LVector3f(-0.105, -0.02, 5), 'hpr': LVector3f(-51.675, 0, 0), 'focal length': 0.82, 'film size': (1.0, 0.83), 'film offset': (-0.0, 0.173)}, {'display name': 'ra', 'pos': LVector3f(0.105, -0.02, 5), 'hpr': LVector3f(51.675, 0, 0), 'focal length': 0.82, 'film size': (1.0, 0.83), 'film offset': (0.0, 0.173)}, {'display name': 'rb', 'pos': LVector3f(0.105, -0.02, 5), 'hpr': LVector3f(0.37, 0, 0), 'focal length': 0.815, 'film size': (1.0, 0.831), 'film offset': (0.0, 0.173)}, {'display name': 'rc', 'pos': LVector3f(0.105, -0.02, 5), 'hpr': LVector3f(-51.213, 0, 0), 'focal length': 0.809, 'film size': (1.0, 0.831), 'film offset': (-0.0, 0.173)}], 'single-server': [{'display name': 'display0', 'display mode': 'client', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}], 'three-server': [{'display name': 'master', 'display mode': 'client', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}, {'display name': 'la', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}, {'display name': 'lb', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}], 'two-server': [{'display name': 'master', 'display mode': 'client', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}, {'display name': 'la', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}], 'ursula': [{'display name': 'master', 'display mode': 'client', 'pos': LVector3f(0, 0, 0), 'hpr': LVector3f(0, 0, 0)}, {'display name': 'l', 'pos': LVector3f(-0.105, 0, 0), 'hpr': LVector3f(0, 0, 0), 'focal length': 15, 'film size': (13.33, 10), 'film offset': (0.105, -1)}, {'display name': 'r', 'pos': LVector3f(0.105, 0, 0), 'hpr': LVector3f(0, 0, 0), 'focal length': 15, 'film size': (13.33, 10), 'film offset': (-0.105, -1)}]}
A dictionary of information for various cluster configurations. Dictionary is keyed on cluster-config string Each dictionary contains a list of display configurations, one for each display in the cluster
Information that can be specified for each display:
display name: Name of display (used in Configrc to specify server)
display type: Used to flag client vs. server
pos: positional offset of display’s camera from main cluster group
hpr: orientation offset of display’s camera from main cluster group
focal length: display’s focal length (in mm)
film size: display’s film size (in inches)
film offset: offset of film back (in inches)
Note: this overrides offsets specified in DirectCamConfig.py For now we only specify frustum for first display region of configuration
TODO: Need to handle multiple display regions per cluster node and to generalize to non cluster situations