# motionVectorMode

> Motion vector mode.

## Definition

* **Type:** Field
* **Namespace:** [UnityEngine.Rendering](/engine/6000.5/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public MotionVectorGenerationMode motionVectorMode
```

### Remarks

Unity configures the following built-in shader uniforms to calculate motion vectors in HLSL code: `unity_MotionVectorsParams`,  `unity_MatrixPreviousM` and `unity_MatrixPreviousMI`.

For [Mesh](/engine/6000.5/script-reference/unityengine/mesh.md) ray tracing instances, `unity_MotionVectorsParams` is a vector uniform. Its component values are as follows:

* the x and z components are 0
* the y component is 0 if the motion vector mode is [MotionVectorGenerationMode.ForceNoMotion](/engine/6000.5/script-reference/unityengine/motionvectorgenerationmode/forcenomotion.md). Otherwise it is 1.
* the w component is 0 if the motion vector mode is [MotionVectorGenerationMode.Camera](/engine/6000.5/script-reference/unityengine/motionvectorgenerationmode/camera.md). Otherwise it is 1.

`unity_MatrixPreviousM` and `unity_MatrixPreviousMI` are the instance matrix and its inverse respectively used in the previous frame. Note that Unity only updates these matrices only when there's a [Camera](/engine/6000.5/script-reference/unityengine/camera.md) in the Scene that's using the [DepthTextureMode.MotionVectors](/engine/6000.5/script-reference/unityengine/depthtexturemode/motionvectors.md) flag in [Camera.depthTextureMode](/engine/6000.5/script-reference/unityengine/camera/depthtexturemode.md).

To access the ray tracing instance matrix in closest hit, any hit, and intersection shaders, use the `ObjectToWorld` or `WorldToObject` HLSL functions.

Additional Resources: [MotionVectorGenerationMode](/engine/6000.5/script-reference/unityengine/motionvectorgenerationmode.md).
