Home Unreal Engine

Substance designer in UE4 vs UE4 material editor

So I am just really thinking about the worth of substance designer right now for UE4. It seems to me a lot of the node based functionality in substance designer can be done in the UE4 material editor. So then what would be the point of the node based system in substance designer with UE4. Here is my breakdown of the thinking


UE4
  • Pro:
  1. when you tile in material ID’s they actually multiple and increase the quality of the image
  2. share tilled materials with other materials
  • Cons:
  1. has a limited node count
  2. can only use a max of 15 images in 1 material
Substance designer
  • pros:
  1. At least it can bake
  2. linked update with photoshop
  • cons:
  1. Tiling would not give you more quality since it just updates a single diffuse.
  2. just seems like it would be less efficient
Do you guys agree please give me reasons for either work flow

Replies

  • Jerc
    Options
    Offline / Send Message
    Jerc interpolator
    Using material layering only in UE4 is not practical for real game production for performance reasons on top of the limitations you mentionned.

    Most of the material blending doesn't need to be computed in real time, so you need to find the right trade-off between what is baked as a texture )masks+base materials+bakes) and what you want to layer in the material (surface detail, vertex color blending).
  • VisceralD
    Options
    Offline / Send Message
    Jerc wrote: »
    Using material layering only in UE4 is not practical for real game production for performance reasons on top of the limitations you mentionned.

    Most of the material blending doesn't need to be computed in real time, so you need to find the right trade-off between what is baked as a texture )masks+base materials+bakes) and what you want to layer in the material (surface detail, vertex color blending).

    True but you can also do blending without using material layers. Just by having a material ID and certain colors assigned to certain textures which are tiled, this seems like the optimum solution for me because that way you can share textures for various interesting effects, while still keeping things nice and sharp within the confines of each material ID color.
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    you use both, bake what you can to static textures, and if you need to do vertex blending, or shader effects do that in the shaders of ue4.

    Its not one or the other, they go hand in hand, think of substance as a way to generate content for the material editor to work with.

    Use the material editor for anything that has to be done real-time during runtime on the engine, and for things that require additional data such as the lightvector or the vertex colour

    than anything that can be static do node tree for substance, Really substance just comes down to a node based imaged editor.
  • VisceralD
    Options
    Offline / Send Message
    So what situations do you think substance designer does better then the UE4 material editor
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    Never, because they do Compleatly different things, and have completely differnt purposes.

    your trying to compare apples and oranges buddy.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    maybe Jerc can correct me if i'm wrong here, but doesn't Substance bake down to textures on runtime?
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    I believe so, it bakes down its node-graph at runtime. It is lickly heavily tied into the material instance system of unreal, and bakes down the textures and creates a new material instance for every varration you mode from one network.

    Be too expensive otherwise, since large networks in substance dseginer take upwards of 500ms to calculate.

    Still great for creating variation between placed assets, expecially if you made paramaters for any of the environmental effects applied to assets such as sun bleaching, dirt buildup or damage. Can fine tune the values for those based on where you put it in the level, and what is logical to apply to it.
  • Xoliul
    Options
    Offline / Send Message
    Xoliul polycounter lvl 14
    The 500ms you see in Designer tends to be much faster when running a compiled graph on the API in unreal, going by the few test I did.
  • VisceralD
    Options
    Offline / Send Message
    Ok now I'm confused what does "bake down to textures on runtime" mean, and why is it efficient. So are you guys saying that it is not more efficient, but equally as efficient as the same number of nodes.
  • Casey Wagner
    Options
    Offline / Send Message
    Casey Wagner polycounter lvl 3
    The high millisecond count on the substance nodes confused me at first too, so I asked in the Steam forum for the beta and it was confirmed that the substance is built once at runtime. So the cost associated with a 500ms node is just the initial cost. Though if you incorporate a parameter change into your gameplay that would require a 300ms dirt node to change, then that's 300 ms of update time that will be invested in the change during runtime.
  • VisceralD
    Options
    Offline / Send Message
    Well I guess I'm in a different mindset here because, I'm assuming that the programmers at algorithmic know what they are doing and as far as run-time, it is as efficient as possible. My issue is more with the actual number of MB I'm adding by using substance files. I mean the old school method is having a diffuse, bump, and specmap. But how much bigger will things get now?
  • EarthQuake
    Options
    Offline / Send Message
    There shouldn't be any increase in texture memory when using substance files, as its all baked down into unique textures at runtime basically, right? Unless I totally misunderstand.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    yeah the difference between using material layers in UE4 vs Substance, is that at runtime UE4 materials are still layered so you're still rendering every single layer in the stack, while the Substance materials are baked down to unique textures so you're only rendering the one layer.
  • stry
    Options
    Offline / Send Message
    stry polycounter lvl 11
    My understanding is that unless you update the substance params at runtime, the substance is 'baked' into a texture and stored in a cache. So the final texture is calculated only once.
  • ambershee
    Options
    Offline / Send Message
    ambershee polycounter lvl 17
    Substance is a procedural texture generator. The material editor is a shader editor - they do entirely different things.

    Substance can generate it's textures at run time, which means you aren't doing any blending, but you also don't benefit from the dynamic stuff a shader can do.

    I'm not sure why this is hard to grasp :p?
  • Rooster128
    Options
    Offline / Send Message
    Rooster128 polycounter lvl 8
    I just don't know about using substance to change parameters inside UE4. I love using Substance Designer to make textures because of its parameters, but I always bake out from designer and bring those textures into UE4, and set up any extra parameters by hand in the material.

    Even if all the substances are baked at runtime, if you consider how much time is spent baking just one of them, and then consider how many substances you might be using in the editor... that's a lot of time spent at start up to do something that would be instant if you had already baked your textures and just parametrized what you needed to.

    Basically, I don't get the point of using substances INSIDE of UE4.
  • Jerc
    Options
    Offline / Send Message
    Jerc interpolator
    There are different cases where using substances at runtime can be useful:

    - Download size, if your game has to be downloaded and especially if it's free to play, you want to have the smallest game as possible and "expand" the texture package when you launch the game for the first time for example.

    - Customization, instead of storing a lot of different textures and creating crazy branched shaders in UE4, you can use a substance to store all the customized elements from your characters/vehicles.

    - Dynamic masks, those are extremely fast to compute and can allow you to create some very cool effect that are hard to do using a shader only.
  • ambershee
    Options
    Offline / Send Message
    ambershee polycounter lvl 17
    Rooster128 wrote: »
    Basically, I don't get the point of using substances INSIDE of UE4.

    I use them for user-generated content. Instead of sending whole textures across a network, we can just send a few substance params.

    Other than that, I usually import textures generated by substance, rather than tweak in the editor.
Sign In or Register to comment.