[Core Feedback] Merged Models

Greetings :smiley: ! I do believe that Merged Models are one of the better ways to improve performance in a game and to generally keep things organized in your hierarchy. While I am an avid user of this feature, I do think that there is a lot of room for improvement when it comes to their implementation. This is a feedback thread in regards to them, but you’ll also find some useful information on this matter.

1. Properties

There are many properties that will break the merged model (will spawn the children assets within as individual objects). The properties that do so are as follows:

Disable Casting Shadows

Disable Receiving Decals

Visibility Off

Camera Collision Off

Why some improvements to these would be in order:

Disabling shadows on an object can reduce the triangle count by half. (Triangle count of an object is actually 4 times higher than the one given because of how Core renders shadows). This would be useful on smaller objects or objects that are already covered by shadows.

I sometimes use decals to boost lighting. In doing so, I can make the light attenuation radius lower and have less intersecting lights (helps performance) , but sometimes I don’t want a floor decal to intersect with a vertically placed object. Being able to disable them in a Merged Model without breaking it would help tremendously

Visibility Off would be nice to be supported because one could make custom collisions in a Merged Model and lower the object count significantly.

Camera Collision Off is extremely useful for smaller objects or pillars. It can improve the navigation in a game by a huge margin. Not being supported by merged models does also render them useless in a Client Context. Maybe you will notice a drop in object count, but the CPU will not be happy.

This is at run time and you can see that this option will break the Merged Model.

2. Forced Disable Distance Field Lighting

You can think of it as some sort of baked Ambient Occlusion and it is also the primary reason why an object would have shadows that don’t get culled quickly. Unfortunately, this feature can cause some weird artifacts and by disabling it you can get rid of those. Merged Models force disable this feature which is a bit problematic for bigger objects such as buildings (I would not recommend merging an entire building tho). Why is that? Well, with it disabled, the building’s shadow will cull very quickly and it will look odd. It would be nice to have some control over this.

3. Poor LOD management

Each Core Object has its own LOD which is extremely useful in lowering the triangle count based on distance. Performance wise It is not really recommended to have a detailed object seen from a distance in full detail. Merged Models do render in greater detail even at a greater distance, even if a pixel of it is visible. This is actually game breaking and a huge performance hog.

LOD

Bush 02 asset has 7584 triangles (closest). In the picture above, both items are at the same distance and yet there is a noticeable difference in the LOD's. The Merged Model has a noticeable higher count at the same distance which is a huge issue performance wise.

4. Materials

-Custom Tiling:

It is a myth that Merged Models turn on smart materials on the objects and one cannot have custom tiling on them, but there is a grain of truth in that. You can have custom tilling on most objects, but it can sometimes be material / mesh based. For instance, Craftsman Shelf 01 - Crosspiece Mid 01 can support a custom alignment of the texture if it’s using the default material (You can also make it a custom material and it will work). If the default texture is swapped, the new one will turn into a smart material in a merged model.

Both assets are merged with a custom texture alignment, but the custom texture is actually turned into a smart material at run time.

-Special Materials:

Merged Models don’t really support special effects such as Basic Hologram or even glass, but that is not always the case. For instance, one could take the glass material from Urban Vehicle Car - Windshield 01, turn it into a custom material and slap it on a cube and merge it. Voila, glass actually works, but why isn’t that the case with the other glass materials?

There is also a strange behavior with more “exotic” materials such as the flag. The flag material can be in a Merged Model, but it will not work if it is turned into a custom one.

-Gradients:

This would be nice to work with Merged Models from a visual perspective and maybe one could squeeze a bit of performance too . Gradients can add a lot of depth to a material and mesh. They can also be used as a rudimentary form of light baking by overdriving the color of the gradient which in turn save on performance by having lights with smaller attenuation.

5. Miscellaneous features

-Merge Groups:

It would be nice for Merged Models to merge groups too because they can be a bit expensive in terms of object counts. For now, there is a way around this by using an actual object as a parent instead of a group to organize the objects within. One will also need to add invisible material on the parent object.

-Group Select:

Sometimes it isn’t really necessary to make a group, have a Merged Model inside of it and create a template. The problem is that a templatized Merged Model cannot be group selected. Being able to group select them should improve workflow.

-Multiple different properties on the child objects

In case the previously mentioned properties (such as Camera Collision OFF) are going to be supported, it would also be quite useful to be able to have assets within a Merged Models with different properties. For instance, one could have a planter with only the foliage Game/ Camera collisions turned OFF and the rest of the objects as they are without breaking the Merged Model.

1 Like

Really great tips and properties CORE needs to add