Home Technical Talk

Trying to Understand Star Citizen Workflow Optimization for UE4

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

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    You end up with more draw calls, and more polygons,  thats true. Where this technique shines is the resolution. Because of the tiling materials, and the decals, small details can have much higher resolution up close than using the regular method. Overall performance really depends on what hardware you are running. But basically any videocard from the last 3 generations should should be able to handle this case absolutely fine.

    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.
  • Danielfyang
    In terms of quality for a game asset, from a dev’s stand point, would you say that the time you save overall from rapidly implementing this technique offset the cost of having more material slots? 

    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?
  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    Keep in mind that star citizen doesn't use Unreal. And the other key limiting factor is they don't plan on shipping star citizen on any console. Consoles would be the major limiting factor here. So here's some points to consider: 
    • 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.  
  • Danielfyang
    Thanks @sprunghunt! That was definitely good to consider for the props
  • Shrike
    Offline / Send Message
    Shrike interpolator
    draw calls in the end is what is most likely killing you, so thats a important consideration. And the issue is that those are also CPU bound.
    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
Sign In or Register to comment.