Modular Asset Creation Questions

I am working on understanding modular asset creation. I have worked some kinks out on my own, like setting my grid size correctly in Maya so that assets will snap correctly in engine; however, as I play around more questions arise. Any help would be greatly appreciated.

For reference sake my practice models are for a city street scene, so multiple buildings, storefronts, streets/sidewalks, stairs, walkways, signs, awnings, etc.

  1. Can there be too much modularity?

Currently, I have built basic wall panels with openings that allow me to swap out different storefronts or windows so I can reuse a basic panel multiple times. My practice models are low poly, so that I can get a feel for the process. With how I am approaching my modular assets I would be able to create more or less detail. For example, I have a base panel with a window opening. I could then add one of three window frames, then I could add a pane, and then add a grille. This makes individual models less complex, but more (maybe needless) flexibility. Should I just consider creating fully modeled windows that can be swapped out? Or am I still not thinking this correctly?

Here are some examples of my modular assets as of now.

  1. Best practice to texture modular assets.

If I approach model making as mentioned above this leaves me (I think) with two texturing options, at least for the base panels. (Assume that I want four looks to the base panels: brick, wood, plaster, concrete). One, I could create a material with four tiling textures and paint each panel as needed. Or, two, I could create a single texture map and uv map the same panel four times, thus creating four meshes. The first way increases the complexity of the material, the second increases the number of meshes. Is there any drawbacks to either method? If I go the tiling route for painting should I up my poly count on my base panels?

  1. Decals.

Is it beneficial to utilize decals to break up the uniform look of the scene and to add detail (i.e. grime in alleyways, on walls, graffiti, paper, leaves, etc.)? I have never really explored decals so my understanding is very limited. So in practice I do not know if it is practical to use potentially a large number of decals.

I am sure that I have many more questions, but currently these are the stumbling blocks that I am trying to figure out to further my exploration of modular assets. If these questions have been answered elsewhere please point me in the correct direction.

Hi,

The answer here for me would be “depends.” Modularity wouldn’t necessarily be the issue but how often these assets are repeating. You don’t want the worlds illusion to off put the user by seeing the same thing over and over again. Let’s use the wall as a base example. This could be a generic wall that you could use over and over again. If you use the same texture on it and it has the same marking, scuffs, scratches, etc then someone might notice.

BUT if you vary the texture or have a completely different material set up for it you can hide the fact that you’re using the same geometry over and over again! :slight_smile:

In this instance I would create four textures with their own setups. If you want variations of the four different types to keep from creating whole new textures you can use Material Instancing to affect the color parameters and get slightly different materials.

So in this setup. If you were to create everything here and 1 instance for each material this would be what you are rendering.

1 mesh - the wall
4 materials - (if all these are in the scene)
The instances do not cause a additional draw call.

Take a look at our Material Instancing to get a better understanding of how this will work and for your levels.

This is taken from the documentation page for Decal Actors:

The more complex the material the more of a performance hit you’ll take. This is true of any material! Something to be aware of.

You can see how much of a performance hit your shaders are giving by using the viewport view mode and selecting “Shader Complexity.” You can see the documentation here to make sense of what you’re seeing on screen and how it reflects with your performance.

If you have any other questions feel free to ask! :slight_smile:

Tim

Excellent information. I need to sit down, process, and implement so I can better grasp it all, but it looks to be exactly what I need.

Thank you much.

If you have any concerns or issues don’t be afraid to ask! I certainly don’t mind offering the help.

There is a lot of information to take in and it can be a bit daunting for newer users to grasp.

Luckily for you there is a good community here that is willing to jump in and help! :slight_smile:

Tim