InstancedMotionVector
InstancedMotionVector copied to clipboard
Shows how to support rendering per-instance motion vectors within Indirect instanced drawing of Unity.
InstancedMotionVector
This is an example that shows how to support rendering per-instance motion vectors within indirect instanced drawing of Unity.
(In this document, the term "indirect instanced drawing" refers to drawing instanced geometries with using the indirect drawing API -- specifically using Graphics.DrawMeshInstancedIndirect.)
System requirements
- Unity 2017.2 or later
This example uses BuiltinRenderTextureType.MotionVectors that is newly introduce in Unity 2017.2, so that it only runs on 2017.2 or later versions.
How to support motion vectors within indirect instanced drawing
-
Write the
MotionVectors
light mode pass for the custom shader. It's recommended to use the first pass of the subshader to make it easy to refer from command buffers. ⇒ Example -
Implement the
OnRenderObject
method and manually invoke theMotionVectors
pass with using a command buffer. BuiltinRenderTextureType.MotionVectors can be used to set the motion vectors texture as a render target. ⇒ Example
License
Copyright (c) 2017 Unity Technologies
This repository is to be treated as an example content of Unity; you can use the code freely in your projects. Also see the FAQ about example contents.