URP and Hybrid Renderer (774918)

Hi everyone,

I am working on a project for a couple of days, and I was using ECS and URP
In the editor, everything works as expected, I could create a sub-scene, and instantiate entities and everything shows up great, so I though I was OK.

Now, a couple of days in, I tried to build the project, and I realize nothing is rendering!
After about a day of testing, this is the result (from a new project, with hybrid renderer, and urp setup, using default materials and meshes)

Objects that are not converted to entities, render ok
Objects that are converted in the main scene, render in the origin of the scene, and never moves
Objects that are placed in a subscene, never render
Objects that are instantiated, never render

I looked in the package manager to see if I was missing something, I was Unity Windows Platform, and I thought maybe this is what I’m missing, but when I try to install it, it says that Unity Platforms cant find the right version of the serialization and properties packages, and older versions cause other errors

  • Using Unity 2019.3.0f6

Anyone have any idea?

Thanks!

are you using the Hybred Renderer ?
the Hybred Renderer is currently only supporting the HDRP. (sadly)
the Unity Team said they wil begin to work on URP + Hybred Renderer from the middle of 2020.
the only why to work with ECS + URP is to create your own hybred renderer based on Graphics.DrawMeshInstanced***() or use packages like this one .
Good luck :slight_smile:

1 Like

Joachim recently said that work has already started on URP and the hybrid tenderer, and that it’s progressing well.

1 Like

Thanks!
I used it with HDRP before, and I just assumed since it worked, that URP should be fine.
And Editor was presenting it ok, so I never verified it :frowning:

