# GroupTransform

> Optimizes rendering of a VisualElement that changes its transformation and position frequently, and has many descendants that have their hints set to UsageHints.DynamicTransform.

## Definition

* **Type:** Field
* **Namespace:** [UnityEngine.UIElements](/engine/6000.5/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule

```csharp
GroupTransform = 2
```

### Remarks

This option is similar to [UsageHints.DynamicTransform](/engine/6000.5/script-reference/unityengine/uielements/usagehints/dynamictransform.md) in that it allows GPU transformation of the vertices of the descendants. However it breaks the batch, and adds an extra draw call. The purpose of this hint is to avoid having to update the stored matrix of many elements that have [UsageHints.DynamicTransform](/engine/6000.5/script-reference/unityengine/uielements/usagehints/dynamictransform.md) set when a common ancestor changes its transformation or position. In other words, this is an optimisation for [UsageHints.DynamicTransform](/engine/6000.5/script-reference/unityengine/uielements/usagehints/dynamictransform.md).

An example use case is that in Shader Graph, you can set individual nodes with [UsageHints.DynamicTransform](/engine/6000.5/script-reference/unityengine/uielements/usagehints/dynamictransform.md), and set the ancestor panner/zoomer with `GroupTransform`, so that when you pan/zoom, you avoid the need to update hundreds of dynamic transforms.

**Note**: Don't use both [UsageHints.DynamicTransform](/engine/6000.5/script-reference/unityengine/uielements/usagehints/dynamictransform.md) and GroupTransform at the same time on a single VisualElement.
