Use a skybox and reflection map
Source file: SkyboxAndReflMapExample
JavaDoc: TextureUtility
JavaDoc: CubeMap
Creating a skybox and a matching reflection map is as easy as reading in six images representing the sides of the world cube. The method TextureUtility.createReflectionMap(...)takes as arguments a string representing the location where the files are located (directory plus the file name stem), the suffixes used to represent the six walls, as well as the file suffix (.jpg, .png).
Deriving a skybox from a reflection map is handled by the method TextureUtility.createSkyBox(...)
.
Note that to get a reflection map on the tubes generated by a line shader, you have to create a separate reflection map. Similar (but not shown) for spheres generated by point shader.
The method createReflectionMap(...)
used in this example uses shader interfaces to write appropriate values into the Appearance instance it is handed. See How to use shader interfaces for details.
... public class SkyboxAndReflMapExample { public static void main(String[] args) { SceneGraphComponent worldSGC = SceneGraphUtility.createFullSceneGraphComponent("SkyboxExample"); worldSGC.setGeometry(new CatenoidHelicoid(40)); Appearance ap = worldSGC.getAppearance(); DefaultGeometryShader dgs = ShaderUtility.createDefaultGeometryShader(ap, true); dgs.setShowLines(true); dgs.setShowPoints(false); // basic class needed for both reflection maps and skyboxes is a CubeMap CubeMap rm = null; try { rm = TextureUtility.createReflectionMap(ap,"polygonShader", "http://www3.math.tu-berlin.de/jreality/download/data/reflectionMap/desert_", new String[]{"rt","lf","up", "dn","bk","ft"}, ".jpg"); } catch (IOException e) { e.printStackTrace(); } Viewer v = JRViewer.display(worldSGC); ImageData[] sides = TextureUtility.getCubeMapImages(rm); // attach a skybox to the scene root TextureUtility.createSkyBox( v.getSceneRoot().getAppearance(), sides); } }
The result should look something like this:
|
How to create your own sky box with a digital camera:
You can create your own sky box with a digital camera.
See http://ace.utsa.edu/ted/skybox for detailed instructions.
(you're welcome to add the instructions directly to this Wiki)