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 Blackledge2008
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

Comments

Chroma2010
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






Chroma2010
Btw, I wish Fredborg would update this. I know he's busy but it's a great app.


Code Archives Forum