Quick Start Tutorials
This chapter demonstrates usage of the Dynamic Radial Masks asset using simple step-by-step guides that are described as easy as possible to give an overall overview of the asset and how it works.
Tutorial chapters below demonstrate DRM usage using Shader Graph.
For Amplify Shader Editor integration steps are exactly the same.
Instructions for integrating DRM into hand-written shaders are described in the Hand-written HLSL chapter.
Package included example scenes demonstrating various features of the DRM asset are provided in the Example Scenes chapter.
Create a new empty scene.
Add Plane mesh to the scene.
Create a new Shader Graph file.
Create new material using this shader and assign it to the Plane mesh.
Now it is time for integrating DRM into this new shader:
Open Dynamic Radial Masks editor window from the Unity Main Toolbar → Window → Amazing Assets menu and make sure its settings are the same as on the image below:

Editor window settings are described in DRM Settings chapter.
Click on the Shader Graph button
at the bottom of the window. Based on the selected settings will be generated DRM node file and highlighted inside the Project window:

Pay attention that the generated DRM node's file name consists of DRM settings and clearly describes the mask type it calculates.
Drag and drop DRM node file from the Project window inside the shader editor and connect its output Mask value to the Base Color block:

That’s all. Now shader calculates HeightField type mask and renders it as the Base Color.
But this mask will not be visible on the Plane mesh yet, because DRM nodes' properties currently are undefined, and they need to be updated using the controller script.
Create a new game object and add the DRM Controller script to it and set its DRM Settings to be the same as in the image below:

Note, DRM Settings are exactly the same as the DRM nodes used inside the Shader Graph.
Drag and drop material used by the Plane mesh to the Materials array, inside DRMController.
Select Pool property to be the Game Objects and click on the Create button (on the right side of the DRM Game Objects array header). This will create a new DRM Game Object and add it to the pool.
That's all. Now changing DRM Game Object's settings and moving it inside the scene will be visible to the Plane material:

If spherical wire gizmo of the DRM Game Object is not visible, toggle scene gizmos visibility:

In this tutorial we have created a simple shader for visualizing the volumetric mask and demonstrated how to update and control its settings using the controller script. In the next tutorials are demonstrated, more complex usage of DRM effects, but before continuing, it is necessary to highlight core concepts of the DRM usage:
DRM effect can be integrated into any shader, made by Shader Graph, Amplify Shader Editor or hand-written HLSL file.
Before integrating DRM effect inside a shader it is necessary to choose its style and visual properties from the DRM editor window and click on the appropriate shader editor button (in the bottom part of the editor window) for generating all required files used by this DRM effect:

After generating DRM files, its node is automatically selected and highlighted inside the Project window. It can be drag & dropped inside shader editor:

Output of the DRM node is a volumetric 3D spherical mask - float type value.
For calculating and rendering volumetric mask DRM node uses complex set of properties that are not visible inside a shader or material editor, instead they need to be updated using DRM Controller script:

DRM Settings of the controller script must be exactly the same as node settings it updates.
Inside shader can be used any number of various DRM nodes and each one needs to be updated using its own DRM Controller script.
Materials requiring updating their DRM nodes need to be added to the Materials array of the DRM Controller script.
If multiple materials are using the same DRM node and its calculated result needs to be the same for all materials, then they all can be updated using a single DRM Controller script.
DRM Controller script uses Pool system for collecting DRM objects containing properties for calculating and rendering DRM nodes inside shader.
