Nice! And here's a little Viewer app so you can drag and drop the SkyPanorama files onto the .exe for quick viewing.
;SkyPanorama Tester - Drag and Drop
Graphics3D 1680,1050,32,2
light = CreateLight()
camera = CreateCamera()
CameraRange camera,1,6000
box = CreateCube()
PositionEntity box,0,0,10
a$=CommandLine$()
sky = LoadSkyStrip(a)
PositionEntity sky,0,0,0
While Not KeyHit(1)
Cls
RotateEntity camera,EntityPitch(camera),EntityYaw(camera),0
TurnEntity camera,MouseYSpeed()*.3,-MouseXSpeed()*.3,0
MoveMouse 500,500
UpdateWorld
RenderWorld
Text 10,10,a
Flip
Wend
End
;------------------
Function LoadSkyStrip(file$)
;------------------
tex = LoadAnimTexture(file$,1+8+16+32,512,512,0,6)
hEntSkyBox=CreateMesh()
b = CreateBrush()
BrushTexture b,tex,0
;back face
b = CreateBrush()
BrushTexture b,tex,0
s=CreateSurface(hEntSkyBox,b )
AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;left face
b = CreateBrush()
BrushTexture b,tex,1
s=CreateSurface(hEntSkyBox,b )
AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;front face
b = CreateBrush()
BrushTexture b,tex,2
s=CreateSurface(hEntSkyBox,b )
AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;right face
b = CreateBrush()
BrushTexture b,tex,3
s=CreateSurface(hEntSkyBox,b )
AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;top face
b = CreateBrush()
BrushTexture b,tex,4
s=CreateSurface(hEntSkyBox,b )
AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;bottom face
b = CreateBrush()
BrushTexture b,tex,5
s=CreateSurface(hEntSkyBox,b )
AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1
AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
ScaleMesh hEntSkyBox,3000,3000,3000
FlipMesh hEntSkyBox
EntityFX hEntSkyBox,1+8
Return hEntSkyBox
End Function
|