We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.

Optimize for different platforms (mobile, desktop, etc)

Home Forums General Questions Optimize for different platforms (mobile, desktop, etc)

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #29808
    web
    Customer

    Hey guys,

    I would love to hear your thoughts of how you optimizing your projects/apps for different platforms.

    For the current project we got different requirements. I would love to get the best visual quality for each platform / hardware.

    For example the SSAA affects quality quite heavily but, really puts stress on the gpu. Since you cant really decide which quality is best just by reading the gpu model and compare it with a form of database, because it really depends on the scene itself. I think you would need some kind of fps/performance measure on runtime.

    I was thinking of reading the fps for the first 1-3 seconds and apply specific post-processing effects by the results. How do you guys handle this?

    Another for me interesting topic is the texture size. I would love to detect max possible texture size and load the corresponding maps. For example 8k for desktop but android 4k.

    #29816
    satpreetsingh04
    Participant

    I optimize my project by enabling an option “LZMA compression” while exporting from my 3d editor(Maya/3ds Max). And if you select this option it will optimize your project for faster loading. And if you enable this option you also have to enable in init tab called compressed assets.

    this is the link for full description
    https://www.soft8soft.com/docs/manual/en/introduction/Asset-compression.html

    #29824
    GLiFTeK
    Customer

    Hi
    I’ve been wanting to read fps also, to throttle commonly occurring minor animations (fade in/outs of icons vs just appearing if too many are at once etc)
    There is this, the performance bottleneck guide

    Possibly an initial delta of how long it takes to load certain things on different platforms could calibrate level of detail/post processing amounts.

    #29827
    web
    Customer

    @satpreetsingh04
    Thx for your tips. This is already part of my workflow. My question was related more to graphic performance, and not the intial loading.


    @GlifTek

    Today I already worked a little bit on a fps performance measure. Because I got yet no answer from the verge team of how to read the fps on runtime, I used a javascript function which I found at stackoverflow.

    It seems to read the fps pretty accurate when I compare it to the verge internal showFPS. But I struggle a bit with the logic.

    First try was just a simple if fps higher than do high quality, if lower then low quality. This seemed to work on my desktop computer, but on my smartphone. I have to think of a clever way to check performance reliable at startup :scratch:

    #29845
    GLiFTeK
    Customer

    Very cool. Could you post the JS snippet? Just wrap it with backticks on the tilda key.

    Yea I’m having serious amounts of unexpected drastic sways in fps.
    Very odd since my geometry/materials are almost negligent. Going to drop all my blender settings and go up one by one from there.

    Also incorporating a disable refer on no user input/animation is good(if hasn’t been mentioned)

    #29878
    web
    Customer

    Sure, here you go:

    var avgFPS = 0;
    var quality = '';
    app.renderCallbacks.push(function (delta, elapsed) {
    	var FPS_INERTIA = 1;
    	if (delta > 0) {
    		avgFPS = v3d.MathUtils.expAverage(avgFPS, 1 / delta, delta, FPS_INERTIA);
    		var fps = Math.round(avgFPS);
    
    		if (fps >= 50 && quality != 'high') {
    			app.enableSSAA(4);
    			quality = 'high';
    			console.log('high');
    		}
    		else if (fps > 20 && fps < 50 && quality != 'mid') {
    			app.enableSSAA(2);
    			quality = 'mid';
    			console.log('mid');
    		} else if (fps <= 20 && quality != 'low') {
    			app.disablePostprocessing();
    			console.log('low');
    			quality = 'low';
    		}
    	}
    });

    This is the updated function for getting the fps which Ivan gave me.
    But the problem still persists that its switching quality back and forth on my mobile. Seems that its stuck between to two fps ranges.
    I think its better to get the average fps over a period of time and maybe just set the quality in the first 10 seconds or so

    #52521
    raphroberts
    Customer

    I know this is an old thread but just for anyone finding it later – you can press FFF three times for FPS counter in the latest version of Verge. Also PPP to get performance printout to console.

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.