I guess I`ll move back from DOTS for this project

I’m using the latest Entities + Hybrid Renderer with URP, and everything renders as expected, for both the initial scene objects and instantiated prefabs (I’m not using subscenes). I’m not doing anything special or crazy with materials or suchlike. The process maybe isn’t yet properly supported, but I can confirm that it works absolutely fine for me.

1 Like

It works if you don’t use instanced properties. Instanced property support for URP also landed in the master branch on GitHub a few days ago, so support is coming pretty soon.

2 Likes

i had a lot of unexpected errors with URP + Hybred Renderer 0.2+
the Current Hybred Renderer + URP are not working for OpenGles3.1 and Vulkan, plus mixing them is very unstable for mobile.
the same apk can have different bugs depending on the device. more details here .
i really hope they find a solution for it very soon.

i think the best way for the moment is to create your own Hybred Renderer using the Graphics.DrawMeshInstanced or Graphics.DrawMeshInstancedIndirect depending on your needs. you can take a look at the Hybred Renderer 0.1 which was based on this API too and maybe get a more customized culling logic for your game, which can give you a better performance. in my case i used the fact that my game is a TOP-DOWN style so it’s easier to cull huge number of entities by grouping them into regions…

Thanks guys!

Also on build?
Can you share your build settings, and project manifest?

Yep, both editor and Windows builds. There’s absolutely nothing special in my project. I’ve literally used the defaults for all rendering options.

{
  "dependencies": {
    "com.unity.2d.sprite": "1.0.0",
    "com.unity.addressables": "1.6.0",
    "com.unity.burst": "1.2.2",
    "com.unity.cinemachine": "2.5.0",
    "com.unity.collections": "0.5.1-preview.11",
    "com.unity.dots.editor": "0.3.0-preview",
    "com.unity.entities": "0.5.1-preview.11",
    "com.unity.ext.nunit": "1.0.0",
    "com.unity.inputsystem": "1.0.0-preview.4",
    "com.unity.physics": "0.2.5-preview.1",
    "com.unity.platforms": "0.1.8-preview.1",
    "com.unity.platforms.windows": "0.1.7-preview.4",
    "com.unity.probuilder": "4.2.3",
    "com.unity.progrids": "3.0.3-preview.4",
    "com.unity.render-pipelines.core": "7.1.8",
    "com.unity.render-pipelines.universal": "7.1.8",
    "com.unity.rendering.hybrid": "0.3.3-preview.11",
    "com.unity.searcher": "4.0.9",
    "com.unity.settings-manager": "1.0.1",
    "com.unity.shadergraph": "7.1.8",
    "com.unity.test-framework": "1.1.9",
    "com.unity.test-framework.performance": "2.0.6-preview",
    "com.unity.textmeshpro": "2.1.0-preview.4",
    "com.unity.timeline": "1.2.11",
    "com.unity.ugui": "1.0.0",
    "com.unity.ui.builder": "0.10.1-preview",
    "nuget.mono-cecil": "0.1.6-preview",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.androidjni": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.cloth": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.terrain": "1.0.0",
    "com.unity.modules.terrainphysics": "1.0.0",
    "com.unity.modules.tilemap": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.vehicles": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.vr": "1.0.0",
    "com.unity.modules.wind": "1.0.0",
    "com.unity.modules.xr": "1.0.0"
  }
}

can you debug the graphic api used by your build ?

I’m not sure what you mean, as I’m not doing any manual drawing. My process was: Install URP. Install hybrid renderer. Create a child object with a mesh which uses a URP/Lit material (with GPU instancing). That’s it.

Is there a roadmap somewhere which shows estimates for when systems are expected to be finished? The UE4 team have a public trello board which gives everyone an idea of what things are being worked on.

@MartynLeeper These small details don’t appear to be on the roadmap.

1 Like

Next DOTS package will include the first experimental version of Hybrid V2. This is the first DOTS renderer that has official URP support. This package will also include rewritten hybrid renderer landing page document describing how to setup shaders and materials correctly to hybrid renderer.

16 Likes

Thanks for the link!

Really looking forward to checking this out! Is there any rough eta for when this might be released?

3 Likes

@SebastianAaltonen just reporting a bug.
the Hybred Renderer V2 is not working, i tested it using the Unity 2020.1.0b1.
i added the ENABLE_HYBRID_RENDERER_V2, when i close the SubScene all entities are created but nothing is rendered and by removing the defined symbol all entities are rendered by the old HybredRenderer.
this is reproducible even with an empty project and using simple Cubes.

HRv2 require SRP 9.0.0-preview, maybe it can be problem if you not cloned it from SRP repo under hybrid-instancing2 branch

1 Like

yes maybe it’s the problem,

this is what i did:

  1. i downloaded the full project from Github.

  2. i copied com.unity.render-pipelines.core, com.unity.render-pipelines.universal, com.unity.shadergraph, com.unity.testframework.graphics in the Packages Folder.

  3. i modified the manifest.json :

{
  "dependencies": { 
    "com.unity.collab-proxy": "1.3.7",
    "com.unity.collections": "0.7.0-preview.2",
    "com.unity.entities": "0.8.0-preview.8",
    "com.unity.formats.fbx": "2.0.3-preview.3",
    "com.unity.ide.visualstudio": "2.0.0",
    "com.unity.ide.vscode": "1.1.4",
    "com.unity.physics": "0.3.0-preview.1",
    "com.unity.render-pipelines.core": "file:../../../com.unity.render-pipelines.core",
    "com.unity.render-pipelines.universal": "file:../../../com.unity.render-pipelines.universal",
    "com.unity.rendering.hybrid": "0.4.0-preview.8",
    "com.unity.shadergraph": "file:../../../com.unity.shadergraph",
    "com.unity.test-framework": "1.1.11",
    "com.unity.testframework.graphics": "file:../../../com.unity.testframework.graphics",
    "com.unity.textmeshpro": "3.0.0-preview.1",
    "com.unity.timeline": "1.2.12",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.androidjni": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.cloth": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.terrain": "1.0.0",
    "com.unity.modules.terrainphysics": "1.0.0",
    "com.unity.modules.tilemap": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.vehicles": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.wind": "1.0.0"
  }
}

Did I do something wrong ?

1 Like

From which branch?
Also important note: HRv2 require Unity 2020.1.b03 or newer (not released yet) https://forum.unity.com/threads/hybrid-rendered-v2-dependency-urp-9-0-0-missing.846421/#post-5590225

IMPORTANT: Unity 2020.1.0b3 is a hard requirement for Hybrid Renderer V2. Visuals will be completely broken if you test with earlier version (such as 2020.1.0a25).
https://forum.unity.com/threads/hybrid-rendered-v2-dependency-urp-9-0-0-missing.846421/#post-5590234

1 Like

i downloaded the whole Github repo from Clone or Download Button then added the neede packages.

i think this is the problem XD.
i have the latest Unity beta version (Unity 2020.1.0b1), how people is testing it if it’s not released yet ?

btw the Hybred Renderer Documentation says:
Sample projects are using Hybrid Renderer V2 and require Unity 2020.1.a025 or later and SRP 9.0.0-preview package.
im lost!