Hello:
I believe MSFS SDK now requires us to be even more precise in our interpretation of the "Powers of 2" concept used by many 3D display engines.
Rather than "square" pixel arrays, we must think in terms of mapped Materials as '
square or rectangle' arrays of texture pixels (aka "Texels").
Info on the whys and wherefores as to use of "
Powers of Two" in pixel dimensions of texture image materials in 3D modeling graphics:
Make Better Textures For Games, 'Power of two' & Proper Image Dimensions
www.katsbits.com
https://gamedev.stackexchange.com/q...lways-square-powers-of-two-what-if-they-arent
https://docs.microsoft.com/en-us/wi...1-devices-downlevel-intro?redirectedfrom=MSDN
https://devblogs.microsoft.com/dire...edback-some-useful-once-hidden-data-unlocked/
BTW: I have yet to find where Asobo allegedly cited '
Powers of Four' in an early interview about MSFS-2020 development.
Rather, we might best interpret that info as referring to a "
Multiple of Four" rule
I can only refer to this recent updated statement in the MSFS-2020 SDK online docs:
docs.flightsimulator.com
"
TEXTURES
This page is for general guidelines related to creating your own
textures for add-ons that will be used in Microsoft Flight Simulator. In principle, the game supports all texture formats that can be loaded through the WIC (
Windows Imaging Component) and also supports the
DDS file format. For
glTF models, as per the specification,
*.JPG and
*.PNG are supported.
When creating your textures, it is important to note that input texture dimensions
must be a multiple of 4 pixels and be at least 8 by 8 pixels. Textures do not have to be square, as long as the sides adhere to the
multiple of four rule.
The closest I have found thus far, to an explanation of the "
multiple of 4 pixels" reference is this discussion of DX-12 MIPMAPs:
https://devblogs.microsoft.com/dire...edback-some-useful-once-hidden-data-unlocked/
"Granularity
Feedback granularity is controlled through a
mip region.
The smallest possible mip region is 4×4, and they are powers of two. If you have a mip region of 4×4, then it’s as if “every texel in the feedback map corresponds to a 4×4 area in the texture it’s storing feedback for”.
If you use a small mip region, you get more fine-grained information but the feedback maps are a bit bigger. If you use a larger mip region, you get less-detailed sampler feedback information, but save a bit on memory."
One might wonder if DX-12 development underway for MSFS-2020 might be a basis for future-proofing all 3D content for optimal
performance:
In this lesson, you will learn how to load textures and generate mipmaps using a compute shader in DirectX 12.
www.3dgep.com
This may correlate with the general optimizations required for efficiently rendering MIPMAPs and LODs cited in the MSFS-2020 SDK Docs:
Regarding MCX, I hope Arno will add a feature in MCX Event Log and in Material Editor to warn when textures are
not at least 8x8 Pixels.
GaryGB