I have project where textures that are sent to shaders to change at certain points. I have them loading via an m3u playlist, obtaining the filenames with “getslice” an passing them to a “filetexture” node which then sends them to the texture input of a pixel shader.
However, everytime the list advances, there is a several frame pause as it loads in the new textures. I’ve tried having a separate shader load all of the textures from the same m3u playlist node, rendering them to a 2x2 dx9 texture, ensuring they are all used but minimizing GPU load and it still stutters on transition.
how can I prevent it from stalling to load the next set of textures without having to use a separate sampler for every texture in my shaders?
Note: a filetexture can only be shared between nodes if they not only have the same filename, but also the same options (including width, height, textureformat,…).
so don’t scale the textures to 2x2 for the preloading!
I don’t entirely understand the link about preloading textures.
“Specify all names of files you want to preload in the FileTextures Filename input.”
I created a quad node, connected the output of my m3u parser to a FileTexture node, and connected it to the same group node that is being used to render all of my shaders using said textures. Disabled the quad, but the other shaders still stutter on change whenever the getslice nodes for their textures advance. All of the texture files are .dds cube maps of the same dimensions, compression format, and number of miplevels.
Specify all names of files you want to preload in the FileTextures Filename input.
means that there should be a spread of filenames going into your filetextures input. if you already have it like this you may want to post (a simple version of) your patch so we can have a look at it.