I am building a touch application to load about 200 high resolution images (8196px on one of the dimensions). Loading time is very long and the application hangs while loading, I am using dds DXT5 textures.
What is the best option in this case in the DDS converter? They are just b/w images no alpha
__ If you want to reduce dds size, use either dxt1/bc1 (1 bit of alpha, so no alspha ;), or dxt5/bc3 for textures with alpha (technically pretty much all textures nowadays benefit from block compression scheme)
Ok, so DXT1 is the choice and with mipmaps so they don t have to be built at load time.
Enabling the Load In Background option also unlocks the patch, but it still takes ages to load images.
It takes about 20 seconds to load an image so if I want 200 images that makes over one hour to load all of them. Any way this can be improved?
We are also talking about 5Gb of images which won t fit on my video card (from what I understand about video cards, when video memory is not enough it will be loaded on RAM, correct?)
Maybe I should load a set of lower resolution images and use those until all the full images are loaded, swapping them as they are available… any other idea?
20 seconds is super slow to the point I would say something is up. Maybe you have super slow harddisk - SSD will improve load times.
Plenty of 4gb cards around these days for good prices so you might be able to get them all on the card. I suspect you’ll find larger cards too. Pretty sure RAM doesnt start getting used when texture memory full but would be easy to check.
Why do you have to use such high textures? 4096 cuts memory requirements massively.
I ve got an SSD disk, now the pictures load in 5-10 seconds, even faster if I disable mipmaps but I need them.
We d like to be able to zoom into the pictures, that s why we are using such high resolution files.
I am really surprised about the file loading time it goes from SSD to video card memory I d expect it to be superfast, each pictures weights 27Mb.
how about intelligent google maps like image loading mechanism? you create a low resolution version for zoomed out and slice up high rresolution version for zoomed in. so texture loading is fasten up also loading in background is fast enough for view ddependent dynamic loading
Microdee, that is what I was thinking but instead of using the “is scaled up” logic to load the high resolution image (what would happen if the high res image is not loaded yet?), I could load at first a serie of low resolution images and then start loading the high resolution ones, then swap them as they load (Is Valid pin).
in google maps’ case if the requested slice of the high res version is not loaded yet then it simply display the lowres version for that moment. also the reason for this sslicing thing is you never need to load the full highres image. imagine if maps would need to load the entire earth ;)
Ok, so, I tried setting the slice(String) before the FileTexture but this creates a " blank moment" while the texture is being swapped. So I tried to load separatly the texture with another FileTexture node but there are not proper nodes to SetSlice for textures arrays…
EDIT: it is possible with the Switch(Node) node, I also had to add a bit of delay before loading the high resolution image to give it time to be fully available ot the gpu.