---
title: "Projector"
description: "API documentation for Projector"
url: https://developer.disguise.one/python-api/docs/projector/
---

# Projector

See also: [Calibration Guide](/plugins/guides/calibration), [Stage Guide](/plugins/guides/stage)

Base class (inherits properties and methods): _[SlcAwareDisplay](/python-api/docs/slcawaredisplay#slcawaredisplay)_

## Properties

#### **\_drawReferencePoints** : _bool_

#### **\_guiState** : _ProjectorGuiState_

#### **\_preferredOutputMode** : _[ProjectorOutputMode](/python-api/docs/projectoroutputmode#projectoroutputmode)_

#### **activeOutputMode** : _[ProjectorOutputMode](/python-api/docs/projectoroutputmode#projectoroutputmode)_ _(Read-Only)_

#### **antiAlias** : _int_

Anti-aliasing technique - makes edges smoother, but reduces performance

_Options: {0: ‘None’, 1: ‘FXAA’, 2: ‘2x MSAA’, 3: ‘4x MSAA’, 4: ‘8x MSAA’}  
UserName: Anti-aliasing_

#### **autoSoftEdge** : _int_

Allows you to turn off Dynamic Blend on individual projectors

#### **autoSoftEdgeMembershipFunction** : _int_

Dynamic Blend Membership Algorithm

_Options: {0: ‘Linear’, 1: ‘Radial’, 2: ‘Linear To Radial’}_

#### **autoSoftEdgeSnapshotted** : _int_

Lock Dynamic Blend snapshot

#### **barnDoorBottom** : _float_

Bottom edge of Dynamic Blend barndoor; increase this to move the edge upwards

#### **barnDoorLeft** : _float_

Left edge of Dynamic Blend barndoor; increase this to move the edge rightwards

#### **barnDoorRight** : _float_

Right edge of Dynamic Blend barndoor; increase this to move the edge leftwards

#### **barnDoorTop** : _float_

Top edge of Dynamic Blend barndoor; increase this to move the edge downwards

#### **blur\_shadow** : _float_

Masked object blur amount

#### **colour** : _[Colour](/python-api/docs/colour#colour)_

The colour of the projector frustum in the visualiser

_UserName: Colour_

#### **config** : _[ProjectorConfig](/python-api/docs/projectorconfig#projectorconfig)_

Open this to enter the quick-calibration interface

_UserName: Configuration_

#### **configAutoZClipping** : _bool_

#### **configLensShift** : _[Vec2](/python-api/docs/vec2#vec2)_

#### **configLensShiftInv** : _[Vec2](/python-api/docs/vec2#vec2)_

#### **configLookAt** : _[Vec](/python-api/docs/vec#vec)_

#### **configLookDistance** : _float_

#### **configManualZFar** : _float_

#### **configManualZNear** : _float_

#### **configPosition** : _[Vec](/python-api/docs/vec#vec)_

#### **configRadialDistortion** : _[Vec](/python-api/docs/vec#vec)_

#### **configRotation** : _[Vec](/python-api/docs/vec#vec)_

#### **configSkew** : _float_

#### **configTangentialDistortion** : _[Vec2](/python-api/docs/vec2#vec2)_

#### **configThrowRatio** : _float_

#### **configWarpGridSize** : _[Int2](/python-api/docs/int2#int2)_

#### **deformStack** : _[DeformStack](/python-api/docs/deformstack#deformstack)_

#### **disableAutoCalViewUpdate** : _bool_

#### **dseCutoffAngle** : _float_

Dynamic Blend cutoff angle in degrees. It’s a threshold for the angle between the projector’s incidence ray and the normal vector at a pixel.  
Any angle equal or larger than this will lead to zero contribution from this projector for a given pixel.  
Default is 90 degrees.

#### **dseExclude** : _List\[[Projector](/python-api/docs/projector#projector)\]_

Specifies which projectors are included or excluded from this projector’s Dynamic Blend

#### **dseExcludeList** : _List\[[Projector](/python-api/docs/projector#projector)\]_

#### **dseResolutionFactor** : _int_

Resolution for calculating Dynamic Blend projector contributions.  
Higher resolutions improve the resulting blend mask, reducing some visual artifcats such as overspill.  
But this also increases the cost of calculating the blend.  
Projectors should use reduced resolutions if they are affected by frequent Dynamic Blend recalculations e.g. if they target moving surfaces.  
Default: 1/16th.

_Options: {0: ‘1/16’, 1: ‘1/8’, 2: ‘1/4’, 3: ‘1/2’, 4: ‘Full’}_

#### **faceCullMode** : _int_

Can optionally skip rendering faces with normals pointing away (back) or toward (front) the projector.

_Options: {0: ‘None’, 1: ‘Front’, 2: ‘Back’}  
UserName: Face Cull Mode_

#### **feather** : _float_

Shrinks or grows screens in the projector’s view, to fix over-projection

_UserName: Feather_

#### **fieldOfView** : _float_ _(Read-Only)_

#### **gammaBias** : _float_

Adjusts the estimate of this projector’s gamma relative to the Stage’s global Blend gamma

#### **gridSize** : _float_

Controls the spacing of grid lines in Grid output mode

#### **gridThickness** : _float_

Controls the thickness of grid lines in Grid output mode

#### **guiState** : _ProjectorGuiState_ _(Read-Only)_

#### **includeOrExclude** : _int_

lets you either remove projectors from Dynamic Blend consideration, or forces Blend to use only a specific list of projectors

#### **isActiveOutputModeNone** : _bool_ _(Read-Only)_

#### **isAutoCalIntrinsicsUserEditable** : _bool_ _(Read-Only)_

#### **isOutputNeededByGui** : _bool_

#### **lensDistortionMode** : _int_

#### **lightScattering** : _int_

enables light scattering for this projector

_UserName: Light Scattering_

#### **lightScatteringshadows** : _int_

enables light scattering shadows for this projector

_UserName: Light Scattering shadows_

#### **lineupBitmap** : _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

Bitmap used as quickcal lineup cursor

_UserName: QuickCal reticle_

#### **lumens** : _float_

Projector brightness, in ANSI Lumens. Affects visualiser only

_UserName: Brightness (Lumens)_

#### **mask\_objects** : _List\[[Object](/python-api/docs/object#object)\]_

List of objects that this projector should render as black

#### **mask\_resolution** : _int_

Set shadow mask resolution

_Options: {0: ‘Full’, 1: ‘1/2’, 2: ‘1/4’}  
UserName: Resolution_

#### **masking\_scale** : _float_

Shrinks or grows the mask objects in the projector’s view

#### **outputBrightness** : _float_

output brightness (lumens)

_UserName: output brightness (lumens)_

#### **projectionMatrix** : _[Mat](/python-api/docs/mat#mat)_ _(Read-Only)_

#### **render\_mode** : _int_

Switches the projector’s output for easier identification or testing

_Options: {0: ‘Invisible’, 1: ‘Beam’, 2: ‘Wire’, 3: ‘Beam And Wire’}  
UserName: Render mode_

#### **screens** : _List\[[Screen2](/python-api/docs/screen2#screen2)\]_

List of screen surfaces that this projector should render. Other screens will not be visible in the projector.

#### **shadows** : _int_

enables shadows for this projector

_UserName: Shadows_

#### **simulatedShutterOpen** : _bool_

#### **stackedProjectors** : _List\[[Projector](/python-api/docs/projector#projector)\]_

## Variables

#### **FixedModeNone** : _Final\[[FixedMode](/python-api/docs/fixedmode#fixedmode)\]_ = FixedMode.None\_

#### **FixedModePosition** : _Final\[[FixedMode](/python-api/docs/fixedmode#fixedmode)\]_ = FixedMode.Position

#### **FixedModePositionAndRotation** : _Final\[[FixedMode](/python-api/docs/fixedmode#fixedmode)\]_ = FixedMode.PositionAndRotation

#### **FixedModeRotation** : _Final\[[FixedMode](/python-api/docs/fixedmode#fixedmode)\]_ = FixedMode.Rotation

## Methods

#### **addScreen**(self, s: _[Screen2](/python-api/docs/screen2#screen2)_)

#### **addStackedProjector**(self, proj: _[Projector](/python-api/docs/projector#projector)_)

#### **clearWarpsAndMasks**(self)

#### **configSetFixedMode**(self, mode: _[FixedMode](/python-api/docs/fixedmode#fixedmode)_)

#### **editingConfig**(self, onOff: _bool_)

#### **editingProjector**(self, onOff: _bool_)

#### **getSurfaceMask**(self, screen: _[Screen2](/python-api/docs/screen2#screen2)_) -> _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

#### **hasFeedAssigned**(self) -> _bool_

#### **hasStackedProjectors**(self) -> _bool_

#### **isStackedProjector**(self) -> _bool_

#### **mainProjector**(self) -> _[Projector](/python-api/docs/projector#projector)_

#### **nScreens**(self) -> _int_

#### **onCloseConfigEditor**(self)

#### **onOpenConfigEditor**(self)

#### **onStackedProjectorsUpdated**(self)

#### **preferredOutputMode**(self, mode: _[ProjectorOutputMode](/python-api/docs/projectoroutputmode#projectoroutputmode)_)

#### **removeScreen**(self, s: _[Screen2](/python-api/docs/screen2#screen2)_)

#### **renderMode**(self, value: _[CameraTypes\_DrawBeams](/python-api/docs/cameratypes_drawbeams#cameratypes_drawbeams)_)

#### **renderStage**(self, resolution: _[Int2](/python-api/docs/int2#int2) | [Vec2](/python-api/docs/vec2#vec2)_, viewTarget: _[DxTexture](/python-api/docs/dxtexture#dxtexture)_)

#### **setSurfaceMask**(self, screen: _[Screen2](/python-api/docs/screen2#screen2)_, mask: _[DxTexture](/python-api/docs/dxtexture#dxtexture)_)

#### **updateStackingWarp**(self)

## Static Methods

#### **getSupportedOutputModeNames**() -> _List\[str\]_

#### **getSupportedOutputModes**() -> _List\[int\]_

#### **getSupportedRenderModeNames**() -> _List\[str\]_
