Home Technical Talk

PBR: texturing workflow question.

polycounter lvl 6
Offline / Send Message
Beddall polycounter lvl 6
Hey,

So, like most game artists out there at the minute I've been looking into the whole PBR thing and Unreal4. There seem to be 2 different methods I've seen so far and I'm wondering which is the best to use and when.

Firstly, I've seen objects with texture sheets laid out pretty much as they have been for donkeys years. (1 set of t.pages for 1 object - with each map defining certain properties) So no change there.

Secondly, In the Unreal4 examples, I'm seeing something totally different. They appear to have a library of pre-made materials, which are applied to the object via masks. They seem to use this method on everything from walls to small props.

So my question is this,... is using masks to lerp between pre-made materials going to be the way things are done now? Even for things that would usually have their own texture pages? or is it just a case of Epic trying to show us what COULD be done... if we so desired?

If it's a case of either way could work and it's situational... then what factors do you need to think about before deciding which method to use?

With my little knowledge of the tech side of real time rendering, I assume masking between the materials would come at a higher render overhead than texture pages.
In the 'cave' showcase in Unreal for example, there is a wooden beam with leather wrapped around it, and that thing must have been using 5 or 6 different materials, all nested in one another. It was Crazy Town!

Any help with this would be greatly appreciated.

p.s. sorry if this has been asked a million times before, I did do a search but found nothing... other than a Q&A podcast episode in the making on this subject, but there was no mention of when that was going to happen., and I could do with help with this ASAP.

cheers

Replies

  • d1ver
    Options
    Offline / Send Message
    d1ver polycounter lvl 14
    This is actually a very viable question Beddall. And the answer is definitely something that I believe needs to be heard a bit more. About 6 months ago we had a few people from Epic drop by our studio to tell us about UE4 and their position on material layering was pretty strong: "don't use it unless you absolutely have to".

    Which is an advice I would absolutely agree with after extensive experience with UE4. A small wooden beam prop sampling 12 textures is indeed crazytown. I don't see it working out on cutting edge AAA apart from increasing fidelity on a bunch of main characters or selective assets. On every other asset you get the same fidelity and way better performance going with traditional texturing.

    However it also gives you unprecedented flexibility to change content on the fly during level assembly in engine. So technically, if you're an independent team with a stylized/simplified look that's not going to max out latest GPUs anyway, then layering your materials in real-time might be a trick that will allow you to create more art with less resources and probably should be considered.

    It seems slightly strange that Epic would produce most demo content this way, 'cause I can definitely see it confusing a lot of people. But at the end of the day I guess it's up to everyone to exercise their best judgement when their game is not performing.

    Material layering also dramatically speeds up content production, when you are just reusing a bunch of material presets over and over. But that has nothing to do with being realtime and the same approach can and should be applied without generating any performance overhead. I'll be sharing more information about this a bit later.

    I hope this helped :)
  • Beddall
    Options
    Offline / Send Message
    Beddall polycounter lvl 6
    Hey,

    Thanks for taking the time to reply. You've given me some really useful info there, and I think i can now continue with a less jumbled brain... and slightly more confident in what I'm doing :)

    cheers
  • EarthQuake
    Options
    Offline / Send Message
    This question varies heavily on the engine, and actually has nothing to do with PBR.

    Layering is layering, it is a separate concept to all of the PBR stuff. You can have a layered system and ask the same questions for an engine that doesn't support pbr shaders, or an engine that's entirely NPR (non-photo realistic, eg anime style cell shading). Some engines that have PBR shaders may also support layering, but that doesn't mean that layering is inherently a pbr feature.

    That said, layering can be very useful inside a PBR system, especially since you can define a library of base materials which multiple artists can blend together (which helps speed up the workflow and aids in consistency). It also means a specific material can be updated and propagated automatically to all assets that use that material. Layering is a logical way to work with PBR shaders, especially if you have a library of calibrated content to drive it.

    There are basically two workflows in modern engines that deal with this sort of layering setup:
    1. The engine handles all of this in real time, which as Andrew explains, means very complex and inefficient shaders if you could get the same effect with a simple material. UE4 does this AFAIK.
    2. The engine bakes the layered materials down into unique textures for runtime. This means much less complex shaders but can mean more texture memory. This also requires the content to be pre-processed which takes time. The Order 1896 does this AFAIK.

    You can also set up layered material systems outside of the game engine entirely, very simply by doing it manually in Photoshop, or by using apps such as DDO, Mari, or Substance. Basically, all of this this would be equivalent to #2.

    Now, when to do what? Its too difficult to answer this question. There are too many variables, what your team size is, what the art style is, the type of game, the hardware specs you will run your game on, the specific asset in question, etc. Really this is something you should sit down and have a long conversation with your team (technical director, art director, technical artists, etc).

    If you're doing this on your own as a hobby or to learn, experiment with everything and learn as many workflows as possible, because this will vary from studio to studio, engine to engine, and even project to project.
  • Beddall
    Options
    Offline / Send Message
    Beddall polycounter lvl 6
    Hey,

    Thanks for the reply, also loads of good info there.
    I wasn't sure if it was anything to do with the PBR rendering to be honest. it's just that I've only seen it used in UE4. I assumed this Layering would be what studios will be pushing their pipelines towards as it allows for consistency in quality and style across the whole project, especially with products like Quixel's Megascans being released. In theory it sounds like it would be loads easier from a texturing point of view, just painting masks while having a material library maintained by someone.

    At the minute I'm between jobs and trying to get some new stuff for my 'folio, so I guess I should just go with whichever method is going to give me the best results. :) Tho I usually get hung up on details like...'would I do it this way if I was making a whole game?'... I guess I want to get it across to potential employers that I've thought about these things, considered alternative solutions and not just thrown stuff together to make a pretty picture.

    thanks again for the info, really appreciate it.

    cheers
Sign In or Register to comment.