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

MCX question relating to Material Editor - Drawcall

Messages
25
Country
us-ohio
Hello everyone,

I am having an issue with MCX's drawcall reduction feature within the Material's Editor tab. First and foremost, thank you again Arno for this wonderful program. šŸ„°

Note: I am designing exclusively for FS9.

My issue is this: I always design within Sketchup and export as a Collada file.

- I then import into MCX where I first resize all textures to the power of 2.
- I then rename my textures and then hit the save button saving as DXTBMP.
- Next I move the saved textures to the appropriate folder for the scenery I am developing. I then hit the "EXPORT OBJECT" button which makes my MDL file.
- I then reload this new MDL file back into MCX and hit the "EXPORT SCENERY" file which produces my BGL file. Afterwards, I process this BGL in Library Creator.
- I then edit my textures in Photoshop utilizing MCX to view the updated textures as I go along.

- Once all the textures are completed, I go back into the Material's Editor and select the "DRAWCALLS" tab. Once there, I select 1024x1024 form the drop down menu and hit the "PREDICT DRAWCALLS" button. When it concludes, I hit the "MINIMIZE DRAWCALLS" button and move the newly mapped textures to the scenery texture folder.

Which leads me to my problem............

I, more times than not, end up with several small (often 64x64) textures which could have easily fit onto the 1024x1024 sheet. And these small textures are often only used once in the scenery.

So my question is...........

Is there a way within MCX to transfer these small textures onto the main sheet - which often has plenty of space to accommodate - thus reducing the drawcalls further?

Any help would be appreciated,

James
 
Hi James,

Most likely these small textures are tiled on your model. That could be why MCX can't include it in the combined texture sheet. Do you tile the textures in SketchUp?
 
Hi James:

I apologize for not having checked how you mapped texture Materials to Faces in SKP and DAE Stairs models you previously linked here:

https://www.fsdeveloper.com/forum/threads/removing-double-sided-faces.76400/post-927135

https://www.fsdeveloper.com/forum/threads/removing-double-sided-faces.76400/post-927138

https://www.fsdeveloper.com/forum/threads/removing-double-sided-faces.76400/post-927168

https://www.fsdeveloper.com/forum/threads/removing-double-sided-faces.76400/post-927181


While some consider it OK to "place" a texture Material "in the neighborhood" of a Face, all 4 R-G-B-Y pins must 'map' it to a Face instead.


The R-G-B-Y pinning process is essentially what is called UVW mapping of a texture image Material to a Face.

In Sketchup, when importing texture images as Materials, I would recommend to choose "Import as Texture", and anchor the bottom Left corner of the texture image over the bottom Left corner vertex of the 3D objects selected Face.

Then drag up and to the Right upper corner and anchor the top Right corner of the texture image to the top Right corner vertex of the 3D objects selected Face; this should successfully apply the texture image as a Material.

Right-click to use Texture > Position, move the texture image of the bottom Left corner of the ex: stairway part into position over the bottom Left corner vertex of the 3D objects selected Face and set the Red pin there.

Set the Green pin at the bottom Right corner of the ex: stairway part, and drag it to the bottom Right corner vertex of the 3D object Face.

Set the Blue pin at the top Left corner of the ex: stairway part, and drag it up to the top Left corner vertex of the 3D object Face.

Set the Yellow pin at the top Right corner of the ex: stairway part, and drag it up to the top Right corner vertex of the 3D object Face.


Once the texture image is positioned in this "Fixed Pin" mode, one can un-check "Fixed Pin" fine-tune positioning for any of the (all Yellow) pins as needed, then re-check "Fixed Pin" mode ...and finally click Done.


When mapping Materials to Faces with the UVW Texture Position R-G-B-Y pins, one must (as precisely as possible ! ) set the:

Red pin at the bottom left corner vertex of the Face

Green pin at the bottom right corner vertex of the Face

Blue pin at the top left corner vertex of the Face

Yellow pin at the top right corner vertex of the Face

