Skip to content

Conversation

@TheJeran
Copy link
Collaborator

@TheJeran TheJeran commented Oct 14, 2025

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

  • Breaking textures apart means method of passing data to point cloud doesn't work. I moved the texture data to a global value. This should prevent creating redundant data. I also used this data to create a GetCurrentArray() function which will make "Resetting" from analysis mode snappier
  • 2D datasets can now be sliced and chunked if chunks are available
  • A few minor bugs. But I forgot which ones they were.

@TheJeran TheJeran linked an issue Oct 14, 2025 that may be closed by this pull request
@TheJeran TheJeran merged commit aab8f74 into main Oct 14, 2025
6 checks passed
@TheJeran TheJeran linked an issue Oct 14, 2025 that may be closed by this pull request
@TheJeran TheJeran deleted the jp/larger-textures branch October 15, 2025 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

analysis (mean, max, min) is broken in the PointCloud component Support Larger Dataset Dimensions

2 participants