Here's a demo I made for realtime cubemaps.
The issue is, I have to use 6 cameras for each facet of each cubemap. I'll run out of cams very quickly. It seems whenever I assign a camera to do something else, the image it's linked to immediately turns black.
Are there any other easier techniques? (see attached for demo, see below for just the code)
SYNC ON
SYNC RATE 60
LOAD IMAGE "br_back2.bmp",1
LOAD IMAGE "image2.bmp",2
MAKE OBJECT CUBE 2,100
SCALE OBJECT 2, -100,-100,-100
TEXTURE OBJECT 2,2
MAKE OBJECT CUBE 1,10
TEXTURE OBJECT 1,1
cubemapSize = 256
side1img = 10
MAKE IMAGE side1img,cubemapSize,cubemapSize
side2img = 11
MAKE IMAGE side2img,cubemapSize,cubemapSize
side3img = 12
MAKE IMAGE side3img,cubemapSize,cubemapSize
side4img = 13
MAKE IMAGE side4img,cubemapSize,cubemapSize
side5img = 14
MAKE IMAGE side5img,cubemapSize,cubemapSize
side6img = 15
MAKE IMAGE side6img,cubemapSize,cubemapSize
`FIND FREE CAMERA
MAKE CAMERA 1
SET CAMERA VIEW 1, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 2
SET CAMERA VIEW 2, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 3
SET CAMERA VIEW 3, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 4
SET CAMERA VIEW 4, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 5
SET CAMERA VIEW 5, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 6
SET CAMERA VIEW 6, 0,0,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 1,side1img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 2,side2img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 3,side3img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 4,side4img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 5,side5img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 6,side6img,cubemapSize-1,cubemapSize-1
SET CUBE MAPPING ON 1,10,11,12,13,14,15
DO
SYNC MASK 126 // cameras 1-6
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0+5.0,0,0
POSITION CAMERA 2, 0,0,0
POINT CAMERA 2, 0-5.0,0,0
POSITION CAMERA 3, 0,0,0
POINT CAMERA 3, 0,0+5.0,0
POSITION CAMERA 4, 0,0,0
POINT CAMERA 4, 0,0-5.0,0
POSITION CAMERA 5, 0,0,0
POINT CAMERA 5, 0,0,0+5.0
POSITION CAMERA 6, 0,0,0
POINT CAMERA 6, 0,0,0-5.0
FASTSYNC 1
SYNC MASK 1 // camera 0
YROTATE OBJECT 2,WRAPVALUE(OBJECT ANGLE Y(2)+0.01)
FASTSYNC
LOOP
Here's some code for a method that I think would work, but the images seem to turn out black:
SYNC ON
SYNC RATE 60
LOAD IMAGE "br_back2.bmp",1
LOAD IMAGE "image2.bmp",2
MAKE OBJECT CUBE 2,100
SCALE OBJECT 2, -100,-100,-100
TEXTURE OBJECT 2,2
MAKE OBJECT CUBE 1,10
TEXTURE OBJECT 1,1
cubemapSize = 256
side1img = 10
MAKE IMAGE side1img,cubemapSize,cubemapSize
side2img = 11
MAKE IMAGE side2img,cubemapSize,cubemapSize
side3img = 12
MAKE IMAGE side3img,cubemapSize,cubemapSize
side4img = 13
MAKE IMAGE side4img,cubemapSize,cubemapSize
side5img = 14
MAKE IMAGE side5img,cubemapSize,cubemapSize
side6img = 15
MAKE IMAGE side6img,cubemapSize,cubemapSize
REMSTART
MAKE CAMERA 1
SET CAMERA VIEW 1, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 2
SET CAMERA VIEW 2, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 3
SET CAMERA VIEW 3, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 4
SET CAMERA VIEW 4, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 5
SET CAMERA VIEW 5, 0,0,cubemapSize-1,cubemapSize-1
MAKE CAMERA 6
SET CAMERA VIEW 6, 0,0,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 1,side1img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 2,side2img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 3,side3img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 4,side4img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 5,side5img,cubemapSize-1,cubemapSize-1
SET CAMERA TO IMAGE 6,side6img,cubemapSize-1,cubemapSize-1
SET CUBE MAPPING ON 1,10,11,12,13,14,15
`method 1
DO
SYNC MASK 126 // cameras 1-6
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0+5.0,0,0
POSITION CAMERA 2, 0,0,0
POINT CAMERA 2, 0-5.0,0,0
POSITION CAMERA 3, 0,0,0
POINT CAMERA 3, 0,0+5.0,0
POSITION CAMERA 4, 0,0,0
POINT CAMERA 4, 0,0-5.0,0
POSITION CAMERA 5, 0,0,0
POINT CAMERA 5, 0,0,0+5.0
POSITION CAMERA 6, 0,0,0
POINT CAMERA 6, 0,0,0-5.0
FASTSYNC 1
SYNC MASK 1 // camera 0
YROTATE OBJECT 2,WRAPVALUE(OBJECT ANGLE Y(2)+0.01)
FASTSYNC
LOOP
REMEND
`method 2
MAKE CAMERA 1
SET CAMERA VIEW 1, 0,0,cubemapSize-1,cubemapSize-1
SET CUBE MAPPING ON 1,10,11,12,13,14,15
`method 1
DO
SYNC MASK 2^1 // camera 1
SET CAMERA TO IMAGE 1,side1img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0+5.0,0,0
FASTSYNC 1
SET CAMERA TO IMAGE 1,side2img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0-5.0,0,0
FASTSYNC 1
SET CAMERA TO IMAGE 1,side3img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0,0+5.0,0
FASTSYNC 1
SET CAMERA TO IMAGE 1,side4img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0,0-5.0,0
FASTSYNC 1
SET CAMERA TO IMAGE 1,side5img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0,0,0+5.0
FASTSYNC 1
SET CAMERA TO IMAGE 1,side6img,cubemapSize-1,cubemapSize-1
POSITION CAMERA 1, 0,0,0
POINT CAMERA 1, 0,0,0-5.0
FASTSYNC 1
SYNC MASK 1 // camera 0
YROTATE OBJECT 2,WRAPVALUE(OBJECT ANGLE Y(2)+0.01)
FASTSYNC
LOOP
