PBR Help needed!

Hi,
After many years since my last scenery design, I am now trying to design my first airport scenery in P3D v4.5. I followed all available tutorials and all went good until I reached the point of creating the runway. Without PBR enabled, again all good however trying to make it a PBR runway I end up with always the same result - Runway is always reflective as if it's raining for 10 days non stop and is all flooded! :)

I searched everywhere and even though I came across 1 or 2 similar cases, their solution didn't fix my issue unfortunately.
Here is the procedure I follow, I hope some of you guys can easily identify my mistake and point me to the right direction.

I downloaded the PBR texture from textures.com to be sure I am not doing anything wrong in PBR texture creation and then:

1) I create the runway model in Sketchpad and I texture it from a new material I create having the albedo from the PBR pack I downloaded. ( I can't create the PBR material in sketchpad as I don't have V-Ray but I assign the normal/metallic textures through Model Converter X).

2) Then I export the 3D model and load it in MCX. In MCX material editor, I find the runway texture and set "Is PBR material" to "True", "Render Mode" to "Opaque" and assign the bump (normal) and metallic textures. I then save the textures (DDS) as normally and export/build the scenery.

Result in P3D is always reflective like a mirror.

I even tried creating my own PBR in Materialize and again even with different PBR set result in P3D is still the same.

Here is a screenshot showing the issue:

Capture.JPG


Any ideas?

Thank you in advance

Regards,
 

Pyscen

Resource contributor
Hello

It will have something to do with your metallic map... what do you have assigned in each channel and what do they look like? Maybe, if you can, attach your metallic map to thread.
Though most likely caused by the smoothness map within the metallic map.
 
Attached are the diffuse (runway.dds), bump (runway_bump.dds) and metallic (runway_c.dds) textures. I also tried removing the metallic texture from the material and set the metallic values to 0 but again same result.

Thanks
 

Attachments

Your textures are all dxt1. If your smoothness comes via the metallic alpha option, then max reflection is the result. Your bump map isn't a proper bumb map either (dxt1 again). Both bump and and metallic (if controlling smoothness) need a greyscale alpha channel and conversion to dxt5 dds. But for proper analysis, all your PBR settings in MCX would be helpful.
 
I am saving from MCX into DDS, so DDS are as MCX saves them. I am attaching MCX PBR settings as requested to guide me on what and how to convert/change? Is PBR material shows false due to some testing, I did have it to true as well for the PBR.

mcx.JPG
 
