Home › Forums › General Questions › Optimize for different platforms (mobile, desktop, etc)
- This topic has 6 replies, 4 voices, and was last updated 2 years, 5 months ago by raphroberts.
-
AuthorPosts
-
2020-07-08 at 8:56 am #29808webCustomer
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.
2020-07-08 at 11:06 am #29816satpreetsingh04ParticipantI 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.html2020-07-08 at 11:47 am #29824GLiFTeKCustomerHi
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 guidePossibly an initial delta of how long it takes to load certain things on different platforms could calibrate level of detail/post processing amounts.
Visit the GLIFTEK Verge3D Plugins Store!
GLIFTEK.com for Plugin Documentation & LIVE DEMOS!
LIKE The GLIFTEK Facebook Page for updates!
Join the Verge 3D Discord Server!
plz share Discord link & on your signature!2020-07-08 at 1:34 pm #29827webCustomer@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
2020-07-08 at 8:23 pm #29845GLiFTeKCustomerVery 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)
Visit the GLIFTEK Verge3D Plugins Store!
GLIFTEK.com for Plugin Documentation & LIVE DEMOS!
LIKE The GLIFTEK Facebook Page for updates!
Join the Verge 3D Discord Server!
plz share Discord link & on your signature!2020-07-09 at 10:20 am #29878webCustomerSure, 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 so2022-05-31 at 12:06 am #52521raphrobertsCustomerI 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.
-
AuthorPosts
- You must be logged in to reply to this topic.