Anyway to Upgrade a '3D' Project to a 'URP/HDRP' Project without breaking all Materials?

Hi all,
I have been working on my project for the better part of 3 years which to start with there was no real intention of making it public, it was just an idea that I wanted to experiment with and use to learn more skills, after peaking family and friends interest I decided to listen to advice given and make the game public, though one thing I failed to realise was that the game was sorely lacking a foundation in many instances from scripting to rendering and I am sure more that I will find in the future :stuck_out_tongue:


Nevertheless the one that is giving me a real headache at the moment is trying to convert the 3 year project (that simply cannot be re-created in a fresh URP Project over-night) from the Standard 3D Core Project to a URP or HDRP Core Project (which ever will allow me to start using Shader Graph to create my own shaders) though the issue I have ran into is that when changing the Render Pipeline in the Graphics Settings completely destroys the thousands of Materials that the game uses, which I am glad I had backed up the project before committing to the change as this saved the entire project being rendered useless, as even after I had removed the Render Pipeline all materials/prefabs etc were still their Broken Bright Pink material with seemingly no way to recover their previous settings.


I have Installed both the UPR and Shader Graph Packages into my project without issue, I also created a Iridescent Style Colour Shader for an Object I am working on, though I found the Shader was coming out Pink, which I found this was due to the project not running off any Render Pipeline (besides unity’s built-in), after changing the Render pipeline within the Graphics Settings every object in the entire game turned the Broken Pink and the Shader Object I created was the only visible working Material in the game.


The main Question I mean to ask is how can I upgrade my project seamlessly without the Render Pipeline molesting all the current materials within the game?

I don’t mind if I have to change the 1-2 objects to the new shader that I actually intend on utilising the Shader, but having to change thousands if not 10s of thousands of Materials to avoid the broken pink texture, that have little to ZERO intention of even using this Shader just baffles me, which I feel there just has to be a better solution for this rather than spending weeks if not months fixing thousands of broken textures.


Any help or nudge in the right direction would be greatly appreciated, as this is something I’ve been holding back from doing for quite a while now, but ever since I found out about the Node Based Shader Designer (Shader Graph) I really wanted to give Shaders a go and use them to make certain objects in my Game look more realistic/appealing rather than being just plain simple colours.

Unfortunately, afaik, there’s not really a go-to solution for such a change. The two different rendering pipelines work completely different. None (or almost none) of the old shaders do work in the URP pipeline. That’s why you should not switch pipelines in the middle of a project. This could be compared to swtiching a project from unreal to Unity or vice versa.

I’m pretty sure there are some editor scripts out there somewhere which may help with replacing shaders with the more or less best replacement in the other pipeline. Though I doubt that this would work out without any issues.

So if you really need / want to do the switch, there’s no way around replacing all the shaders of all your materials one way or the other.

Unity always tried its best to be upwards compatible. However there are a few breaking changes and switching the fundamental rendering pipeline system is one of them. The new pipeline system is currently not a replacement but an alternative. Though since it works completely different you can’t simply switch.

Although @Bunny83 had answered my question perfectly, It seems there is no way to Upgrade a Project from a 3D Core to a URP/HDRP Core (at least without conflicts/issues with older shaders).


I was however able to successfully create the Iridescent Style Shader using just the Built-In Render Pipeline as the Active Target (Which can be done by selecting ‘Built-In’ when creating a new Shader Graph File as seen below):

Built-In Shader Graph


Which I was able to replicate the Iridescent Style Shader I had made in blender within Unity’s Shader Graph which came out really well In-Game, though the colour scheme could use a little tweaking I’ll maybe try using just Red, Blue and Purple without the Green, and maybe bevel the top edge of the shiny chip which should look a little more realistic and make the colours pop more I think - Nevertheless it is great to use Shader Graph without having to break every other Material in the game, from the very few videos I had watched (Which I know I definitely should have done a bit more research before diving into such a big change :P) in regards to Shader Graphs as far as the Content Creators were explaining is that the Project HAD TO BE either a URP or HDRP Project and it wouldn’t work with a normal 3D Project, I guess I will find the limitations of the Built in Render Pipeline compared to the HDRP and URP counterparts, but for now the Built-In is doing exactly what I need so that’s a big win!