Virtual Environment Design - Solar System Flythrough
MAT246A - Virtual Environment Design, instructed by Andreas Engberg
Introduction
I've always been fascinated by astronomy, and when I was a child I would long for the day when I would have the chance to travel to outer space. Unfortunately, the event of that happening is becoming increasingly unlikely. Since virtual reality is a way to experience what one would otherwise be unable to in the real world, I thought astronomy would be an interesting application.
Implementation
This project was implemented in EON Studio, a virtual environment design and rendering system. The models in this project were created using 3ds max. Rhino3D was also used to reduce the number of polygons in some models for increased real-time rendering performance. Paths, textures, materials, and transparency were applied in EON Studio.
The user navigates through the environment with the aid of a glove. By closing their hand, the user moves in the direction they point towards. The user is free to travel in all three dimensions, and the headset allows for orientation of the viewport which is independent of the direction of travel.
Models
Space Habitat
This model represents a cylindrical space habitat which slowly rotates to simulate gravity. Three large mirrors are used to reflect sunlight in through windows in the hull of the habitat and onto the island opposite each mirror.
To generate the landscape for each island, fractal noise maps were created in Adobe Photoshop and imported into 3ds max as displacement maps for three rectangular meshes. These meshes were then distorted using the Bend modifier to each create three 60 degree segments of the habitat's hull.
Figure 1 - Space Habitat (click image to enlarge)
Figure 2 - Inside Space Habitat (click image to enlarge)
celestial bodies
These models represent the Sun, Earth, Moon, and Mars. Each model uses a VRML spherical indexed face set and textures I generated from NASA surface imagery. As an aid in navigating between planets, I chose to not have them follow actual orbits, and therefore remain stationary relative to one another.
Figures 3, 4, 5 - Planetary Texture Maps (click images to enlarge)
Space Station/Shuttle
These models represent a space station and shuttle orbiting the Earth. The space station's position and orientation rotates in a circular path relative to the Earth, and also rotates relative to its own z axis to simulate gravity. The shuttle moves in a linear path relative to the z axis of space station. This compound path produces a realistic, spiral trajectory that an actual spacecraft might follow when leaving Earth's gravity.
Figure 6 - Space Station and Shuttle
Difficulties
One difficulty I experienced when designing this project was how to properly navigate between distant objects. To improve rendering speeds, I tried to minimize the far clipping plane distance. However, this would make distant objects invisible, so to alleviate this problem I had to be careful to place objects within sight of at least one other object, to avoid having the user get 'lost in space'.
Another difficulty was also due to the far clipping plane - objects can suddenly 'pop' into visibility when they cross through this plane, which appears very unnatural. To alleviate this problem, I tried to place objects so that the user's eye would be distracted by nearby objects when the more distant objects cross the clipping plane.
Improvements
Collision detection is currently not enabled to improve rendering performance. A natural improvement would be to enable collision detection to avoid having the user 'fly through' other objects, which is obviously very unnatural.
If performance would allow, an obvious improvement would be to extend the far clipping plane much further than it currently is, so that distant objects could slowly grow in size from small, star-like points. This would also allow the correct orbit and scale to be applied to each celestial body.
Another improvement would be to add a large sphere around the entire environment that was texture-mapped to display the galactic star-field. Aside from the visual improvement it would bring to the project, it would also aid the user in orienting himself in the otherwise landmark-free space.