I have a shader which takes a 16-bit index and looks into a 256x256 table for an RGBA value, a colormap  I want to extend it to handle larger indexes.  I think the best way is create a texture array or a 3D texture with multiple 256x256 textures.  Then instead of looking up just U, V I would look up R, S, T.

Are texture arrays and 3d textures both supported in PyOpenGL? Is one better suited to this problem?  I want an exact nearest-neighbor lookup, no filtering in X, Y or Z.