• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

PBR confusion

Messages
247
Country
netherlands
Hello all,
Thanks to the amazing work of Vitus, I have devled into Bklender 2.82 and the new Blender2P3D toolset. However, I'm already running into trouble. The different PBR textures and how they are derived from my Substance Suite programs is causing me endless confusion.

First of all:
- A bump map = a normal map, right?
- What is a detail map? It's listed as a separate type of map on the SDK website, but I always thought it was the same thing as a normal map...

Then, I'm trying to figure out how to export my tetxure from Substance Designer for use in Blender. I have made a simple modification of an existing material that has a tiled pattern, for an apron. From Substance Designer, I get a bunch of maps:
- ambient occlusion (AO)
- base color
- diffuse
- glossiness
- height
- metallic
- normal
- roughness (this one needs to be inverted to get the smoothness map)
- specular

My understanding is that some of these are mutually exclusive, and I'm guessing this was done to afford greater flexibility. That said, P3D expects certain maps to be combined. For example, metallic and roughness (inverted to smoothness) and AO should be one texture. However, I have no idea how to... Can I set this up in Substance Designer? Or must I go through Substance Painter to get them?

EDIT: I believe I found how to pack the maps into a single texture (Thanks Youtube!). But this brings me to an additional confusing... Whatever map I add, I don't really see anything change on my model. It always looks the same, as if the other maps have no real effect. I'm suing the nodes in the shader editor, pre-populated by the toolset, and not changing anything in there except for loading the right textures in the right places (that is: diffuse, metallic and normal).
Another issue I'm having is that my Alpha channels don't seem to be displaying. They should be loaded and working just fine (they did in blender 2.79 and in MCX) - in Blender's material settings I also enabled the Alpha blend so that it seems to be working in the material preview, but not in the actual 3D view. Did I forget something?

Any help would be greatly appreciated!
Benjamin
 
Last edited:
Hi Benjamin,
Glad you found your way into Blender!
Microsoft is to blame for your confusion regarding the normal map. They started mixing up terms that have already been established at the time of FSX, but still to this day it's causing misunderstanding. What Microsoft calls a bump map is a de-facto normal map. I guess they called it bump map because it can contain "bumps" for your material.
I never used the detail map, so I'm not the right person to give an educated response. But no, it's a completely different matter. For most cases you can just ignore that texture slot.

I'm fairly new to the Substance suite myself, but the way I understand it is that you cannot use the materials, prepared in Substance Designer, directly in Blender/P3D. You generate you materials in the designer, but you still need to generate your texture maps using substance painter - in which you can grab your prepared materials.

From Substance Painter you can export into a quasi-Prepar3D format that should be ready fairly quickly and which you can then plug back into Blender.

It depends a bit on your workflow where and how you want the texture maps to be converted to the P3D standard. Substance Painter can be modified to spill out maps that conform - more or less - to P3D. But to get you started, you could simply use Photoshop/Gimp/Paint.Net to do the necessary adjustments, or follow the SDK and use the imagetool that is provided with it.

For your P3D PBR material you'll need:
- Albedo map - in this case probably your "base color".
- The metallic map should be converted from grayscale to rgba. Use the r channel for metallic, g for smoothness (inverted roughness) and the alpha channel for ambient occlusion.
- The normal map needs to be adjusted, as described in the SDK - you'll need to convert to RGBA and copy the maps around.

I hope that helps?
 