...instead of off to the side at any distance ...whenever possible (exception: side panel of Stairs and other occasional object scenarios.).

Stairs_For_Gary_DAE_Import_Texzture_Positioning-4.jpg



Then one must Select the Texture or "Color" Material mapped Face, right-click, and choose "Make Unique Texture".

Better yet, one should IMHO use Aerilius' "Make Unique Texture++" and/or his updated "Texture Resizer" plugin Ruby script:

https://www.fsdeveloper.com/forum/t...ing-good-but-weird-in-msfs.456202/post-908977

https://community.sketchucation.com/topic/131498/plugin-make-unique-texture

https://community.sketchucation.com/topic/130854/plugin-texture-resizer-1-5-6-updated-15-05-2013


Of particular note is these features provided by Aerilius' "Make Unique Texture++":

* Make selected Face(s) unique

* Crop texture to selection


Before
re-positioning UVW pins and any use of "Make Unique Texture++" plugin Ruby script:

stairs_for_gary_dae_import_texzture_positioning-1-jpg.93892


After re-positioning UVW pins and use of "Make Unique Texture++" plugin Ruby script:

stairs_for_gary_dae_import_texzture_positioning-2-jpg.93893



That final operation clips the texture image used for the Material to the Face, reducing effective size of the texture Material pixel extent.

That also combines all tiled / auto-repeating texture images or patches of "Colors" into a 1-piece non-tiling mapped Material.


Having smaller effective "unique" texture Material extents allows MCX to fit more Material extents onto Texture 'Atlas' Sheets.

It also avoids unwanted shifts of texture mapping at run time as the UVW coordinates will be precisely at 0,0.


BTW: That is increasingly important for MSFS 2020 / 2024 with glTF 3D models, which have reduced UVW coordinate 'granularity'. :pushpin:

https://www.fsdeveloper.com/forum/t...and-misaligned-in-msfs2020.458004/post-922022


Adjacent co-planar Faces with unique textures and compatible Material types ...should be merged via right-click > "Combine Textures".

CAVEAT: "Combine Textures" use with 'unique' textures varies by Material attributes of each Face UV mapped via "Make Unique Texture".

For example, a Window Pane with a specular shine and transparency should not be merged with a surrounding opaque, non-specular wall.


NOTE: Some 3D modeling "authorities" insist that one should 'un-wrap' textures mapped to Faces and merge them into a 1-piece texture.

The admonition IIUC, is this somehow results in a "proper" UVW mapping conducive to better run time rendering via Direct-X.

Personally, I would prefer to avoid that headache, as it is maddeningly complicated and time-consuming.:banghead:

I would rather use the easier Material mapping of Sketchup, Make Unique Textures, Combine Textures, [ Fix Problems ], [ Purge Unused ].

NOTE: The latter default feature options are accessed via:

Sketchup Menu > Window > Model Info > Statistics > [ Fix Problems ], [ Purge Unused ]


Then I would enable the (often numerous) resulting merged textures to be mapped onto a minimum of Texture 'Atlas' sheets by MCX.

The only down side to that IIRC, is one must keep backup copies of the original 3D model submitted to MCX prior to use of the DrawCall Optimizer feature, as one may not be able to re-load the MCX 'optimized' 3D model with textures back into Sketchup to edit afterwards.

I would be delighted if Arno implemented a way for MCX 'optimized' 3D model Materials to be re-loaded / edited in Sketchup. :wizard:


Hope this helps MCX "fit" all textures onto a minimum of texture atlas sheets, while reducing texture size / render burden of 3D models.:)

GaryGB
 

Attachments

  • Stairs_For_Gary_DAE_Import_Texzture_Positioning-1.jpg
    Stairs_For_Gary_DAE_Import_Texzture_Positioning-1.jpg
    169.8 KB · Views: 110
  • Stairs_For_Gary_DAE_Import_Texzture_Positioning-2.jpg
    Stairs_For_Gary_DAE_Import_Texzture_Positioning-2.jpg
    225.3 KB · Views: 112
