Hello,
I’ve looked for the answer on the forum but couldn’t find anything that solves my issue, so I’m making this thread.
I have a case where my scene has set boundaries 10000x10000px. I have 8 smaller pieces of background which I’m placing next to each other, which makes the full scene composition. There is a case where I need to zoom out the scene to the maximum. My application has a resolution of 1920x1080. The problem lies in performance. Putting these 8 pieces of images makes integrated graphics explode on 60fps, it’s always next to 90% of usage when maximally zoomed out, even tho there’s only 8 images. It’s not stuttering at all, but fans are ultra loud.
The reason, probably, is how it redraws the whole canvas. If I decrease the amount of FPS to 15fps, the amount of GPU usage is reduced to ± 40%. This is still a lot(taking the fact that I’m showing 8 images zoomed out), but much better. I think that under the hood, every frame renders 10000x10000 pixels, which are scaled to FHD.
This moves out to the question - how to deal with that? I tried:
- decreasing the quality of images and switching them in real-time (high-res to low-res) to help ScaleManager, but it seems it’s rendering the same amount of pixels, but in worse quality
- to put an image in the background in CSS, but it generates problems with zooming, moving around the map, and changing it
- to use .pvr with S3TCSRGB, but it’s not improving performance significantly
I have no clue how to deal with that. I can’t decrease fps, the size of a canvas, the zoom amount, or the boundaries of the scene.
You can think about this project as a map of the whole world, where you can click on countries to get information about them. The only animated thing out there will be a pop-up on some capitals(on a very specific event) and a color change on the sprite on hovering over it.
Is there any way to simplify the redraw mechanism or mark specific images as “won’t change, you can modify the previous one”?