Making a custom panoramic image viewer is very straightforward when you use Three.js. All you have to do is create a sphere object, place a camera in the middle of it, and add the image to the backside of the sphere. Most of the controls are already available for you with the default library features. Typically, I like to use the orbit control library to get a nice fluid view.
Texture mapping is a method for defining high-frequency detail, surface texture, or color information on a computer-generated graphic or 3D model. Using texture mapping techniques allow for the simulation of a more realistic 3D scene in realtime with a dramatically smaller number of polygons and lighting calculations.
Reflections can be a tricky 3D graphics device to employ but with Three.js they can be accomplished quite easily using a Cube Camera, a unique camera that allows us to utilize cube mapping. In computer graphics, cube mapping is a method of environment mapping that uses the six faces of a cube as the map shape. The environment is projected onto the sides of a cube and stored as six square textures, or unfolded into six regions of a single texture.