Last edited:
Hi James,

Most likely these small textures are tiled on your model. That could be why MCX can't include it in the combined texture sheet. Do you tile the textures in SketchUp?

Arno,

Thank you so much. I'm not 100% sure but I believe you hit the nail on the head.

For over a year, while using Sketchup, I always made what's called "Unique Textures" for every texture I wish to edit outside of Sketchup. Everyone of these "Unique Textures" always end up on the texture sheet after the MCX Drawcall reduction procedure. However, there are times where I will not make the texture applied to a surface a "Unique Texture". Such as gutters, soffet's, etc. In these cases I often apply a simple stock gray, black, whatever, and then re-color it once all the textures are exported via a Collada file. It is these textures, which were not made "Unique" in Sketchup which always end up as a separate texture after MCX drawcall reduction.

I did recently discover a work around to this problem.

Thank you so much,

James
 
Hi James:

Arno, as author of MCX, may of course have other insights to offer about your Sketchup, MCX, Photoshop, and FS9 workflow as described.


After again reading your OP above:

https://www.fsdeveloper.com/forum/t...o-material-editor-drawcall.459141/post-927631

...and your latter post above:

https://www.fsdeveloper.com/forum/t...o-material-editor-drawcall.459141/post-927690

...I am compelled to seek some clarification on certain aspects of your workflow.


Do you utilize a plugin with Photoshop which is capable of FS9 compatible DXTBMP output when edits are saved ?


AFAIK, even if you do, I do not see where your workflow allows the MDL to be updated with info on edits to mapped Materials when Photoshop has been used after export of the MDL, except when MCX has re-exported the 3D model into a MDL ...compiled as a BGL.


As described above, after a 3D Model is exported to a MDL compiled inside a BGL, you view your Photoshop edits to the textures in MCX.

IIUC, you (manually ?) move Texture 'Atlas' Sheets resulting from use of MCX Drawcall Minimizer into the destination nested \Texture sub-folder locally paired with MCX' output destination \Scenery sub-folder for BGLs, but MCX does not itself perform the writing of those edited / composited textures via Material Editor ?

If so,, certain texture changes may not be committed to a 3D model internally, and its MDL may not inherit intended changes from edits.


IMHO, all Material edits must be performed on a 3D model in Sketchup via its default feature that links an external graphics application:

Sketchup Menu > Window > Preferences > Applications > Default Image Editor > [ path to Photoshop executable ]


That ensures all mapped Material edits are committed to the 3D models internal 'URI' paths during all auto-save, save, export operations.


Also, in MCX Material Editor > [ Textures ], IMHO, one must first:

* Click in "Texture Folder" field > browse / select MCX' output destination Texture Folder for mapped texture Material

This will be the destination nested \Texture sub-folder locally paired with MCX' output destination \Scenery sub-folder for BGLs


Next, under the texture file extension pulldown menu, select DXTBMP for FS9 static scenery objects


Then, under the [ Save Textures ] pulldown menu, select:

* Ensure size Power of Two

* Overwrite existing textures


Finally, click MCX' [ Save Textures ] button to commit any assigned changes to mapped texture image Materials into the 3D model

Arno,

Thank you so much. I'm not 100% sure but I believe you hit the nail on the head.

For over a year, while using Sketchup, I always made what's called "Unique Textures" for every texture I wish to edit outside of Sketchup. Everyone of these "Unique Textures" always end up on the texture sheet after the MCX Drawcall reduction procedure. However, there are times where I will not make the texture applied to a surface a "Unique Texture". Such as gutters, soffet's, etc. In these cases I often apply a simple stock gray, black, whatever, and then re-color it once all the textures are exported via a Collada file. It is these textures, which were not made "Unique" in Sketchup which always end up as a separate texture after MCX drawcall reduction.

I did recently discover a work around to this problem.

Thank you so much,

James

PS: What exactly is the "work around" that you discovered ? :scratchch

