topical media & game development
mobile-query-three-plugins-flamethrower-examples-vendor-tquery-tquery.cubetexture.js / js
Create a texture cube. Suitable for skymap or envmap
returns: {THREE.Texture} the just-built texture
tQuery.register('createCubeTexture', function(opts){
// handle parameters polymorphisms
if( arguments.length === 2 ){
var path = arguments[0];
var format = arguments[1];
var urls = [
path + 'px' + format, path + 'nx' + format,
path + 'py' + format, path + 'ny' + format,
path + 'pz' + format, path + 'nz' + format
];
}else if( typeof(opts) === 'string' ){
console.assert( tQuery.TextureCube.WellKnownUrls[opts], "no tQuery.TextureCube.WellKnownUrls for "+opts);
var urls = tQuery.TextureCube.WellKnownUrls[opts];
}else if( opts instanceof THREE.Texture ){
var textureCube = opts;
return textureCube;
}else if( opts instanceof Array ){
var urls = opts;
}else if( opts instanceof Object ){
console.assert(opts.path , "opts.path must be defined");
console.assert(opts.format , "opts.format must be defined");
var urls = [
opts.path + 'px' + opts.format, opts.path + 'nx' + opts.format,
opts.path + 'py' + opts.format, opts.path + 'ny' + opts.format,
opts.path + 'pz' + opts.format, opts.path + 'nz' + opts.format
];
}else console.assert(false, "opts invalid type "+opts);
// create the textureCube
var textureCube = THREE.ImageUtils.loadTextureCube( urls );
// return it
return textureCube;
});
@namespace
tQuery.register('TextureCube', {});
To create urls compatible with THREE.ImageUtils.loadTextureCube
tQuery.TextureCube.createUrls = function(basename, format, rootUrl, posPrefix, negPrefix){
posPrefix = posPrefix || "p";
negPrefix = negPrefix || "n";
var path = rootUrl + "/" + basename + "/";
var urls = [
path + posPrefix + 'x' + format, path + negPrefix + 'x' + format,
path + posPrefix + 'y' + format, path + negPrefix + 'y' + format,
path + posPrefix + 'z' + format, path + negPrefix + 'z' + format
];
return urls;
}
predefined urls compatible with THREE.ImageUtils.loadTextureCube.
They points toward the cube maps in plugins/assets
tQuery.TextureCube.WellKnownUrls = {
bridge2 : tQuery.TextureCube.createUrls('Bridge2', '.jpg', '../../assets/images/textures/cube', 'pos', 'neg'),
escher : tQuery.TextureCube.createUrls('Escher', '.jpg', '../../assets/images/textures/cube'),
park2 : tQuery.TextureCube.createUrls('Park2', '.jpg', '../../assets/images/textures/cube', 'pos', 'neg'),
park3Med : tQuery.TextureCube.createUrls('Park3Med', '.jpg', '../../assets/images/textures/cube'),
pisa : tQuery.TextureCube.createUrls('pisa', '.png', '../../assets/images/textures/cube'),
skybox : tQuery.TextureCube.createUrls('skybox', '.jpg', '../../assets/images/textures/cube'),
swedishRoyalCastle : tQuery.TextureCube.createUrls('SwedishRoyalCastle', '.jpg', '../../assets/images/textures/cube')
};
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.