An A-Frame component for creating a skybox from a cubemap.
|folder||Path to the folder holding your cubemap or a selector||none|
|edgeLength||Controls the dimensions of the skybox||5000|
|ext||The image extension||jpg|
By default, the height, width, and depth of the skybox are set to 5000. In other words, the dimensions of the skybox are 5000x5000x5000.
folder can also be an ID to an
<a-cubemap> asset. See
|cubeTextureLoaded||Emitted when a texture has finished loading|
Attach the component to an entity using the path to the folder holding your cubemap as the attribute.
<a-entity cubemap="folder: /assets/Yokohama3/"></a-entity>
Inside the folder, the component assumes the following naming scheme:
// prettier-ignore const urls = [ 'posx.jpg', 'negx.jpg', 'posy.jpg', 'negy.jpg', 'posz.jpg', 'negz.jpg' ];
This is the scheme used by Three.js's CubeTexture. If your cubemap images do not follow this scheme, you will need to rename them (or fork this repo and alter the above in index.js).
The Yokohama cubemap texture is the work of Emil Persson, aka Humus. Check out his website, it is a good source for cubemap textures. IIRC, I got the milky way texture from uschi0815 on the Kerbal Space Program forum.
To modify the size of the resulting skybox, use the edgeLength property.
<a-entity cubemap="folder: /assets/Yokohama3/; edgeLength: 1000"></a-entity>
Install and use by directly including the browser files:
<head> <title>My A-Frame Scene</title> <script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script> <script src="https://email@example.com/dist/aframe-cubemap-component.min.js"></script> </head> <body> <a-scene> <a-entity cubemap="folder: /assets/Yokohama3/"></a-entity> </a-scene> </body>
Can this component display stereoscopic cubemaps?
object3D and set the left to layer 1 and the right to layer 2. Here is an example.
Clone the repo and
cd into it
git clone firstname.lastname@example.org:bryik/aframe-cubemap-component.git cd aframe-cubemap-component
To run the examples locally:
npm run dev
This should start a live reloading local dev server. To stop the server, hit
To generate a minified bundle:
npm run dist.
PRs are welcome. Opening an issue to discuss large changes beforehand is a good idea.