GaryGB
 
Last edited:
Hi Gary,

The workaround was quite simple. I simply "unique'd" everything. Yes, it makes for a few extra textures but the vast majority are eliminated as they are plain Jane textures (consisting of 1 color). I can size them to anything. Most often 32x32 and I only end up with one small reference of it on the main texture sheet. šŸ‘

James
 
Last edited:
@GaryGB

Had a chance to read your reply in full. You state:

>>Also, in MCX Material Editor > [ Textures ], IMHO, one must first: * Click in "Texture Folder" field > browse / select MCX' output destination Texture Folder for mapped texture Material
This will be the destination nested \Texture sub-folder locally paired with MCX' output destination \Scenery sub-folder for BGLs Next, under the texture file extension pulldown menu, select DXTBMP for FS9 static scenery objects Then, under the [ Save Textures ] pulldown menu, select: * Ensure size Power of Two * Overwrite existing textures<<


Thank you Gary but this information I've known for quite some time and really doesn't address my issue in the original post. Nonetheless, as stated, I have found a workaround that works just fine. Thanks again and wish you the best. šŸ„°

James
 
Hi James:

I am glad you have confidence in the workaround you described above for the "tiling" issue cited in your OP.

However, by now you may note I do post questions and review procedural sequences that IMHO, may clarify an optimal workflow to solve existing- and/or prevent future- issues when working in Sketchup and MCX with intended output for FS2Kx versions of the sim.

Also, although I do endeavor to address an OP's query in a discussion thread on a specific topic during the course of what I choose to post, my replies may also include information related to an OP's workflow and "best practices" with Sketchup and MCX to prevent and/or solve problems in the future.

Just as I advocated your option to post into a thread elsewhere, that was > 10 years old, and I advocated ongoing relevance of FS9 and Sketchup in FS development, I have a sense of commitment to the learning process for not just the OP- but also others interested in a thread topic.

Such info is intended for both the OP and all other interested parties who are likely to read that thread.

Thus my replies may be intended as a learning resource, purposefully made available to "would-be" FS Developers ...in an open forum.

It is your option to ignore- and to not be compelled to post an opinion of- my posted content ...and whether it is relevant to your query.


IMHO forum threads are not just about the OP, and are intended for all here at FSDev to read and hopefully, to learn from.


I recommend focusing less on attempting to compel "custom ordered replies" that convey "just the facts" in response to your questions, and to instead emphasize a comprehensive process of self-study to learn "best practices" using Sketchup and MCX with intended output for FS2Kx versions of the sim.

IIRC, all of use here may pass through initial phases of perceived urgency over more quickly grasping a subject, problem solving, and optimizing methodology or productivity while learning challenging FS development methods.

Historically it rarely, if ever, appears to yield an enduring or comprehensive FS knowledge base- or optimal workflow in the future, by asking questions in this forum (open to replies by all participants), then attempting to control what others responses may be to one's question.


Forum participants here are free to reply / not reply to threads as they see fit, provided they abide by standards of "civil" forum etiquette.

Forum participants here are also unlikely to respond well- if at all- to attempts at controlling the content of their replies (when unique and not quoted), by efforts on the part of an OP (whether intentionally- or not-) via "social engineering" in their posts.


Ultimately, IIRC, those who post in the forum, multiple topic-specific queries that assertively seek "just the facts / on topic only" replies may become seen as not exercising due diligence through self study to achieve a comprehensive understanding of FS SDK and 3rd party application production methods.

Rather, such individuals may become seen as having a particularly urgent perceived "need to get up to speed" or "achievement deadline", that intends to utilize a forum to accomplish personal goals ASAP, and in a way that may not acknowledge discussions as serving everyone.

And IIRC, one begins to see a decline in the number of replies to threads opened by those engaging in such practices here at FSDev, and at other FS development forums.

ISTR, those who are rude or demanding (even when accompanied by what some may see as "polite social camouflage") often end up either banned, or shunned by other forum participants.


