Code archives/3D Graphics - Mesh/SkyPanorama loading code

This code has been declared by its author to be Public Domain code.

Download source code

SkyPanorama loading code by John Blackledge
(Posted 18 years ago)
I've adapted Mark's skybox code to load the output from Fredborg's SkyPanorama. http://www.frecle.net/cloud/skypanorama.zip
Please note that LoadAnimTexture needs the clamp_u and clanp_v flags setting otherwise the 'join' line shows.
;------------------
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