¿Textura 3D en WebGL / three.js usando una solución de textura 2D?

Me gustaría usar algunas texturas 3D para los objetos que estoy renderizando en WebGL. Actualmente estoy usando el siguiente método en un fragment shader, como se sugiere enWebGL y OpenGL diferencias:

// tex is a texture with each slice of the cube placed horizontally across the texture.
// texCoord is a 3d texture coord
// size is the size if the cube in pixels.

vec4 sampleAs3DTexture(sampler2D tex, vec3 texCoord, float size) {
   float sliceSize = 1.0 / size;                         // space of 1 slice
   float slicePixelSize = sliceSize / size;              // space of 1 pixel
   float sliceInnerSize = slicePixelSize * (size - 1.0); // space of size pixels
   float zSlice0 = min(floor(texCoord.z * size), size - 1.0);
   float zSlice1 = min(zSlice0 + 1.0, size - 1.0);
   float xOffset = slicePixelSize * 0.5 + texCoord.x * sliceInnerSize;
   float s0 = xOffset + (zSlice0 * sliceSize);
   float s1 = xOffset + (zSlice1 * sliceSize);
   vec4 slice0Color = texture2D(tex, vec2(s0, texCoord.y));
   vec4 slice1Color = texture2D(tex, vec2(s1, texCoord.y));
   float zOffset = mod(texCoord.z * size, 1.0);
   return mix(slice0Color, slice1Color, zOffset);
}

El problema es que la textura 3D más grande que puedo usar es 64x64x64 (ya que el ancho máximo de textura 2D es 4096 = 64 * 64). Me gustaría intentar usar texturas más grandes si es posible, así que me gustaría ver si alguien tiene sugerencias para usar texturas 3D de mayor resolución con una solución similar. Presumiblemente, debería poder organizar la textura 2D de tal manera que tenga los cortes 3D dispuestos horizontal y verticalmente, pero mi google-fu no ha podido encontrar una solución viable hasta ahora.

Respuestas a la pregunta(1)

Su respuesta a la pregunta