I have seen esteemed former FS forum moderators end up banned if others reported posts becoming "snarky", combative, or capricious.


BTW: If would be so kind as to "read my full post", I believe it is relevant to the topic under discussion here for you reply to my questions:

Do you utilize a plugin with Photoshop which is capable of FS9 compatible DXTBMP output when edits are saved ?


AFAIK, even if you do, I do not see where your workflow allows the MDL to be updated with info on edits to mapped Materials when Photoshop has been used after export of the MDL, except when MCX has re-exported the 3D model into a MDL ...compiled as a BGL.


As described above, after a 3D Model is exported to a MDL compiled inside a BGL, you view your Photoshop edits to the textures in MCX.

IIUC, you (manually ?) move Texture 'Atlas' Sheets resulting from use of MCX Drawcall Minimizer into the destination nested \Texture sub-folder locally paired with MCX' output destination \Scenery sub-folder for BGLs, but MCX does not itself perform the writing of those edited / composited textures via Material Editor ?

If so, certain texture changes may not be committed to a 3D model internally, and its MDL may not inherit intended changes from edits.


IMHO, all Material edits must be performed on a 3D model in Sketchup via its default feature that links an external graphics application:

Sketchup Menu > Window > Preferences > Applications > Default Image Editor > [ path to Photoshop executable ]


That ensures all mapped Material edits are committed to the 3D models internal 'URI' paths during all auto-save, save, export operations.

Thanks in advance for your further clarification regarding your workflow ...in reply to my questions quoted above. :)

GaryGB
 
Last edited:
Gary,

Excuse me, But I haven't a clue as to what that word salad you typed above even means. I guess I'm just too stupid to understand it. You keep mentioning workflow. Is that a industry term used to describe my little project? I actually Googled "Workflow" to understand its meaning. How dare you insinuate that I am some kind of burden on this forum for asking a point blank question I couldn't remedy on my own via research? Isn't this the purpose of the forum? And your words (GaryGB) >>Ultimately, IIRC, those who post in the forum, multiple topic-specific queries that assertively seek "just the facts / on topic only" replies may become seen as not exercising due diligence through self study to achieve a comprehensive understanding of FS SDK and 3rd party application production methods.<<
Multiple quires? I have asked a total of 2 questions on this forum.

I feel reluctant to participate here now given the intimidating and condescending demeanor by you. I simply asked a question to which Arno provided me a 30 word or less response which was 100% totally relevant to my question. Conversely, you jump in with these meaningless links and confusing references that seem to me to serve no other purpose than to muddy Arno's explanation and make me feel like a complete idiot. I assure you I am not. In fact I have been an instructor for many years in a field I'm confidant you would never dare enter. If you wish to compare diploma's have at it. Frankly, I only ask that you quit attacking me for being somewhat ignorant to a hobby I enjoy to design airport enhancements for free to the community. I'm not financially benefiting from this. I'm merely trying to offer others (at no charge) enhancements to a flight simulation platform over 20 years old. Good grief.

James
 
Hi James:

I like seeing people have fun with FS Development activities (whether for personal or public distribution, and whether freeware or payware).

As I asserted in reply to what IIRC, was your very first post here (in another thread), there is still a lot of fun to be had with FS9.

I encourage you to continue to have fun with your hobby activities using Sketchup and MCX to create enhancements for FS9. :)


I do tend to have an active interest in helping other Sketchup users to discover solutions to productivity challenges, and I tend to offer input in most threads involving Sketchup and FS utilities that facilitate the utilization of content created in Sketchup for FS scenery.

My efforts in this particular thread were intended to assist you in eliminating auto-tiling of mapped Materials on 3D models that prevents successful use of MCX DrawCall Minimizer in some scenarios, and to illustrate that such factors as non-UVW-mapped / auto-tiling Materials may also result in less than optimal processing and potential distorted display- or non-display- of 3D models in FS at run rime.