Hi Vitus, thank you for your prompt reply and useful answrs (and the work you're doing to get everything to work!)

Hi Benjamin,
Glad you found your way into Blender!
Microsoft is to blame for your confusion regarding the normal map. They started mixing up terms that have already been established at the time of FSX, but still to this day it's causing misunderstanding. What Microsoft calls a bump map is a de-facto normal map. I guess they called it bump map because it can contain "bumps" for your material.
I never used the detail map, so I'm not the right person to give an educated response. But no, it's a completely different matter. For most cases you can just ignore that texture slot.

Got it. I'll ignore the detail map for now.

I'm fairly new to the Substance suite myself, but the way I understand it is that you cannot use the materials, prepared in Substance Designer, directly in Blender/P3D. You generate you materials in the designer, but you still need to generate your texture maps using substance painter - in which you can grab your prepared materials.

From Substance Painter you can export into a quasi-Prepar3D format that should be ready fairly quickly and which you can then plug back into Blender.

It depends a bit on your workflow where and how you want the texture maps to be converted to the P3D standard. Substance Painter can be modified to spill out maps that conform - more or less - to P3D. But to get you started, you could simply use Photoshop/Gimp/Paint.Net to do the necessary adjustments, or follow the SDK and use the imagetool that is provided with it.

For your P3D PBR material you'll need:
- Albedo map - in this case probably your "base color".
- The metallic map should be converted from grayscale to rgba. Use the r channel for metallic, g for smoothness (inverted roughness) and the alpha channel for ambient occlusion.
- The normal map needs to be adjusted, as described in the SDK - you'll need to convert to RGBA and copy the maps around.

I hope that helps?
So I happened to find this:

...and I used it to pack these three different textures into one and export from Substance Designer to TIF, which I can load into Blender. I forgot about the normal map though, thanks for reminding me about that! I remember now having used MCX in the past to convert them. Now, you say that painter will export a 'quasi-Prepar3D' format. How is 'quasi', and not the 'actual'?

Then there is this pesky alpha issue. Alpha channels don't seem to be displaying properly. They should be working just fine (they did in blender 2.79 and in MCX) - in Blender's material settings I also enabled the Alpha blend so that it seems to be working in the material preview, but not in the actual 3D view. It's quite possible I simply forgot to check a box somewhere... Apart from loading the diffuse/albedo with the alpha channel and enabling 'alpha blend' in the material settings, what else might need to be done to get an alpha to render correctly?
 
Hello...

A minor correction from what Vitus said...

The metallic map is a combination of 2 or 3 maps. Red Channel (not to cause confusion is also called a metallic map), I call it the Metalness map. Green channel is the Ambient Occlusion (AO). Make sure the Blue channel is Black. The Alpha channel is the Smoothness Map [within Substance Painter (SP for short) is the Roughness Map], though there is a Smoothness Map within SP. Each of the maps is a 8-bit grayscale textures. Therefore, a 24 - 32 bit total makes up the metallic map.

One workflow in getting PBRs in Blender from SP is to export it as an ".FBX" file to SP. Once the maps are combined, etc... to export it out of SP back into Blender as an FBX file.

I've been meaning to create a template, lack of a better word, for SP to create the metallic map and normal maps, etc, but here is the thread to assist you in that for SP:


Don't worry about the 3ds max part of it ;)
 
Last edited:
I wanted to elaborate on this topic, because I believe you are not quite clear on some of the techniques in 3d modeling in general. I hope this helps you and others to get started with this.

I think you're misunderstanding the use of the tools you are using. The purpose of Substance Designer is to create a "recipe" for a material - unspecific to the geometry that you want to use it for. This by itself is pretty much useless, because the materials need to be applied to your specific model and baked into a texture map. This is where Substance Painter comes into play. You use Substance Painter to apply the materials, taking into consideration the geometry of your object. Things like ambient occlusion depends on the geometry of your 3d model and is baked into a texture which will then only work with your specific geometry, using your specific UV map!

To help you and others to better understand this, let's go through the basic steps to get a new model into FSX or P3D. I know that you'll know most of this already, but it's always possible you skipped a step somewhere.

1. create the geometry
While it takes a long time to master, this is probably the most straight forward thing of the whole process. You already have that one down.

2. UV map your model
This part is probably hated by the majority of 3d artists. The goal of this operation is to project your three dimensional model onto a 2D plane, the UV map. Once you have the UV map, you can start painting your texture maps. Generating the UV can be a very tedious process, but I think if you put your seams at well thought of positions, most of the work can in fact be done by Blender!
Some tips to make it easier: select your object, hit tab for edit mode, then "2" for edge select and mark the edges where you want the uv map to be cut. Right click and select "mark seam". Once you're happy, switch to face mode by pressing "3", then a to select all. Press "u" for unwrap and select "unwrap". Switch to the UV Editor view and check if the selected object is mapped OK, if not, rinse and repeat.

If your Object keeps getting skewed in the uv map, add more seams. Sometimes it helps splitting up the objects in multiple part, using more seams, to keep the distribution even.
You can let Blender take care of the distribution on your UV map, even with multiple objects! Simply select all (a) while in object mode, switch to edit mode by hitting tab. Then switch to face mode (3), select all again (a). Press "u" for unwrap, select "unwrap" and wait until Blender is done. The result should be a UV map of all selected objects on ONE map - scaled in a way that the objects have a uniform pixel density.
In most cases you will need multiple texture sets for your scene. In that case select all the objects that share one texture map and unwrap only those, then proceed to the next set of objects that share a texture map, etc.

3. With your 3d model finished and the UV out of the way you can now move on to Substance Painter. Substance Painter will first analyze your 3d model and bake some fundamental maps, based on the geometry and your UV map. These maps are then used as a basis to calculate shininess, grunge, metallness, bumps, etc. - all specific to your model!

Like Doug wrote, export your Blender scene as a FBX file, create a new SP project, using your model as the reference. The first step must always be to bake your fundamental maps (AO, normals, curvature, thinness). Once that is done you can apply the material you generated in Substance Designer and drop it onto your model. But make sure to check out the Smart Materials as well - it's amazing how quickly you can generate an amazing looking texture.

4. Export the texture maps
Once done in Substance Painter, you can export your textures. Doug linked a good article on that, check it out!

5. Import everything into Blender again
Now that you have your textures, open your blender file again. Now is the time to startup our Blender2P3DFSX addon. Go through the different objects in your scene and generate the materials. Select PBR Material under the P3D/FSX material settings, this will populate the shader node. All you have to do now id to plug in the textures that were generated by Substance painter. To do so, open the shader graph, by changing the view to "shading". Go through the different texture nodes in the graph and plug in the SP textures. Use the albedo texture in the diffuse texture node, the metallic map in the metallic map node, normal map in the normal map node, etc. If you don't need some of the nodes, e.g. the emission node, you can leave it empty, unlink it, or just delete the node.

6. Once all that is done, you should be able to export your model, read the wiki on some of the details of that process.



I hope this step-by-step clarifies the process a bit better for you. But let me know if you need more information on some points.

Then there is this pesky alpha issue. Alpha channels don't seem to be displaying properly. They should be working just fine (they did in blender 2.79 and in MCX) - in Blender's material settings I also enabled the Alpha blend so that it seems to be working in the material preview, but not in the actual 3D view. It's quite possible I simply forgot to check a box somewhere... Apart from loading the diffuse/albedo with the alpha channel and enabling 'alpha blend' in the material settings, what else might need to be done to get an alpha to render correctly?
In order for the alpha blend to take an effect in P3D/FSX, also make sure to switch the blendmode in the p3d/fsx material parameters. For PBR material there's the Render Mode dropdown, which should be set to "Masked". For Specular material, click the button labeled "Transparent" under Framebuffer Blend. This should also make the Blender-specific changes to display the transparency in the editor. However, check the render-mode of your current viewport! Transparency is disabled if you're in Solid mode. So, switch to "Material Preview" to see the effects in the editor.
 
Thank you very much Vitus
A real pleasure, a reading that is drunk without thirst :)
 
