Hello all,
I'm currently building a sci-fi modular environment and I want to implement the whole Star Citizen/Alien: Isolation technique into the whole process of this piece where I will use face-weighted normals and not have to bake any asset. I would be using tileable textures, trim/decal sheets, and possibly POM. I have to emphasize that I'm asking for game asset optimization rather than just a portfolio piece. I have to research the performance side of why I'm choosing to go with this technique rather than the traditional method of baking high to low res.
I've dug around through almost every thread that I can think of for the methods of how to texture/model/etc, but I couldn't find any relevant information on the performance side of things. Many tutorials of people implementing the same technique use material slots pretty liberally in their objects. Please correct me if I'm wrong, but UE4 will basically do another drawcall which pretty much increases the cost of the asset by the same number of material slots you have as it has to render the object X number of times?
My main question is if I have most assets have anywhere from 2-4 material ID slots for tileable textures/trims/decals, will that cost be cheaper than having a normal map for each individual asset?
Another question that gets brought up is If I were to use deferred decals for my meshes, how costly would it be if other deferred decals from regular gameplay such as bullet holes or blood splatters start to overlay on top of the mesh's deferred decals? Is it viable to straight up use every trim/decal from this technique as a deferred decal or is a regular static mesh decal just as good?
I apologize if i'm not making sense, if this has already been answered in old threads, or if I'm straight up wrong about certain points I might have made. Any information regarding this is helpful!
Please let me know if you need more clarification or actual examples of a scenario of where i'm struggling with.
Replies
About the bullet hole thing:
- Guns leaves bulletholes in games for a very long time now, and overlaying many of them is something that you simply can not avoid. Every game has to deal with this. You can do a simple test by overlaying 20-30 decals and see the performance. You should see minimal to no impact. These bullet hole decals always have a life span variable, so after a short period, they either fade out, or just pop off resulting in a hard limit of how many can be overlaid at a time.
Have you also heard of people exporting the decal and the mesh as different models and then grouping them in a blueprint to avoid the draw calls? Would it be realistic to have to set all that up in an actual production pipeline rather than just have multiple materials?
- Deferred decals add to the shader instructions like any transparent texture. They're cheaper than something completely transparent but they're more expensive than just any mesh.
- Drawcalls will definitely be expensive. Drawcalls are the major limiting factor for performance. It would be cheaper to have one drawcall per asset. However if you're just making much bigger assets and having fewer placed meshes then you might end up in fewer drawcalls overall.
But all of this is a balancing act. You could use the star citizen technique to make the floors and walls of your environment and then just have props and detail objects on top of this using regular techniques. That would probably be quite efficient.Star citizen from what ive seen dosnt run well at all, and Cryengine has had probably 30% performance advantage over other engines for the same vertice count even and easily the best performance of all larger engines at the time (maybe not anymore) .
If you make sci-fi corridors or such with it that are easily cullable, unlikely any issue.
If you have tons of objects on a open map, try really minimize those draw calls
Remember that you can take the same trim or whatever materials for many props, so while an asset may use 4 instead of 1, if 100 use that same 4 its 4 still