Right, all three PBR textures may make critical use of an alpha channel. So you need to learn how to set and save alpha information. If you give MCX an unextended (non-alpha'd) texture, it cannot possibly guess your intention.

In your case, Metallic and Smoothness have both been set to null meaning these settings are delegated to the textures. Smoothness Source is set to Albedo Alpha. Your Albedo(=Diffuse) Alpha is white, due to dxt1, therefore, the result is max smoothness (which you don't want). Use an appropriate paint program to set the diffuse alpha to black, and save as dxt5 to get rid of smoothness altogether as appropriate, I guess, for a runway. You don't want any metallic effects either, I would assume, so get rid of the metallic texture. If you do want a degree of reflection read up on the SDK to see which channels need which information (R=metalness, alpha=gloss). A bump texture you certainly want, but here again you have to convert your base texture to a proper RGBA dxt5 format.

The standard progs to get this done are Photoshop and Imagetool, but there are alternatives.
 
Thanks for the detailed explanation. I am trying initially to do the black alpha channel for albedo using GIMP, i export the texture (confirming in GIMP that there is an alpha channel) but when I import it in imagetool it always says Alpha: NONE. It's not a matter of exporting into a format not supporting alpha, because I even exported in .psd that can be opened in imagetool but still the same result.

I watched tutorials for gimp creating alpha channels, searched forums, not sure what's going wrong.
Any ideas?
 
Basically, you are on the right track. I don't have gimp, but I'm pretty sure Gimp allows you to export to a range of formats that allow alpha channels, e.g., 32-bit (RGBA) BMP and Targa (.tga). Actually a 32-bit BMP can be used directly in sim, but it comes at the cost of a huge file size. Once ImageTool recognizes the Alpha you can export to dxt5 dds. The program DxtBmp is an alternative that directly shows you the Alpha, or add an alpha, and allows modifying it on the spot, and does the dds conversion, too.

Bump maps are more tricky. You need to find a way to create a 'normals' file, and then run that through ImageTool to get the _bump format needed by FSX and P3D. MCX would work, too, given the right normals file.
 

Pyscen

Resource contributor
Hello

Give me some time to write it out for you on what you need to do within GIMP. But, let me say that none of the textures within the metallic map should have an alpha channel ( individually they shouldn't).

If.you are using the.alpha channel within the albedo map as the smoothness map, then the albedo map shouldn't also have an alpha channel. The alpha channel, in this case, is a separate entity. The smoothness map shouldn't have an alpha channel as well Because of this, you are doing what is called "Channel packing".

Hopefully, within a few hours, I will have what you need to do in GIMP.

EDIT: Also, want to point out... don't use Imagtool or MCX in creating the converted maps (especially when using PSD format). They both will not read the alpha channel correctly. Either use ".tga" or ".png". It would be best if you used the dds plugin for GIMP. What version of GIMP are you using? If you are using the latest, then I suggest you use the external version of the plugin,... the internal version is not complete. You can obtain the external plugin here (the one titled as gimp-dds-win64-3.0.1.zip) unzip it and install it: Drive:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins.
 
Last edited:

Pyscen

Resource contributor
Hello again.

You said that you got the texture from a site that is calling it a PBR texture? Is it possible to attach those or Private message me with them (not converted to dds as of yet)?
 
Many thanks to both for taking the time to explain all these details. PBR stuff is completely new to me and to be honest I am still struggling and searching/reading to understand, especially things like if I will be using for example smoothness within albedo or not and how you declare if it's within albedo or not etc.

I am on latest Gimp yes, will try the pluggin thanks!
Regarding the texture set from textures.com, here is the link:

Attached textures in earlier post were my attempt with materialize.

Thanks
 

Pyscen

Resource contributor
Hello

OK... I will try to come up with a texture through Materialize and send them to you... maybe some help on Materialize as well. I will most likely PM with the files and help of.

Here is what I have come up with as in what needs to be done within GIMP...


I have attached a zip file which contains 2 templates (2 metallic templates) for GIMP only.

The bump map, we can discuss at a later time.

The templates are in a "De-compose" state (GIMP jargon which means that the Channels are placed as layers instead of the normal way textures are setup). Both templates are in .xcf file format, which is the native file format specifically for GIMP.

I would suggest that you do not use the option of having your Smoothness map within the Albedo map (in the Alpha channel). If the PBR texture that you are using doesn't have a specific texture as the Smoothness map than using the Alpha channel within the Metallic map (alpha channel), just make sure it's black (the template is already set up as such - made black.)

The 3 are Metalness, AO, and Smoothness maps. If one of the textures is named, something like "Roughness", then you will need to invert it (the opposite of roughness is smoothness). If you do have a texture as such, tell me and I will tell you how to invert it within GIMP. If any of the 3 are missing though, you will not have to do anything; The channels (layers) are already black.

Just to not confuse you anymore, the metalness is also called metallic - but it's also the same name that the 3 maps together is called (Metallic). So, I have substituted Metalness for Metallic unless I am talking about the Metallic map specifically.

The Metalness map goes into the red channel (layer).
The Ambient Occlusion or AO Map goes into the green channel (layer).
The Empty is the blue channel (nothing goes here and needs to be black.)
The Smoothness Map goes into the Alpha channel (layer).

***** Before copying and pasting the textures into their proper channel, make sure the Template is the same size as the PBR textures. If the Template is not the same then from under the Template, click on the Image Tab -> Scale Image... Adjust the size accordingly. *****

Open all of the textures that came with the runway PBR, along with the template (ex. Metallic Template_smoothness) within GIMP. Under the texture that is the Metalness of the PBR runway, copy (Ctrl+C) it into the buffer, Then move under the template, with the 'Metalness' layer selected and click on paste (Ctrl+V).

You will now see within the layer stack a layer that has been added and labeled as “Floating Selection” and “Metalness copy” (or something similar) just above the 'Metalness' layer. Right-click on the Metalness layer within the layer stack and then click on Anchor Layer. The “Metalness copy” layer will be merged into the layer named Metalness.
You will do this with the rest of the textures - going from the PBR runway and copying to the buffer and then moving over to the Template to paste it.

The bump map is a separate issue... and will be discussed at a later time.

Once you have completed the rest of the textures into the Template, save as to something different than the Template (ex. runway_m.xcf).

****
Once you have completed the metallic map, you need to "Compose" or assemble it. To compose (assemble) the metallic map is through the Colors tab -> Components -> Compose. A window will pop-up.

You need to make sure that the “Color model” field is set appropriately for the metallic map (For this metallic map, it should be set at RGBA). Also, make sure that the maps are in their correct channels as above. After you have verified the maps are in their correct channels, click on ‘OK’.

Save again (ex. runway_m.xcf). Make sure to add the GIMP DDS Plugin that I mentioned above!!

Now, time to Flip Vertically, which is done through the Image tab -> Transform -> Flip Vertically.

Save as (ex. runway_metallic.xcf). Note: The filename change. This is so you can go back to the runway_m.xcf and edit it (without having to flip it back. Just remember you will have to Flip Vertically again if you did any edits on the previous file.)

Now time to Export as a ".dds" file. Click on the File tab and click on export as.
Change the filename extension to dds. The filename should be the same as the saved name used above (ex. runway_metallic). When you finished the filename and the extension, click on ‘Export’. A window will pop-up.

The “Compression” field needs to be set to BC3/ DXT5 and the Boolean box just below, “Use perceptual error metric”, is optional. The field, “Mipmaps” is set to No mipmaps.
Once you have confirmed the settings, click on ‘Export’.

You are done with the metallic map!!

Hope this helps!!
 

Attachments

arno

Administrator
Staff member
FSDevConf team
Resource contributor
I'll check if MCX can also export dxt5 for normal and metallic maps. Now it uses dxt1 if there is no alpha channel or an empty one.
 
Really ... Why not simply get a cheap version of Photoshop and install the NVIDIA plugins. Then you can create, load and save files as flipped DDS's, also create normal maps, to be converted by ImageTool for bumps, all in perfect line with the SDK docs, and done?

Provided there is such a thing as a cheap version of PSD. Sorry, non-Gimper speaking ... but I agree you can't have enough paint programs, I have PSD, Xara, Corel, and counting, all with their individual perks....
 
Last edited:

Pyscen

Resource contributor
Hello mjahn

The cheap version of PS is called PS Elements (still over a hundred dollars in the US), but doesn't play nice with alpha channels. In fact, you can't change it easily without doing a few tricks. Also, it doesn't do rasters, etc... for GP... Besides, GIMP is FREE! and can do whatever PS can. LOL! GIMP can do normal maps without a plugin, but so can the current PS .... though it's by subscription only...(recklessly priced too). Each has its quirks, advantages, and disadvantages.

Hello Arno

That would be nice :)! Now that we all have a little more time on our hands (speaking of which, need to waste my hands now).
 
Just seen (and checked) that Photoshop CS2 is officially available for free and that the NVIDIA dds and normals plugins work just fine in it. Just saying...
 
Many thanks for the detailed explanation! It can easily work out as a mini tutorial as well :)
I eventually managed to make the PBR work and get to understand some things a bit more (still long way to go to fully understand PBR but it's a start), once more many thanks to all for the valuable help!
Here is a screenshot on a draft test, nothing close to what it should be but just testing if it works.

pbr.jpg


Now I am off to another issue I noticed while loading to test PBR and it's not PBR related as it still happens with PBR disabled.
Runway texture is ok near the aircraft but looks as if the texture has noise/flickering further down the runway. You can see how it looks in the following screenshot (imagine what you see ahead of the aircraft to be flickering). Any ideas before I set off looking?
The texture by the way was applied in sketchpad, within the material as 10m x 10m.

rwy.jpg


Regards,
 

Pyscen

Resource contributor
Hello FLEX_45,

Looks much better than it did before! Congrats! I would only suggest adjusting the smoothness down a little more and maybe the metallic also. Materialize is a pretty powerful application. most of what I wrote (the tutorial) for you - is from another tutorial, I wrote (and just revamped recently) on creating ambient occlusions. In fact, in doing it for you I noticed I missed a segment LOL!

Concerning the normal/ bump map problem you were having, there is a tutorial (resource section) here.

The flickering is caused by (most likely) because of the curved earth and it's conflicting or fighting with. In fixing it raise the runway a millimeter or so... and putting through MCX GP wizard.
 
Last edited:
Top