P3D v4 PBR headache

#1
Hi,

I don't usually ask for help as I like to work things out for myself, but the PBR in P3d v4.4 has me beat! no matter what I try almost every material is like reflective glass, far to reflective or metallic even in 3dsmax itself. No matter what the Metallic materials Red, Green and Alpha channels are I get the same or similar result, but nothing that looks like it should. I've tried both Metal and Spec workflows thinking maybe it was actually Specular workflow but that didn't seem to work correctly either.

I use Substance painter for the PBR and also dabble in Unity where my models show perfectly well.

One example, this is suppose to be concrete, looks fine in Substance and Unity, but looks like this in 3dsmax and P3D. I'm not bothered about getting this particular object working it was just a test, just want to find out why its doing it.

1.jpg


Earlier last year I was using Dovetails Flight Sim world and had some issues with that as well, but at least the materials reasonably looked the same as they did in Substance Painter.

Does anyone here have a small working object or something that I could try? (max file, p3d bgl, required textures, etc) to see if I get different results with someone else's work and compare it between my export and your bgl......I just want to know if its what I'm doing, my aging PC, my installation or whatever it may be.........Its almost pull my hair out time.

thanks

Stevo ;)
 
Last edited:
#2
Here's another quick test object I did, this was a downloaded object with quite over exaggerated substance painter textures.

In Substance Painter
sp.jpg


In P3D

4.jpg


I had to alter the exported metal and Smoothness materials otherwise it just looks like a mirror, but it still just doesn't look right, the Gold looks more like a jelly baby, the end caps are nowhere near (in fact the metal parts just looks wrong), the normal map looks odd, and the red paint is really flat and washed out, probably because I had to invert one or both (I dont recall) of the metal materials to remove the mirror finish that was over everything.

Quite frustrating when i can place the same models in the Unity engine and it just works......

Stevo ;)
 

Pyscen

Resource contributor
#3
Hello...

Unfortunately,... I don't have a small object but may I can suggest in looking at the textures for comparison with the textures between Unity and P3Dv4.4? or are there any differences between them? I believe there are differences in how Unity processes the Metallic map compared to P3Dv4.4 (or Max) though.
 
#4
Hi

I had the same thought......Unity uses an Albedo, Metallic and a smoothness map (in the Red and Alpha channel) a Normal and AO very much like P3D. It uses a metallic workflow but the smoothness map is a Specular workflow glossiness map (which is an inverted roughness map). This is what P3d must also use and it makes sense because I kept having to flip the channels to remove the mirror like finish I was getting.

Anyway I exported the texture from substance painter as Unity5 Metallic adding the Ambient Occlusion to the Green channel. Interestingly I got more of what I expected doing it this way, however when I move around the object there is an odd yellow flicker. In the attached zip file is a short video, the flicker is at about 17 seconds, I don't know what is causing it??

I just tried a simple switch.....In Substance Painter
A.jpg


Unity
c.jpg


In P3D
b.jpg


Unity PBR

Albedo - as exported from Substance

Metalness
-Metallic map in Red channel
-Glossiness in Alpha channel

Normal map
As exported

Ambient Occlusion stand alone map

P3D PBR

Albedo - as exported from Substance

Metalness
-Metallic map in Red Channel
-Ambient Occlusion in Green channel
-Blue not used (black)
-Glossiness in Alpha channel

Normal map
Red channel moved to Alpha channel, Red channel black

I formatted the textures as I would have for Flight Sim world from its SDK due to the P3D SDK being a bit thin at the moment. Flight Sim world had a combined map with Roughness on the Red channel, Metalness on the Green Channel and AO on the blue.

Albedo - DXT1
Metalness - 8, 8, 8, 8 ARGB (although DXT5 worked fine)
Normal - DXT5

At least it now looks more like i expected it to look....Need to find out why it is flickering now...... It would be nice if a custom environment map could be used. Substance and Unity are using the same one.

need to see if my concrete test acts the same, exporting as unity textures.

That's for another day

Stevo ;)

EDIT: The Flicker is apparent when the Dynamic Reflection Setting is on. I still dont know if it is a bug or something I have done.
 

Attachments

Last edited:

Pyscen

Resource contributor
#5
Interesting...

Your findings on the DXT format for the Metallic map... (Metallic - 8, 8, 8, 8 ARGB and DXT5 - is ok). I have also noticed that ImageTool v4.4 of the SDK can't read the PBR materials of the F-16 base textures - meaning that it is not a format that is commonly used. The "DirectX Texture Tool (64-Bit)" shows it to be "Four CC 8-bit: DXT5". Makes me wonder what the correct format is and I wonder if that could be causing your flickering - what is the proper DDS format?
 
#6
It could just be how P3D is rendering them. Just because it uses PBR materials doesn’t mean it’s going to render them the same as unity.
But there are some things to check such as the weird normal map conversion, and Roughness maps vs smoothness maps (they’re the same but opposite)
 
#7
Just a question : the fact that a game engine uses PBR, does that mean all game engines will use same PBR rendering ?
cus For P3D it's just the start ( A TEXT REMOVED BY THE AUTHOR ) but let's give them time
maybe in future versions , we will see better PBR rendering
 
