Home Technical Talk

[3DSMAX] [SOLVED] Do Not Load any Bitmaps when Opening a Max File over Network

polycounter lvl 6
Offline / Send Message
Dash-POWER polycounter lvl 6
Hello,

I have a question regarding loading bitmaps over a network. During the Corona times, we are working remotely and all our stuff are on company servers. However, our main issue what we currently have are large bitmaps references in all max files. When opening any max file, it takes x minutes to get the scene open until all large bitmaps are pulled to max cache in native resolution.

Is there any way how to force 3dsmax to ignore loading all bitmaps/ load only last mip or relink all bitmaps to a local repository? Load a max file without bitmap and then using local stored bitmaps would be the best solution I think.

I was checking maxscript but the <boolean>loadMaxFile <filename_string> [useFileUnits:<bool>] [quiet:<bool>] does not provide any handler to operate with before actual pulling bitmaps.

I was checking as well Bitmap proxies but it seems that is only relevant with actual offline rendering.

Thank you for any suggestion.

Replies

  • monster
    Options
    Offline / Send Message
    monster polycounter
    If you are using Max 2015 or newer you can change this line to your Max INI file, and restart Max after making this change.
    [Performance]
    FindMissingMapsOnSceneLoad=0

    More info here:
    http://cganimator.com/3dsmax-tips-1-3dsmax-ini-setting-for-file-load-save-speed-up/
  • Dash-POWER
    Options
    Offline / Send Message
    Dash-POWER polycounter lvl 6
    Thank you for the info! However, I have tried everything from the post but nothing helped. Bitmaps are still loading on max scene startup. We are using Max 2015 SP4. But one thing at least changed, the File Property dialog no longer contains list of used External Resources - bitmaps. Unfortunately, this is not helpful. 

    I tried also resaving the max scene with the new max INI settings. Didn't help.

    I have also tried to remove some asset metadata from max scene and assign a new array without any bitmaps. However, the setMAXFileAssetMetadata somehow is ignoring my adjusted array and not letting me override it even the function returns true.


  • passariello
    Options
    Offline / Send Message
    You need a connected drive using a Samba ( and DAV ).... too many protection by OS and AntiVirus.
    So, Some NAS do that ... or you need to have a computer as Local Storage. The sharing system by OS is subject to many issue!... on is the LOCK

  • Dash-POWER
    Options
    Offline / Send Message
    Dash-POWER polycounter lvl 6
    I digged more into the problem and solved it. I'm changing max file metadata streams to local texture paths before actual opening the max file. By this, I know the original network path and can copy all resources to local drive before actual loading the max file. After saving max file, I made a callback to change all bitmap metadata streams in that file to be back as original. All this wrapped with my terrible UX.

    Results are good. From 6min of loading one max file, it is around 12s instead. (In case all necessary textures are already cached) :smiley:


    Script steps:
    1. Get all bitmap streams from a max file which I want to open / operate with.
    2. Find matching bitmap cached in the local repository.
    3. If referenced bitmaps is not found -> copy the bitmap from NAS to the local folder.
    4. Replace bitmap stream in max file to reference bitmaps stored in the local folder.
    5. Open max file with new reference paths.

    There are callbacks for PreLoad and PostSave. PostSave will revert all stream values back that from the max point of view, it will look like that I opened the file actually with network paths.

    For curiosity, You can grap the script from the attachment. Feel free to use it/ modify it if you are having similar issues. There are bugs and code is ugly but for now, it has enough functionality for our needs. :sweat_smile:

    And thank you for your tips!

     
Sign In or Register to comment.