NAME
SDL::Tutorial::3DWorld::Skybox - Better than a uniform sky colour
DESCRIPTION
A Skybox is a common method for drawing a full photographic background for a 3D World visible in all directions.
It consists of a large cube with a set of six special pre-rendered textures that stich together at the edges, creating the appearance of a large surrounding environment.
For more information on the general concept of a sky box see http://en.wikipedia.org/wiki/Skybox_%28video_games%29.
This basic implementation takes a directory and looks for six image files within it called north.bmp, south.bmp, east.bmp, west.bmp, up.bmp and down.bmp.
The textures are projected onto the cube and uniformly lit, ignoring the normal lighting model.
The main special effects "trick" to implementing a skybox is that it will rotate with the rest of the world but match the movements of the camera so that artifacts in the skybox texture stay the same size regardless of the movement of the camera (making them appear to be a long way away).
METHODS
new
# Load a skybox from a set of files included within a distribution
my $sky = SDL::Tutorial::3DWorld::Skybox->new(
directory => File::Spec->catdir(
File::ShareDir::dist_dir('SDL-Tutorial-3DWorld'), 'skybox'
)
);
The new
constructor creates a new skybox object.
It takes a single directory
parameter which should be a directory that exists, and contains the six named BMP skybox texture files.
Although the existance of the texture files will be checked at constructor time, they will not actually be loaded until you run the world (during the init phase).
directory
The directory
accessor returns the skybox texture directory.
type
The type
accessor returns the file type of the skybox textures.
SUPPORT
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SDL-Tutorial-3DWorld
AUTHOR
Adam Kennedy <adamk@cpan.org>
SEE ALSO
COPYRIGHT
Copyright 2010 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 233:
=cut found outside a pod block. Skipping to next block.