Blender 2.81 and FSX/P3D Toolset

Hi guys!

Two things:
1. Blender 2.81 got released. This, of course, is not such a big deal as the introduction of 2.80, but nevertheless comes with some nifty changes. E.g. a PROPER file browser and some new topology features.

2. I started converting the FSX/P3D toolkit to the new standard. I'm not quite sure how far I can take it, but I hope that someone else can either help out or pick it up if I get stuck. I'll keep you posted.

Cheers,
Vitus
 
Good luck Vitus and remember that you can ask all the questions you want here and someone almost always knows the answer.

Ed
 
I finished up the toolbar. Added some icons and re-organized a few things. I think it's a bit more intuitive now. I also finished the conversion of the object property panel (bottom right)



All this was the warm-up. Now comes the hard part - materials and export.

I was hoping someone can enlighten me about the old toolkit, as I have never used it and only know the material settings from Max/Gmax. In Max the material comes as in form of a more-or-less working viewport shader. But at first glance it looks as if the material script for the original blender tool is just a bunch of properties that are not hooked into the blender materials. Is that correct? If so, why? Wouldn't it be better to have a shader that includes all the flightsim settings? Just wondering...
 

Pyscen

Resource contributor
Hello Vitus...

Not sure about what you mean by "viewport shader"? If you mean, the textures (materials) themselves, the materials were only used as placement slots, so it was never hooked into the blender materials pre se.

The reason for that, I believe... is because of how FSX read them, unlike what Arno's MCX does in giving a visual representation or the appearance of, similar to what FSX would show. The Toolset has never allowed or gave the user the look on how it would appear within the sim. The original Toolset didn't have P3D.
 
Last edited:
Yes, that is what I meant. From what I see the exporter script takes all those material properties and writes them into the x file. I'm just wondering if there's any reason for that, other than that shader programming is some higher level witchcraft.
 

Pyscen

Resource contributor
Yes... would require much more witchcraft or script writing on the shader end of it. That might be something that Arno could help with at least on the FSX side of things... but the P3D side would require either the use of a shader included with or the use of a shader for both. You would also need to decide when the sim appearance would show - such as when you say rendered it within Blender F12, I believe
 
Last edited:
Writing a shader might make things easier on that front as well. I.e. if there is one shader for legacy FSX material and another one for the P3D PBR material. I did look into HLSL before, I hope that Blender's OSL is not too different....
 

Pyscen

Resource contributor
Wondering, if you are able to get info on the shaders used within P3D and legacy FSX materials... and tap into them with the variables used when going through Blender's OSL?
 
I think it'd be easier to build a native Blender shader that copies the behavior of the sim. But at the moment I've got a different problem. You can only use OSL in a CPU rendering cycle. Ie. the "Material Preview" mode is not be available for OSL-based shaders. Does anyone know if it's possible to modify the default BSDF shader that comes with Blender so that the preview mode is usable?
 
....maybe another way around this problem is to re-write the exporter in a way that it interprets the BSDF shader of Blender. But that would still leave the problem with the additional tags that are needed for native FSX or P3D materials.
 

Pyscen

Resource contributor
I think the natural progression for the Toolset is to use Blender's natural slots for materials, that's for sure. It's a matter of how would FSX/ P3D accepts the exported materials? You might not need to do much in terms of the PBR materials from Blender to P3D, though I might be wrong in that thinking. I'm sure that the community within Blender could/ would help in that. Especially in what slots needed and how they are read etc (the metallic map in particular). Concerning FSX/ FSX - Steam might be a whole different story altogether. Personally, I haven't worked with Blender v2.81 or v2.80 in using PBRs, though I'm sure it's not much different in say as 3ds Max, I think it's handled separately also. I do know though, in using the Blender's material slots would be a great improvement with the workflow in using third-party programs, such as Substance Painter and/ or Quixel also.

I think the additional tags needed for the native FSX or P3D materials could be handled separately, meaning they should be just exported as such, separately (If it is possible?). Is it possible to translate them from what Blender does and export them to the FSX/ P3D properties?
 

dave hoeffgen

Resource contributor
....maybe another way around this problem is to re-write the exporter in a way that it interprets the BSDF shader of Blender. But that would still leave the problem with the additional tags that are needed for native FSX or P3D materials.
Is it possible to customly add the missing parameters that depended on Blender Render (such as texture slots and base colors) to the "FSX/P3D Material Params" tab in the material panel?

I had that idea for a while but I don't have a clue about how to code this.

I was thinking about the typical image selection option for each map:
1575475414430.png


Also an option like this to preset if it's a specular or PBR material:
1575475872891.png

This should also preset the material options available accordingly.

So it's basically the old way of editing the material completely in the material panel.
Addtionally there could be a button to create a node tree from the settings to "WYSIWYG" render the material. Or could this even work in real time?
 
FWIW

Regarding reply #7 from Vitus:

You might try contacting @capt_x, the creator of the original toolset. Maybe he can remember something that will be of help to you.

He reappeared on 8 Oct 2019 in reply #157 to this thread.
 
Also an option like this to preset if it's a specular or PBR material:
View attachment 53243
That's a good idea. I will definitely split the material up to allow for PBR.

So it's basically the old way of editing the material completely in the material panel.
Addtionally there could be a button to create a node tree from the settings to "WYSIWYG" render the material. Or could this even work in real time?
From my preliminary reading, I don't think it's possible to add a proper Blender-native shader that renders the model properly in the material-preview setting of the viewport. With OSL it should be possible to replicate the look of the FSX/P3D shader, however it only works in CPU-cycled rendering mode.

You might try contacting @capt_x, the creator of the original toolset. Maybe he can remember something that will be of help to you.
I just sent a message to everyone who worked on the toolkit before. I hope together we can suss it out!
 

dave hoeffgen

Resource contributor
From my preliminary reading, I don't think it's possible to add a proper Blender-native shader that renders the model properly in the material-preview setting of the viewport. With OSL it should be possible to replicate the look of the FSX/P3D shader, however it only works in CPU-cycled rendering mode.
I agree that the FSX/P3D materials can't be rendered in all their detail using the nodes available. I was rather thinking of it as a reasonable preview just like it was in the old versions with Blender Render.
Of course it would be better to have a fully detailed WYSIWYG render of the materials although I'm not a fan of using Cycles Render on CPU because of render speed.
A solution using Eevee would be better as it renders in real time. It does not have the possibility of using OSL scripts but on the other hand it comes with a specular shader.
Maybe both could be done somehow...
 
Good luck on your communications with the people who worked on the toolset previously.

Possibly you might get some idea of what the thinking before was by looking at some of the older versions of it. I'm sure that you have already.

In case that you haven't seen these, here are a couple of links. Both have the files in the OPs: versions 086 and 088 and versions 0703 and 084.
 
Top