You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 10, 2022. It is now read-only.
It's a common pattern to have the same material duplicated with different colors - grayMaterial, blueMaterial, greenMaterial etc.
However, these require one unique drawcalls per material even if the mesh is otherwise unchanged. A better model may be to move the color property to be a mesh instance property - identical meshes in different colors would automatically collapse into a single drawcall
The text was updated successfully, but these errors were encountered:
Counterpoint: if the meshes have different color properties, they're not identical, so it would break batching anyway. That's sort of the point of GPU instancing, they have to be totally identical in render properties except for the transform, otherwise they can't be drawn all at once. Think of it like a rubber stamp: if you want ten "OK" stamps it's as easy to stamp ten times as once. But if they're even slightly different, you have to do extra work in between stampings, even if it's just loading up a different ink.
Reusing materials is still better than not, even without GPU instancing though. If color is the only variation, then reuse a material with a white color, and use mesh vertex colors for the tint. That's the same amount of work for the GPU, and is possible with the current state of the SDK.
Alternatively, perhaps host apps could use Unity's MaterialPropertyBlock on the color property? Though without SDK modifications, they would have to dynamically merge and reuse materials that are identical except for that property, which is a significant complexity increase.
sorenhan
changed the title
GPU Perf: move material color to be a mesh property.
GPU Perf: minimize drawcalls from identical materials with different colors.
Oct 2, 2020
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
It's a common pattern to have the same material duplicated with different colors - grayMaterial, blueMaterial, greenMaterial etc.
However, these require one unique drawcalls per material even if the mesh is otherwise unchanged. A better model may be to move the color property to be a mesh instance property - identical meshes in different colors would automatically collapse into a single drawcall
The text was updated successfully, but these errors were encountered: