Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a complete overhaul of the texturing system.
A single 3D texture is constrained to 2048 pixels along any dimensions. Plotting of datasets larger than this along any dimension wasn't possible.
To circumvent this limitation. We divide the dimension by 2048 and that represents the number of textures needed for that dimension. These textures are then passed into the shader where the sampling position is normalized to "texture depth" space to determine which of these textures should be sampled. Then the position is normalized to that textures sample space.
Limitation : Shaders can only handle 16 textures. Since one texture already is taken up by the colormap that leaves only 15. I've decided to limit this to 14 cause 15 seems weird to me. I can't imagine any reasonable situation where someone would run out of textures before memory so I think we are safe.
For 2D textures this limit increases from 2048 to 16384 and again, you will run out of memory before you run out of textures.
Additional Changes