Hmm, ok, found the code I was thinking of and it looks like it actually saves out each face as a separate image, then applies them individually via set cube mapping on.
Relevant files are palm tree demo:
`Create water + static cube maps
Materials_SaveStaticCubeMap(0,100,0,256,"Textures/Cube/face1.dds","Textures/Cube/face2.dds","Textures/Cube/face3.dds","Textures/Cube/face4.dds","Textures/Cube/face5.dds","Textures/Cube/face6.dds")
load image "Textures/Cube/face1.dds",20
load image "Textures/Cube/face2.dds",21
load image "Textures/Cube/face3.dds",22
load image "Textures/Cube/face4.dds",23
load image "Textures/Cube/face5.dds",24
load image "Textures/Cube/face6.dds",25
load effect "Shaders/Alpha/Water/Water Environmentmap.fx",3,0
AlphaEffect_Add(3)
AlphaEffect_EnableLighting(3,2)
make object plane 3,600,600,0
rotate limb 3,0,90,0,0
set object effect 3,3
AlphaObject_Add(3)
texture object 3,2,AL_Image(4)
texture object 3,3,16
set cube mapping on 3,20,21,22,23,24,25
position object 3,0,35,0
set vector4 AL_Vector4(1),0,100,0,0
set effect constant vector 3,"EnvBoxPos",AL_Vector4(1)
set vector4 AL_Vector4(1),-450,0,-450,0
set effect constant vector 3,"EnvBoxMin",AL_Vector4(1)
set vector4 AL_Vector4(1),450,500,450,0
set effect constant vector 3,"EnvBoxMax",AL_Vector4(1)
and Include/Materials.dba:
--------------
` Save Static Cube Map
`--------------
function Materials_SaveStaticCubeMap(iPosX as float,iPosY as float,iPosZ as float,iSize as integer,iFace1 as string,iFace2 as string,iFace3 as string,iFace4 as string,iFace5 as string,iFace6 as string)
if AL_Enabled=1
local tImage as integer
local dim tCameraData(10) as float
for e=0 to AL_FrameTargetCount-1
if effect exist(AL_FrameTarget(e).Effect)=1 then set effect technique AL_FrameTarget(e).Effect,"Disable"
next e
tCameraData(1)=AL_CameraData(1)
tCameraData(2)=AL_CameraData(2)
tCameraData(3)=AL_CameraData(3)
tCameraData(4)=AL_CameraData(4)
tCameraData(5)=Camera position x(AL_CurrentCamera)
tCameraData(6)=Camera position y(AL_CurrentCamera)
tCameraData(7)=Camera position z(AL_CurrentCamera)
tCameraData(8)=Camera angle x(AL_CurrentCamera)
tCameraData(9)=Camera angle y(AL_CurrentCamera)
tCameraData(10)=Camera angle z(AL_CurrentCamera)
tImage=AL_FreeUpImage()
AdvLighting_SetCamera(tCameraData(1),tCameraData(2),90,1)
set camera to image AL_Camera(8),tImage,iSize,iSize
set camera aspect AL_Camera(8),1
position camera AL_CurrentCamera,iPosX,iPosY,iPosZ
point camera AL_CurrentCamera,iPosX+1,iPosY,iPosZ
AdvLighting_Update()
save image iFace1,tImage
point camera AL_CurrentCamera,iPosX-1,iPosY,iPosZ
AdvLighting_Update()
save image iFace2,tImage
point camera AL_CurrentCamera,iPosX,iPosY+1,iPosZ
AdvLighting_Update()
save image iFace3,tImage
point camera AL_CurrentCamera,iPosX,iPosY-1,iPosZ
AdvLighting_Update()
save image iFace4,tImage
point camera AL_CurrentCamera,iPosX,iPosY,iPosZ+1
AdvLighting_Update()
save image iFace5,tImage
point camera AL_CurrentCamera,iPosX,iPosY,iPosZ-1
AdvLighting_Update()
save image iFace6,tImage
delete camera AL_Camera(8)
make camera AL_Camera(8)
backdrop off AL_Camera(8)
if AL_Camera(7)=AL_Camera(8) then backdrop on AL_Camera(7):color backdrop AL_Camera(7),0
position camera AL_CurrentCamera,tCameraData(5),tCameraData(6),tCameraData(7)
rotate camera AL_CurrentCamera,tCameraData(8),tCameraData(9),tCameraData(10)
AdvLighting_SetCamera(tCameraData(1),tCameraData(2),tCameraData(3),tCameraData(4))
delete image tImage
for e=0 to AL_FrameTargetCount-1
if effect exist(AL_FrameTarget(e).Effect)=1 then set effect technique AL_FrameTarget(e).Effect,"FinalComp"
next e
endif
endfunction
may not be quite what you're looking for if you need a single file cube map