Currently, the construction of a Texture3D object is inefficient in that it is
plane-by-plane constrained due to the exclusive use of 2D BufferedImages. This
leads to a complete duplication of client's 3D source texels whether or not the
BY_REFERENCE flag is turned on in the ImageComponent3D.
Similarly, the updation of a Texture3D using ImageComponent3D.updater mechanics
can only be achieved by invoking the updater for each plane along the depth
resulting in too many updater calls.
In order to prevent memory duplication, it will be very helpful if the
construction of a Texture3D object can be designed to accept a client's 3D
source texels specified in a flattened 1D array just as what OpenGL will expect
as input eventually.
In order to enhance performance, an updation should be designed to facilitate as
input a 3D subregion of the Texture3D by proper specification of the s-, t-, and
r-offsets analogous to ImageComponent2D.
The proposed enhancements will significantly aid, among others, volume rendering
applications where Texture3D sizes of the order of 512^3 are becoming fairly