• 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.

MSFS20 Possible to change size of multiple textures at once?

Messages
250
Country
norway
Hello. I am currently working on resizing multiple textures to decrease the file size. While in the materials editor I am able to change individual textures to a different size, but I am unable to select many and change all of them at once. Is there a function to change multiple textures at once within MCX?
 
Hi Vetle:

I had thought by now Arno would have implemented a way to do this for the newer DDS texture file formats used by MSFS glTF files.

That may not yet have happened in a way that can be done via the Batch Convert Wizard if we do not use DrawCall Minimizer.


IIRC, Arno only recently enabled MCX processing of a recently released Khronos KXT DDS compression used by MSFS 2024 textures.


Thus far, I see the options discussed for older DDS texture file formats used by FSX / P3D ...here:

https://www.fsdeveloper.com/forum/threads/mass-texture-converter.374760/

https://www.fsdeveloper.com/forum/threads/mcx-texture-converter.433324/


In those older linked FSX-era threads, Martin Jahn suggests use of MS TexConvert external to MCX and any FS SDK utility.

https://www.fsdeveloper.com/forum/threads/mass-texture-converter.374760/post-570370


MS TexConvert may not allow MCX or MSFS to re-map textures automatically based on file name, and it may- or may not- retain MIPMAPs.

So, Materials may require manual processing via MCX for full MSFS compatibility.


I am hoping Arno responds here to inform us of a way to batch resize via MCX without forcing use of DrawCall Minimizer to retain mapping.

I would consider testing if MS TexConv may be able to process / output Khronos KXT DDS compression used by MSFS 2024 textures.

GaryGB
 
Last edited:
Here's a batchfile example of using texconv.exe to resize the contents of an input folder to 1024x1024 in an output folder:
Resize using texconv

Bash:
texconv -r:keep input\*png -w 1024 -h 1024 -o output -f:rgba -ft:png
texconv -r:keep input\*tif -w 1024 -h 1024 -o output -f:rgba -ft:tif
texconv -r:keep input\*.jpg -w 1024 -h 1024 -o output -f:rgba -ft:jpg

echo All textures have been resized to 1024x1024 and placed in the output folder.
pause

Changing the code to -w 64 -h 64 might be handy for the MSFS2024 stricter LOD requirements...
 
Thanks, Dick, for that interesting 'worked example' of batch image file conversion using MS TexConv. :)

Certainly Vetle has shown himself to be a fast learner, but he has previously indicated he may thus far, have limited coding insight.

To better understand how this might be used, please correct me if I am mistaken in proposing the following workflow to use it:

[EDITED]

In Windows Explorer / File Manager, at the Root level of the C:\ drive, create a new folder named "Resize".

(This will be outside the ENSX project folder \Package Sources folder chain)


Un-ZIP the above linked resize.zip file into that new target C:\Resize sub-folder location

Copy the current ENSX build \Package Sources \Texture sub-folder contents into the \Input sub-folder of that new C:\Resize folder

ZIP all textures in the current ENSX build \Package Sources \Texture sub-folder; delete the originals.

Browse to that C:\Resize sub-folder location (outside the ENSX project folder \Package Sources folder chain)

Double-click the "resize all to 1024x1024.bat" file

Watch the magic as it takes place in a CMD Console Mode (aka "DOS") task session :wizard:

Copy the re-sized textures in the C:\Resize sub-folder \Output sub-folder to the current ENSX build \Package Sources \Texture sub-folder

[END_EDIT]

Are these re-sized textures likely to be re-mapped (based on their file name) onto the 3D model once the glTF is imported to MCX ?


BTW: I have seen the term "Bash" used in the context of coding topics, but as a non-programmer, I am not familiar with what it actually is.

Is "Bash" something we need to understand- and use- for this task ? :scratchch


PS: I have not yet had a chance to read what's new with current builds of TexConv; does it support Khronos' new glTF DDS compression ?


Thanks in advance for your further kind assistance with this challenge, as MCX gradually develops a full feature set for MSFS 02 / 04 glTF's.

GaryGB
 
Last edited:
When you use the save textures button in the material editor you can select that MCX should enforce all textures as a power of two or a multiple of four. This will resize all textures that don't meet that automatically.

