---
title: "Texture Reference Pose"
canonical: "https://rmanwiki-26.pixar.com/space/RFB26/320897032/Texture%20Reference%20Pose"
format: markdown
---
![Gloop_Pref.JPG](media://2b7d49ca-b5f0-40a6-98d3-b3f05137cb16)


When rendering, you usually must set a default pose or position for your object to become a reference for later renders even if the object deforms or moves around. 

This prevents a texture from appearing to “slide” or “swim” across the object as it animates. This sticking of the texture, is typically referred to by its technical name of **Pref** (piː rɛf). Other 3D apps might call this a “texture reference.”


## Pref Setup

Here’s a basic scene that we have set up.

![scene.png](media://f60c8d33-4504-482c-8ed1-bfd4311ac7db)

In the scene, we have a cylinder that’s parented under the armature system. 

We have a camera that’s acting as a texture projector, which we use as our manifold or texture placement in order to reference our camera projector and connect the manifold to our PxrTexture node.  

Here’s a closer look at the shading network.

![RenderManBlender_Projector1.JPG](media://b24be8ba-31b6-463e-898b-cccf86abf14b)

Notice, that we connect both PxrTexture and PxrProjector to a PxrMix node. We use the PxrProjector’s resultMask output as the Mixer value. This is so that any areas outside of the projection are colored with Color 1 of the PxrMix node. 

We put in the name of the texture projection camera, as our Coordinate System for our PxrProjector (in this case it’s named “TextureProjection”)

If we render, you should see something like this.

![render1.png](media://09664548-57ad-4f0a-a206-1760ddf11cfd)

However, if we start posing the cylinder with the armature, you’ll notice that the texture doesn’t look as one would expect:


![render2.png](media://2a9fd52f-cc0c-4393-8de5-5fb91a398f91)

The texture is not bending with the cylinder, instead it’s swimming on top of it.


## Freeze Reference Pose

In order to compensate for this, we need to freeze a reference pose. Go back to the unposed version of the cylinder.

![Screenshot 2025-02-07 at 8.34.13 AM.png](media://6c575d78-83df-4505-a64b-d25eef1cc478)

In the data properties tab for the cylinder, under Primitive Variables, you should see a Freeze Reference Pose button.


![reference_pose1.png](media://52a69e9f-5932-4bbd-83ab-8dd305a83755)


This will bring up a dialog box like this.


![reference_pose2.png](media://3382f867-dd4c-4010-ab2a-8c302fbd54f2)


Here we can select the data we want to freeze. 

- **__Pref** - is the reference position points.
- **__WPref** - is the same as **__Pref** but in world space.
- **__Nref** - is the reference normals.
- **__WNRef** - is the same **__Nref** but in world space.


Note, these are the names that you will reference in your shading network.

Going back to our example scene’s shading network, if we go to the PxrProjector node, we can tell the node to use the reference pose, by changing **Use** to **Deform (__Pref + __Nref)**.


![projection_shading_pref.png](media://b17928ea-2c86-468d-95d3-8ecaa56c37fc)

Now, if we repose our cylinder and render you can now see the texture properly bending with the cylinder.

![render3.png](media://6758e4e0-2c9e-4aef-83a9-4d87dcde71ef)

> ⚠️ The reference pose will need to be re-frozen if the mesh changes (ex: more points were added). You can do this by going back to the data properties tab and clicking on Re-Freeze Reference Pose.
> ⚠️ 
> ⚠️ ![refreeze.png](media://6805e9cb-e8f0-437d-9026-5ca14168b3b0)