Shapes not rendering with 2D renderer after regenerating shaders

Avatar
  • updated
  • Fixed

Using shapes in a 2D project with URP and the experimental 2D renderer for use with 2D lights.

After initially importing Shapes, shapes render seemingly just fine. However, after the dialogue box appears to regenerate the shaders for URP, the shapes stop rendering.

It is very possible that I am missing something with the setup of URP and the 2D renderer, but Shapes seems to consistently render when I am able to get around the dialogue box.

If there is a way to avoid regenerating the shaders due to this dialogue box that would also be helpful.

Reporting a bug? please specify Unity version:
2020.1.4
Reporting a bug? please specify Shapes version:
2.3.0
Reporting a bug? please specify Render Pipeline:
Pinned replies
Avatar
Freya Holmér creator
  • Answer
  • Fixed

URP 2D support has now been added as of Shapes 4.1.1

Avatar
Freya Holmér creator
  • Not a bug

generally, experimental render pipelines are not supported, so I probably won't be looking into native support for it until it's stable

as for the regenerating shaders - it could be that when the shaders are compiled for the legacy pipeline, they still work somehow, but in URP they fail?

if you want to force it to always compile for the legacy pipeline, go to UnityInfo.cs, there's a function called 

public static RenderPipeline GetCurrentRenderPipelineInUse()


add 

return RenderPipeline.Legacy;

right after line 12, and then go to

Shapes -> Advanced -> Regenerate shaders & materials

hope it helps! you could also make it force render into URP if the legacy one was the one that was broken. you might also have to reimport assets after regenerating

I'm closing this as I wouldn't consider it a bug (or rather, intentionally not taken care of I guess? terms are weird)

experimental APIs are scary, but, feel free to reopen a feature request to support the 2D renderer in the future!

Avatar
Daniel Onstott
Quote from Freya Holmér

generally, experimental render pipelines are not supported, so I probably won't be looking into native support for it until it's stable

as for the regenerating shaders - it could be that when the shaders are compiled for the legacy pipeline, they still work somehow, but in URP they fail?

if you want to force it to always compile for the legacy pipeline, go to UnityInfo.cs, there's a function called 

public static RenderPipeline GetCurrentRenderPipelineInUse()


add 

return RenderPipeline.Legacy;

right after line 12, and then go to

Shapes -> Advanced -> Regenerate shaders & materials

hope it helps! you could also make it force render into URP if the legacy one was the one that was broken. you might also have to reimport assets after regenerating

I'm closing this as I wouldn't consider it a bug (or rather, intentionally not taken care of I guess? terms are weird)

experimental APIs are scary, but, feel free to reopen a feature request to support the 2D renderer in the future!

That's just what I was looking for! Thank you for the quick reply.

Avatar
Freya Holmér creator
  • Answer
  • Fixed

URP 2D support has now been added as of Shapes 4.1.1