If they are already a power of two or a multiple of four there is no way currently to resize them all.
 
Hi Arno:

Thanks for clarifying the "Resize" feature in MCX Material Editor is applicable only to ensuring power of two or a multiple of four.

[EDITED]

IIRC, it resamples mapped texture images by incrementing Pixel Columns / Rows to (2) 'nearest' powers of two / a multiple of four.


AFAIK, this "Resize" feature in MCX Material Editor can "Resize" texture images from ex: 4096 to 1024 as Vetle wants to do.

However, it requires one to manually process each individual texture separately, which can be multiple per Face with PBR.

I envision a way to re-size all textures mapped on a selected Face. :idea:

[END_EDIT]


If the "Resize" feature in MCX DrawCall Minimizer were used, can that tool "Resize" texture images from ex: 4096 to 1024 ?

IIUC, a "Resize" feature in MCX DrawCall Minimizer retains all mapping and Material property info during the "Resize" process.


I believe all FS SDK users do not want to manually re-map texture images / restore Material properties on a 3D model if textures are re-sized.


Since we do not seem to have the ability to use MCX Material Editor to do this type of "Re-size", and IIUC, we no longer have the ability to use FS2Kx SDK ImageTool, what exactly do we have that we can use to re-size textures for MSFS glTFs that have already been processed by MSFS Package compiler, that is fully compliant with the new DDS compression formats from Khronos ?

AFAIK, we also no longer have an option to use Martin Wright's graphic utilities to work with MSFS' new Khronos DDS file formats. :banghead:


You had recently mentioned that IIUC, MCX would be able to "walk the walk" and "talk the talk" for texture image compliance with the new DDS compression formats from Khronos used by MSFS02 and MSFS04 Package compilers for glTF files.

Is there a way to use the (new ?) library MCX uses to process texture images that utilize new DDS compression formats from Khronos, to enhance MCX Material Editor and/or DrawCall Minimizer "Resize" features, so we can more easily texture images from ex: 4096 to 1024 ?

Thanks for your further kind assistance with Khronos' new 'DDS hurdle', as MCX gradually develops a full feature set for MSFS 02 / 04 glTF's.

GaryGB
 
Last edited:
Since you can have textures of multiple sizes in the material editor, how would you see the workflow of resize multiple at once? Would the user first select which textures to resize and then select their desired size?

As pointed out you can do it for an individual texture by right clicking on it. But for multiple textures at once another workflow would be needed. And I also don't want to clutter the editor with too many options, making it hard to use.
 
Since you can have textures of multiple sizes in the material editor, how would you see the workflow of resize multiple at once? Would the user first select which textures to resize and then select their desired size?

As pointed out you can do it for an individual texture by right clicking on it. But for multiple textures at once another workflow would be needed. And I also don't want to clutter the editor with too many options, making it hard to use.
Thanks for clarifying how it is supposed to work at the moment. I am in no way shape or form a coder, but should you find the possibility to make it possible to adjust several at once would be greatly appreciated in reducing time on the workflow. :)

Changing the individual textures work indeed.
 
Indeed, as Vetle states, re-sizing is time-consuming finding / selecting each of several textures all mapped to the same Face.

His current build of the ENSX Helipad is a multi-object "Scene", with 68 mapped textures; I have 3D model scenes with >200. :eek:


I am thinking of a way to reduce complexity of selecting multiple textures all mapped to the same 3D model Face for re-sizing.

MCX' Material Editor {Textures} tab lists the texture size ex: 4096x4096 as a quick way to find textures we wish to re-size.

If we click to select a texture, then Right-click, we load a context menu > Resize Power of Two > 1024 / 20148 / 8192 / 16384


Perhaps Arno can add another cascaded entry or fly-out checkbox to that context sub-menu: "Resize all mapped to Face" ? :scratchch


That way we only have to select the first texture we find mapped to a Face that we wish to re-size.

If a texture is (1) of several textures mapped to a Face (as in PBR multi-texture mapping), MCX selects all mapped to a Face. :idea:

Thanks are due to Arno for giving us what we've got; with this additional feature he can make it even easier to work with PBR. :wizard:

GaryGB
 
Last edited:
Back
Top