I built the 3d graphics engine for this - I mean everything. Scene graph management, Shader management, and the Terrain Rendering engine which is a custom shader based implementation of the GeoClipmap algorithm. This is all C++/DirectX9 and HLSL (using FX framework) I also built all the networking code, keeping 4 computers displaying 300+ miles of terrain in sync at 75 FPS.
This simulator renders to-horizon terrain, atmosphere, and airport models. The terrain rendering subsystem is a custom, HLSL based implementation of the GeoClipmap algorithm derived by researchers at Microsoft. For more information about GeoClipmapping, you can view this pdf: http://research.microsoft.com/~hoppe/gpugcm.pdf.
This flight simulator is use to train pilots for companies like Delta. |  |
More about this project:
I was asked this question in a recent programmer assessment/test
Describe
the most difficult project you ever worked on and explain what made it so
difficult? In 2008 & 2009 I built the 3d graphics engine that
powered the visual system used for an FAA approved full flight airplane
simulator used to train airplane pilots.
Several key challenges made this project both very rewarding and very
difficult.
First, to create an immersive environment, the visual system
images projected the world on a 10' high by 40' long cylindrical screen. So, instead of just creating a standard 3d
engine which projects 3d images unto a 2d screen, I actually had to calculate
how to project the 3d image to the inside of a room sized cylinder. That was actually the start of the project
challenges I faced with the physical set up of the simulator setup; the
projectors for the system stand ~25 feet back form the cylinder and ~15 high (5
feet above the cylinder projection screen) which creates a non normal skew for
the center projector. Also two of the projectors are skewed approximately 45
degrees and 8 feet off center – one in each direction (left and right) to
create the view to the left and right of the airplane cockpit.
Second, on top of the projection issue above, to generate
one 1920x1080 high definition, 40 foot long,
220 degree continuous picture, the visual system was comprised of 4
computers; three image generator systems that generated the 3d images
(displayed by the projectors mentioned above), and one “master” system that
gathered all the geographic information system data (GIS data), converted the
GIS data into 3d data format recognized by image generation systems and then distributed
that 3d data over UDP to the image generation systems. All four systems had to stay in perfect
real-time synchronization and run at 75 frames per-second.
Third, due to the strenuous level of realism required, the
continuous flight and high altitudes, the visual system would some times
display as much as 300 miles of world data.
This required implementing very complex but fast 3d graphics rendering
techniques that have been pioneered by the PHDs at Microsoft, Boeing and
Nvidia.
|
ď James Carter, Nov 16, 2010, 6:52 AM
ď James Carter, Nov 16, 2010, 6:52 AM
ď James Carter, Nov 16, 2010, 6:52 AM
|