PBR Tutorial Series

Thank you so much , you help me a lot.

I can’t wait

Sorry for necroposting, but I was just wondering how far you are with that video?

Thanks for rubbing the magic lamp. :wink:
I noticed the OP images are gone. I’m going to do another material right now and replace the images with new ones, then I’m looking into the second part of the tutorial and what to write about. Because of my slow internet uploading a big video is a bit of an for me but if I could I would. And if there is anything particular you don’t understand from the texts feel free to ask away for you have two more wishes left. ^^

Will you be covering any specifics related to UE4’s PBR?

Well, I’d be very interested to hear how you generate your normal maps from the photo! There’s tons of different ways to do it, and it would be interesting to hear about yours. Oh, and possibly the displacement map too.

@, Thanks man. Glad you find useful. :slight_smile:

@Aumaan Anubis, Sure thing. I’m just thinking what specifically to write about. I think I will just do a metal material for the next part since the first was no metallic.

@Quark, What I have done for the materials above was simply generating the normal and height map in Bitmap 2 Material 3. With no complicated settings at all. But you can get really good normal and height from crazybump too.
One important note, I’ve seen a lot of artists downloading a texture, making it PBR ready (taking out all the light and shadows) and then generate normal map and other maps out of it. Depending on the situation it can be so wrong. Because if we took out all the light and shadow information out of the rock texture and made it a base color then we have made it almost flat colors and the normal too will be flat. I generate my normal maps from , and not . (Notice I haven’t had much time to take out all the shadows in the second map, but you get what I mean).

Edit: Sorry for all the text. To sum it up for others:
If a surface wasn’t bumpy then it wouldn’t have much shadow/AO information on it. If you want good normal map for rocks and generally organic stuff generate it out of the diffuse before you eliminate the shadows so the normal map generator puts some good depth into it.

Very cool guide, thanks :slight_smile:
I’m just getting into PBR world (coming from oldschool Diffuse-Specular-Normal setup). What if we want to transfer high-poly details to low poly model by baking AO? Obviously, engine would not be able to dynamically AO low poly models with high-poly AO details :smiley: In case, we need to create a separate AO map, right? (as we should not bake it into Diffuse anymore)

awesome post!

Now I just need to see if applying these rules to particle materials would work or not. I’m not a fan of how particles look with detailed normal maps, I find it removes a lot of the soft depth and translucency of a smoke texture, for example. A lot of people add translucency formulas into the materials, but in my experience you can a very similar look by removing a lot detail from your normal map and combing it with a spherical normal map… without all the extra math cost. But I think the rest of could work nicely in addition.

Just need to see if the difference is worth the extra cost or not.

A better way to remove lighting information from source is to either magic wand the shadows or select color range til your shadowed areas are all selected. Then select>modify>expand by a few pixels. Then select>modify>feather half of what you expanded by.
Then run filters>other>offset to fill the selections
For example Mayang texture:
http://www.mayang.com/textures/Stone/images/Rock%20and%20Objects/stone_5160235.JPG

Becomes :

Wow, that looks pretty convenient. Thanks for the hint!

I’m surprised how stays on public for so long being absolutely PBR-incorrect. Sorry, author, I suggest you fix the thing as you are helping thousands of artists grow the wrong way.

  • Diffuse must not contain light direction hints. Reducing contrast doesn’t help much, as your eye is able to catch light direction on diffuse, your texture will look fine only in same lighting conditions. A good advice is to rotate your sphere bottom-up in Marmoset. King Mango, btw gave an example of a proper diffuse texture. Doesn’t look pleasant to the eye? Correct, thats pure diffuse then.
  • Reflectivity should not contain any data at all for material. Reflectivity IS material and since you have the same rock surface on all pixels of your texture you need to have same reflectivity values. By having varying information stored in reflectivity map you are directly affecting the amount of reflected light. And by making reflectivity darker than normal you are making the final rendered area even darker.

A common suggestion to everyone using Marmoset for authoring PBR materials:

  • Remember, Marmoset is lying for the sake of making your work looking better. It is a showcase software, not authoring. No realtime game engine offers same render as Marmoset.
  • Make a lighting setup in Marmoset with parametric lights only. Use it as often as you use HDR’s for testing your assets.
  • As I mentioned before, flip the model to see if your tiled textures still look natural under same lighting. If not, you’re not done with it )

Good luck, keep fighting.

How even?..

You right. Really strange with “how to”. Seen it in different forms around the web.
And many apps use similar way to create Albedo from Diffuse map. ShaderMap v3 for example.

Instead of fill shadow area with offset texture copy, better use Content Aware Fill and play with disabling or enabling color adaption.
Much more amazing result especially on textures with many small areas with shadows. :wink:

Great idea. In between computers atm but can’t wait to try idea. :cheers:

OP is a workflow replicating mega scans in marmoset. Not specifically for game engines. I intended to do another tutorial for UE4 and one for CE following the OP but never really got the time to continue it.

Side note: In game engines reflectivity is mostly constant value because it’s just hard to get it 100% right. But if you can, it’s better you use a specular map for non metals. Rock and moss don’t have the same reflectivity value. Leaves and branches don’t have the same reflectivity value and so on. So in such cases to stay 100% correct (if that is intended) it’s better to use a specular map instead of a constant value.

Side note 2: In reality surfaces are 3D. In game materials surfaces are flat. Hence, sometimes you are forced to bend the PBR rules just to get the true to life look for a material. For example when there is no specular occlusion happening in game engine you have to use a specular map and darken the desired areas.

PBR rules have room to be bent in many cases to achieve a similar to reality look since the material surface isn’t supported by enough geometry like it is in reality.

Try CameraRaw as filter first it allow drastically lower shadows area.
Grow Shadows and Blacks sliders up to 80-90%
Reduce Contast a little bit (about -5-10%)

But be carefully, and not cleanup so much details :slight_smile: