Large overdraw regions on small shapes?

Avatar
  • updated
  • Unity's Fault

I've been using a custom mesh to render a ring for a crosshair but I needed more customization so I've switched to Shapes to replace the custom mesh with a set of ring/arc shapes. I've noticed performance issues after that and the first thing I checked was overdraw.

I don't know if Unity overdraw rendering mode is right, but it looks really weird. The overdraw region doesn't correspond to the size of the shape: https://i.imgur.com/2H5Atkz.png

I'm using a lot of small shapes, like the small dot to the bottom left, which seems to redraw a lot of empty space around the actual dot.

Is this an issue with Shapes or Unity not displaying the overdraw regions properly?

Thanks!

Reporting a bug? please specify Unity version:
2020.1.0b5
Reporting a bug? please specify Shapes version:
2.0.0
Reporting a bug? please specify Render Pipeline:
Pinned replies
Avatar
Freya Holmér creator
  • Answer
  • Unity's Fault

this is an issue that, as far as I know, I can't fix (unless there's a way for me to make a special pass for the overdraw view mode to use)

the problem is that since Shapes is heavily GPU based, the mesh data doesn't actually represent the final size and shape, since it's modified in the vertex shader, and the overdraw view mode shows you the mesh before the vertex shader stage (for some reason)

the wireframe mode however, shows it after the vertex shader, so you can use that to look at overdraw issues

Avatar
Freya Holmér creator
  • Answer
  • Unity's Fault

this is an issue that, as far as I know, I can't fix (unless there's a way for me to make a special pass for the overdraw view mode to use)

the problem is that since Shapes is heavily GPU based, the mesh data doesn't actually represent the final size and shape, since it's modified in the vertex shader, and the overdraw view mode shows you the mesh before the vertex shader stage (for some reason)

the wireframe mode however, shows it after the vertex shader, so you can use that to look at overdraw issues