Last edited:
#10
Interesting...

Your findings on the DXT format for the Metallic map... (Metallic - 8, 8, 8, 8 ARGB and DXT5 - is ok). I have also noticed that ImageTool v4.4 of the SDK can't read the PBR materials of the F-16 base textures - meaning that it is not a format that is commonly used. The "DirectX Texture Tool (64-Bit)" shows it to be "Four CC 8-bit: DXT5". Makes me wonder what the correct format is and I wonder if that could be causing your flickering - what is the proper DDS format?
Ah, I'll look into that when I next get a moment.

Stevo ;)
 

Pyscen

Resource contributor
#11
Update: I think the format used for the F-16 Base Metallic textures is "DXT5 ARGB 8 bpp - Interpolated". Unfortunately, I do not know what the equivalent would be in Substance.
 
#12
Thanks.

Well I use photoshop and the nvidia dds plugin to format the textures, DXT 5 ARGB 8bpp is actually the other format I used 'Metallic - 8, 8, 8, 8 ARGB and DXT5 - is ok' I can't recall if it flickered or not using that format however.

;)
 
#13
Thanks to a fellow user (who managed to reproduce the flicker but not as bad), I found that the flicker only occurs on the Runway, it does not seem to occur on taxiways or aprons.....So maybe a P3D bug?

Stevo ;)
 
#15
Hi

I have created my own based on the Unity 5 Standard Metallic it seems to work ok now.

In the export configuration tab I added 3 output maps.

Albedo = RGB+A
Metallic = R+G+B+A
Normal = R+G+B+A

$mesh_$textureSet_Albedo - RGB is Base Color, Alpha is Opacity

$mesh_$textureSet_Metallic - Red is Metallic, Green is AO, Blue is left blank, Alpha is Glossiness (from converted maps)

$mesh_$textureSet_Normal - Red is blank, Green is green channel of Normal DirectX, Blue is Blue channel of Normal DirectX, Alpha is Red Channel of Normal DirectX

For this to export correctly you also need to add Ambient Occlusion, Opacity and Glossiness (due to P3d using a Specular gloss instead of a Metallic roughness) to your texture set.

I have in my texture set :-

Base Color
Roughness
Metallic
Normal
Ambient Occlusion
Opacity
Glossiness

These are exported as .tiff then converted to .dds with the Nvidia dds Format tool via photoshop.

Hope that's helpful

Stevo ;)
 
Last edited:

Pyscen

Resource contributor
#17
Hi

I have created my own based on the Unity 5 Standard Metallic it seems to work ok now.

In the export configuration tab I added 3 output maps.

Albedo = RGB+A
Metallic = R+G+B+A
Normal = R+G+B+A

$mesh_$textureSet_Albedo - RGB is Base Color, Alpha is Opacity

$mesh_$textureSet_Metallic - Red is Metallic, Green is AO, Blue is left blank, Alpha is Glossiness (from converted maps)

$mesh_$textureSet_Normal - Red is blank, Green is green channel of Normal OpenGL, Blue is Blue channel of Normal OpenGL, Alpha is Red Channel of Normal OpenGL
Hello...

The Normal map shouldn't have a Alpha Channel until or after it is converted (Alpha is Red Channel). If you have to have the Alpha channel prior to - then make sure it is Opaque (or white) - not transparent (or black). This could cause it become shiny or as you have found it, Reflective. This could be what is causing the flickering that you are seeing as well.
 
#18
Hi,
I succed in the first step (3 ouput maps) in order to create an export preset for SP 2017 but I block on "For this to export correctly you also need to add Ambient Occlusion, Opacity and Glossiness (due to P3d using a Specular gloss instead of a Metallic roughness) to your texture set. ".
Do I have to add 3 different $mesh_$texture ... each with the appropriate information ?

Here my trial ...
Essai.jpg

A very good idea will be to export this preset and share this export preset, if some one has so time to spend ? or if you can give more informations about adding AO, Opacity and Glossiness in the export preset.

Thanks !
PS : https://support.allegorithmic.com/documentation/spdoc/creating-export-presets-98959398.html
 
Last edited:

Horst18519

Moderator
Staff member
Resource contributor
#19
Don't want to hijack this thread but does anyone know how to set up a transparent material in Max using PBR materials? The opacity map isn't available for PBR materials so all my transparent materials are rendered opaque in the viewport. (of course in the sim everything is ok)
 
#20
Hello...

The Normal map shouldn't have a Alpha Channel until or after it is converted (Alpha is Red Channel). If you have to have the Alpha channel prior to - then make sure it is Opaque (or white) - not transparent (or black). This could cause it become shiny or as you have found it, Reflective. This could be what is causing the flickering that you are seeing as well.
The exporter in Substance painter puts the correct channels into Green, Blue and Alpha for me so i don't have to mess with it. I simply convert it to .DDS, when I open the Normal map in photoshop the channels are correct. I'm not sure how else would I do it without using Imagetool + cmd prompt apart from copying the Red channel to the alpha manually which is how i used to do it??

;)
 
Top