Whereas Sketchup may 'forgive' non-UVW-mapped / auto-tiling Materials, and MCX may attempt to compensate via DrawCall Minimizer, ultimately one must UVW-map and eliminate auto-tiling Materials to be processed by other applications that read / render 3D models.


If I ask questions or point out potential issues that may impact the ability to utilize 3D models outside Sketchup in FS via FS2004 SDK, such inquiries and observations are merely intended to help troubleshoot methodology in one's current approach to FS scenery content production.


Although it may be your current preference to post inquiries and reply to threads in the manner that you have seen fit to engage in thus far, I had hoped to alert you to the potential consequences of 'diminishing returns' here, that I have observed with others over the years when a particular pattern of posting persisted on their part.

It would be an incorrect characterization to assert that you are being attacked, but it is plausible at this early stage of learning FS production methods using Sketchup, that you may regard some of the info I posted to be "meaningless links and confusing references".

There is no need for you to feel reluctant to participate here, and IMHO you should feel free to participate as a member of FSDev forums.

In pursuing our FS hobby, we all may- at the end of the day- be equally entitled to say- "we're all here because ...we're not all there !". :)


I still encourage you to explore and experiment with the info I linked and referred to, as I am confident you may find it helpful.


Again, I believe it pertinent to resolving potential issues in your use of Sketchup / MCX to create FS scenery, for you reply to my questions:

Do you utilize a plugin with Photoshop which is capable of FS9 compatible DXTBMP output when edits are saved ?


AFAIK, even if you do, I do not see where your workflow allows the MDL to be updated with info on edits to mapped Materials when Photoshop has been used after export of the MDL, except when MCX has re-exported the 3D model into a MDL ...compiled as a BGL.


As described above, after a 3D Model is exported to a MDL compiled inside a BGL, you view your Photoshop edits to the textures in MCX.

IIUC, you (manually ?) move Texture 'Atlas' Sheets resulting from use of MCX Drawcall Minimizer into the destination nested \Texture sub-folder locally paired with MCX' output destination \Scenery sub-folder for BGLs, but MCX does not itself perform the writing of those edited / composited textures via Material Editor ?

If so, certain texture changes may not be committed to a 3D model internally, and its MDL may not inherit intended changes from edits.


IMHO, all Material edits must be performed on a 3D model in Sketchup via its default feature that links an external graphics application:

Sketchup Menu > Window > Preferences > Applications > Default Image Editor > [ path to Photoshop executable ]


That ensures all mapped Material edits are committed to the 3D models internal 'URI' paths during all auto-save, save, export operations.

Thanks in advance for your further clarification regarding your workflow ...in reply to my questions quoted above. :)

GaryGB
 
Last edited:
GaryGB,

Thank you. You fixed my workflow with that recommendation to download and install the Microsoft Windows 98 KB2765441 fix for Autosketch. Everything works great now. No more double faces and drawcall multiplication. :wave:

James
 
Hi James. I'm another SketchUp/MCX user, though I work in FSX and P3Dv4/5.

Gary's answers have taught me a great deal over the years. Yes, they sometimes are a 'word salad' and he has an idiosyncratic style, but the knowledge imparted (as he says, for the education of all readers, not just the OP) is always interesting, relevant and useful. He may be, in some cases, teaching you to suck eggs - but for other readers he may be filling in the gaps in their understanding that you personally don't need.

Gary's one of the 'characters' of FSDEv, and we love him!
 
Hi James. I'm another SketchUp/MCX user, though I work in FSX and P3Dv4/5.

Gary's answers have taught me a great deal over the years. Yes, they sometimes are a 'word salad' and he has an idiosyncratic style, but the knowledge imparted (as he says, for the education of all readers, not just the OP) is always interesting, relevant and useful. He may be, in some cases, teaching you to suck eggs - but for other readers he may be filling in the gaps in their understanding that you personally don't need.

Gary's one of the 'characters' of FSDEv, and we love him!
Hello Tim,

Whatever floats your boat. :p

James
 
Back
Top