Vitus and Doug, thank you for your helpful replies! Overall this certainly helps. Let me get into a couple things.

Doug, you mentioned that that the blue channel must be black. Is that because 'black' usually means 'no data' in this sort of context? And will do Substance painter do this automatically?

Vitus:
2) I had no idea that Blender 2.82 could unwrap all objects at the same time! This is major! 2.79 could NOT d this and it was a HUGE pain. Thanks for highlighting this. It's one of the reasons I hated UV mapping. I suppose this also means that objects with different material assignments can be unwrapped onto the same UV map?
5) So it really is just 'plug 'n play'. That's good to know. I had a feeling, but wanted to make sure.
Alpha) Darnit! Cna you believe I had the viewport set to solid? Definitely another hickup from my transition to 2.82. There are some differences between what and how the different versions display objects in the viewport. Unless I didn't know how to, but in 2.79 'solid' would not display the textures. Thus, in 2.82, when I got the textures I thought I was in maerial preview, but I was not. Thanks for pointing this out. Everything look good now with respect to the alpha channels! Now to get the PBR working properly :p
 
Doug, you mentioned that that the blue channel must be black. Is that because 'black' usually means 'no data' in this sort of context? And will do Substance painter do this automatically?

I wouldn't say "not" any data, but "empty" in this case... The other maps, such as the Metalness can be black if the material isn't metal. I wouldn't be surprised if it is used in the future for something. Concerning SP painting it as black, I would say "no" it will not unless you tell it to. It is specific in the SDK concerning the Blue channel be black though.

Come to think of it, I haven't bothered to test with the blue channel being another color EDIT: grayscale other than black. I might have to check on that... It might actually be fun to see what happens. :)
 
Last edited:
I suppose this also means that objects with different material assignments can be unwrapped onto the same UV map?
Yes, you can have shared UV maps. Not sure when this would be useful though...

Come to think of it, I haven't bothered to test with the blue channel being another color other than black. I might have to check on that... It might actually be fun to see what happens.
Just want to point out to Benjamin, and to stress a point we talked about before, Doug doesn't really mean "color", since ONE channel does not contain color. If you just look at ONE individual color channel, you're essentially looking at a grayscale image.
 
yes - "Color" in this case is referring to grayscale which includes black and white. Art classes a long time ago... didn't consider black or white as colors either- My mistake. :banghead:
 
Yes, you can have shared UV maps. Not sure when this would be useful though...
Ah, I see I got the terminology mixed up... I don't mean that materials share a UV, rather that they are unwrapped onto the same texture... Still not sure if I use the correct terminology, but the point would be to cut unnecessary texture files to increase performance.
 
Back
Top