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.)
- 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.
-
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
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.