3D OBJ Viewer Control
Senior Project: 2007-2008
Microsoft has been developing
Virtual Earth,
a mapping program providing an extensive view of the Earth. Virtual Earth
includes street information, satellite images, 3D terrain details, and much
other information all integrated into a single easy-to-use program. Recently,
Microsoft has been adding 3D building models to Virtual Earth. These building
models are generated from multiple aerial and ground photos and stored in the
OBJ/MTL format. The model generation process is quite involved and there is
considerable potential for error. A good quality control application is needed
to assist in model generation.
The goal of the project was to create a "model viewer" control, which could
then be used in quality control (and other) applications. The model viewer is
capable of reading and displaying any OBJ file given to it. The viewer also
provides appropriate feedback on problems with the file, e.g. if the file is
corrupted, improperly formatted, or is missing information. Models loaded into
the viewer can easily be rotated and moved using the keyboard and mouse. The
models can also be displayed using multiple display settings useful for
analyzing a potentially problematic model. These include wireframe, vertex
highlighting, textures and adjustable lighting conditions.
The viewer was designed to provide an easy-to-use application programming
interface (API), so that it can also be used for many other uses besides
quality control. The API allows the model viewer to be easily integrated into
any application, even allowing multiple model viewers to be placed into a
single window. The entire library was implemented in C# using DirectX 9.0c.

|