x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Material optimisations

Hi Epic/Community,

I wonder if anyone can shed light on best practice for material performance.

I don't necessarily have performance issues right now, but would like to get in to the best practice to mitigate it down the line.

So my question is, do we have to structure materials like the M_Owen_Master (in the Content Examples) or, can we break the M_Owen_Master in to multiple materials without a performance hit.

I am open to suggestions, as from a programmers perspective, M_Owen_Master currently resembles a "God" class and breaks the single responsibility principle.

Hope anyone can help.

Product Version: UE 4.21
Tags:
more ▼

asked Nov 22 '18 at 08:21 PM in Rendering

avatar image

vgj12756
1

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

Hey unfortunately I don't really know about the materials you are talking about but here are couple of general ideas that always help.

1) Less materials is better -> different engines allow to optimize use of multiple materials via batching them together, but ultimately it comes down to keep exchanging information between GPU and CPU to minimum. Beside the performance it can also help to make it easier when you need to work with materials via code.

2) Less textures is better -> especially if you are able to tile your textures, try creating texture atlas, where you keep different textures together, this will allow you to send less information onto GPU, it's possible to keep albedo, specular, roughness etc. in same atlas, depends on your choice

3) Batch stuff together -> this is not only about materials, but if you have lot of same objects, consider using Hierarchical instancing, this speeds up rendering immensly

4) Only render what you need -> this obviously means all general ways to cull and simplify scene, interesting stuff for UE especially for large scenes is terrain LODs generation, asset streaming, this also goes for the complexity of the objects you are rendering

5) Profile -> If you feel your scene is not rendering fast enough, you will need to figure out where is the problem, UE has a pretty neat GPU profiler that helps a lot see here: https://docs.unrealengine.com/en-US/Engine/Performance/GPU

6) But... -> With that said I'm not saying you shouldn't use multiple materials per mesh, and it can have its reasons, like if you need to swap them it's probably easier if materials are separate rather than if it's all one huge material

Ultimately you want to figure out if there's a problem or not, that depends on what hardware you are going to aim your project on and what performance you want to get. Good advice is always, don't fix what isn't broken :)

Hope I managed to answer at least a little bit of what you were asking.

more ▼

answered Nov 24 '18 at 12:29 AM

avatar image

ex3me
78 4 5

(comments are locked)
10|2000 characters needed characters left

It is almost irrelevant in terms of performance if you use instances of large generalized master material or break it down into several special case materials. Whatever takes less production efforts is usually preferable.

more ▼

answered Nov 24 '18 at 01:33 AM

avatar image

Deathrey
7.7k 129 29 290

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question