Вы делаете это через GLSL? В этом случае textureCube принимает vec3 в качестве координаты текстуры, которая является единичным вектором на сфере. В вашем случае вы берете координату вашего фрагмента относительно центра сферы, нормализуете ее и передаете как координату. Не нужно беспокоиться о внутреннем представлении в виде шести двумерных текстур.
uniform samplerCube cubemap;
varying vec3 pos; // position of the fragment w.r.t. the center of the sphere
/* ... */
vec4 color = textureCube(cubemap, normalize(pos).stp);
Так же работает и в OpenGL с фиксированным конвейером.
Кстати, вот как координаты используются внутри: наибольшая координата в абсолютном значении используется для выбора, из какой из шести текстур считывать (знак выбирает положительный или отрицательный) Две другие координаты используются для поиска текселя на выбранной карте после разделения по наибольшей координате.