# Contents

This node is meant to work in conjunction with PxrProjectionLayer but can be used as a general projection manifold. This manifold supports camera, spherical and cylindrical mapping. It encapsulates 2D parameterization for pattern generators and allows transformations and selection of arbitrary variables bound to primitives.

Input Parameters

This setting will update the
This setting will update the This setting will update the This setting will update the This setting will update the

**Projection**

- 0: Camera
- 1: Spherical
- 2: Cylindrical
- 3: Planar

**Coordinate System**

Name of coordinate system transform (e.g. place3dTexture node in Maya or the camera).

You **must** set a coordinate system. This field can not be left empty.

**Use**

Selects the positions you are going to project on.

**0: P - N**P is the current position and N the current normal**1: Pref - Nref**Use this if your object if deforming and you want the projected texture to 'stick'. This relies on two primvars :`__Pref`

and`__Nref`

that should be present on the deforming geometry. In Maya, use the RenderMan > Primvars > Freeze menu to add them to the selected geometry.**2: WPref - WNref**This will allow your projected texture to stick if the object is deforming AND transformed. It relies on`__WPref`

and`__WNref`

primvars. In Maya, use the RenderMan > Primvars > Freeze menu to add them to the selected geometry.

**Occlusion frontOnly**

Restricts the projection to the points facing the projection direction.

This setting will update the

**resultMask**output so you may use it to mix between the projection and the underlying surface material.**Front Falloff**

Introduces a smooth transition when using frontOnly. Useful to blend transitions between different projections. The default, 0.0, means no falloff.

This setting will update the

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Trace Occlusion**

Shoots rays to avoid projecting on areas that are occluded by geometry, from the projections point of view.

This setting will update the

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Trace Max Distance**

When traceOcclusion is on, you can limit the ray length. This number is expressed in scene units, whatever it may be in your authoring package.

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Trace Set**

The name of a trace set to restrict ray hits to a specific group of objects. The default is to consider all objects in the scene.

### Camera

**Horizontal Resolution**

The horizontal image resolution. This is used to specify your image's original resolution, prior to txmake-ing.

**Vertical resolution**

The vertical image resolution. This is used to specify your image's original resolution, prior to txmake-ing.

**Focal Length**

The focal length of the camera is in millimeters (mm). To convert the Field of View (fov) to the Focal Length, use this

fov = atan((0.5 * aperture) / (focalLength * 0.0393701))

**Horizontal Aperture**

The width of your camera's film back in inches.

**Vertical Aperture**

The height of your camera's film back in inches.

**Near Clip Plane**

Positions closer than this distance from the coordinate system will be masked. This number is expressed in scene units, whatever it may be in your authoring package.

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Far Clip Plane**

Positions farther than this distance from the coordinate system will be masked. This number is expressed in scene units, whatever it may be in your authoring package.

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Film Fit**

The way your image is fitted to the film back if they have different aspect ratios. This is mimicking Maya's camera settings.

- 0: Fill
- 1: Horizontal
- 2: Vertical
- 3: overscan

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

**Clamp To**

Activates the mask output. You can mask different areas but this is mostly useful with camera projection.

- 0:
**Off**The projected texture is everywhere - 1:
**Frustum**The projected texture only appears inside the camera frustum - 2:
**Texture**The texture is projected in its entirety, irrespective of the camera frustum.

**resultMask**output so you may use it to mix between the projection and the underlying surface material.

### Planar

**Clamp To**

Clamp the planar projection, assuming the coordinate system is represented as a cube.

- 0:
**Off**The projected texture is everywhere. - 1:
**XY**The projected texture appears on the XY plane of the coordinate system. - 2:
**XZ**The projected texture appears on the XZ plane of the coordinate system. - 3:
**YZ**The projected texture appears on the YZ plane of the coordinate system. - 4:
**XYZ**The projected texture appears inside the coordinate system's volume.

**CoordSys Type**

There are 2 different types to match different viewport representations.

- 0:
**Generic**The coordinate system is a 1 unit wide cube. - 1:
**Maya place3dTexture**the place3dTexture is 2 units wide.

### 2D Parameters

**Angle**

Rotation angle around the origin.

**Scale S**

Frequency of feature in the S direction.

**Scale T**

Frequency of feature in the T direction.

**Offset S**

Offset from the origin in the S direction.

**Offset T**

Offset from the origin in the T direction.

**Invert T**

Flip the manifold in the T direction.

#### Advanced

**Verbose**

Outputs various infos to help you debug your scenes.

**Front Only Tolerance**

This parameter is sometime useful to avoid projecting on surfaces that are close to the grazing angle.

### Output Parameters

**result**

The 2D manifold.

**resultS**

A float representation of the S component of the manifold.

**resultT**

A float representation of the T component of the manifold.

**resultMask**

A binary mask defining a restricted projection area.

Should be plugged into the mask input of PxrProjectionLayer or used to blend between the projection and the underlying texture.