PxrNormalMap

PxrNormalMap

Produces a bumped normal from a normal map (a color map encoding the normal). Bumps are applied in object space. The change in scale between object space and current space is automatically applied by the node.

Like the other texture nodes, this node takes a manifold which describes either a 2D or 3D domain to apply a the texture to. The default beahavior if no mainfold is attached, is to apply over the s,t domain defined on the geometry.

Texture atlas format files can be read in either UDIM (Mari) format or mudbox format.

Input Parameters

Bump Scale

Scale the bump effect. Typical range is from 0.0 to 2.0.

RIB: float bumpScale
Default: 1.0

Input Normal

Specifies normal map color (this parameter is ignored if filename is provided).

RIB: color inputRGB
Default: 0.0 0.0 0.0

Filename

Normal map filename. The shader reads only one channel of the file from the Mapping Controls' Channel specified below. Note that this will be read in as the Mudbox normal map format in tangent space.

RIB: string filename
Default: ""

Bump Overlay

Connect a PxrBump or PxrNormalMap node here if you need to combine multiple patterns.

RIB: normal bumpOverlay
Default: 0.0 0.0 0.0

Bump Orientation

Invert Bump

Invert the bump orientation. Concave becomes convex and vice versa.

RIB: int invertBump
Default: 0

Flip X

Flips the x axis (red channel) of the normal map. There isn't any standard to encode normal maps and every application will encode them differently. This switch, combined with flipY and invertBump will allow you to set the correct orientation.

RIB: int flipX
Default: 0

Flip Y

Flips the y axis (green channel) of the normal map. There isn't any standard to encode normal maps and every application will encode them differently. This switch, combined with flipX and invertBump will allow you to set the correct orientation.

RIB: int flipY
Default: 0

Mapping Controls

Channel

Offsets the first channel to be looked up for filename.

RIB: int firstChannel
Default: 0

Atlas Style

Specifies the style of texture atlas that is being used. If you specify an atlas style, the Filename parameter must contain a _MAPID_, which will be substituted automatically according to the surface parameterization and the style of atlas. Valid styles are:

  • 0: None
  • 1: MARI
  • 2: Mudbox
RIB: int atlasStyle
Default: 0

Invert T

Inverts the t texture coordinate for texture lookup.

RIB: int invertT
Default: 1

Blur

Specifies how much to blur the result from the texture file.

RIB: float blur
Default: 0.0

Mip Interpolate

Selects whether to interpolate between adjacent resolutions in the multi-resolution texture, resulting in smoother transitions between levels.

RIB: int lerp
Default: 1

Filter

Selects different reconstruction filters that can be used during texture lookup. The filters available for PxrNormalMap are:

  • 1: Box
  • 4: Mitchell
  • 5: Catmullrom
  • 6: Gaussian
  • 7: Lagrangian
RIB: int filter
Default: 1

Manifold

Provides the range over which to apply the texture. Defaults to s,t.

RIB: struct manifold

Advanced

Reverse Normal

Reverse the resulting normal.

RIB: int reverse
Default: 0

Disabled

Use the geometric normal (ignore the modified normal).

RIB: int disable
Default: 0

Output Parameters

resultN

The bumped normal.

Normal Maps Orientation

Sometimes you might apply a normal map to your geometry and it will look wrong. Generally, it's an orientation problem and you will have to find the correct combination of Invert Bump, Flip X, and Flip Y. The best method is to start an IPR/LiveRender session and try various combinations. Once you have found the correct combination for your authoring application (ZBrush, Mudbox, 3DCoat, etc), it should be good for all maps exported from that application with the same settings.

images/PxrNormalMap_originalOrientation.png

Before

images/PxrNormalMap_flipX_orientation.png

After