Hybrid renderer package got available recently in package manager.
Has anyone tried it out yet?
Looking at code it seems really interesting, as I was thinking about re-writing some of my decal system into ECS.
Got me some ideas on how to properly hook the systems to cameras and the Unity’s API.
Although, it got me thinking why the Graphics API instead of CommandBuffer?
Also, it would be nice to see some benchmarks against default render system (but it might be too early in development for this).
Well, new Hybrid renderer API for 2018.3 is mostly the same as it was in previous ecs packages, now it is just separated to its own package with some little refactoring. And yes it is fast for a lot of same meshes, because of default instancing.
The most interesting part of it is Hybrid renderer API for 2019.1 that uses not Graphics API but totaly new BatchRendererGroup. In source code it is called RenderMeshSystemV2.
If you want do some low-level stuff with Hybrid renderer, I recommend you start thinking about Hybrid renderer with BatchRendererGroup API and not about Hybrid renderer with Graphics API, because I’m assuming that this API would be deprecated in a future.
The recommended approach is to simply use Entity + RenderMesh component + Position or LocalToWorld.
We will be adding more features to it over time. Use Of BatchRendererGroup low-level API is an implementation detail and won’t break anything in the normal usage. It will simply become faster.
How far are we from being able to set colors via an IComponentData per Entity. I know it is possible today and there a few custom solutions out there…just curious if this is something you are working on at the moment or if it is a bit further out…
One thing I noticed after upgrading to the new preview and switching to the new hybrid renderer, is that I was able to programmatically build meshes from within ECS code. Previously when I tried to construct a mesh I was getting warnings about the Vector arrays I was using to assign to mesh.vertices.
I’m not sure if it was something to do with the hyrbrid renderer or no.
We’re at the point in our game where we need to focus on how the levels are rendered. We’re using a heck of a lot of prefabs for level geo instead of unique geo. Our game is not ECS based (yet) but does that mean we can still take advantage of superior static rendering performance wit this or is it for dynamic stuff?
So, the 2019.1 alpha, they’ve changed the Mesh class, and can update the vertices a faster way? ‘new preview and switching to the new hybrid renderer, is that I was able to programmatically build meshes from within ECS code’ Did anything change with this particular mesh updating flow? I’m using Hybrid.MeshInstanceRenderer component simply to update meshes, while building my meshes inside another class using jobs. Is there a better way to build custom terrain mesh?
I’m currently trying to combine the Hybrid Renderer with the Lightweight SRP. I managed to make it work, but quickly realized that baked lightmaps do not seem to be supported. Did I do anything wrong or is it indeed not supported. And if it’s not, is it planned to be or that renderer is only intended to be used with the HD SRP with everything realtime?
I know that I can make renderer invisible if I set it’s materials to zero length array, but I still wonder how to track the visibility of the entities. Gonna test if it is possible to set the entitie’s material to null with no artifacts
Is there a way to set material color per entity?
I need something like in Boid example but with random boid colors. It feels really wrong to set unique shared component RenderMesh per entity… I’m just starting to dabble with ECS so sorry if it’s too noobish question
Thanks. I read about manual rendering via Render class somewhere (maybe first ecs samples used this approach?).
Do you know maybe, is there some way to use MaterialPropertyBlock with manual rendering?
Or any other way to achieve this with ecs? Basically I need to spawn a few thousands spheres of different colors and sizes, how hard can it be