The high end flight simulators have also been used extensively in the design of cockpits for recent aircraft. The simulators allow reactions to be gathered from pilots and the cockpit design to be updated based on the feedback from the pilots. This update and feedback was not feasible before the simulators. Pilot reactions have been very positive to recently developed cockpits using this feedback.
After having a model, the fundamental task of a flight simulator is image rendering. During navigation, the users can control the speed, and the rotation angle of the plane through I/O devices, like 6 DOF mice. At each time frame, the program needs to recompute the plane's position and viewing direction and redraw the image, so an efficient image rendering algorithm is very crucial to flight simulators. Usually, the objects in the model are specified in terms of world coordinates and so is flight's pose. However, to render an image viewed through the plane, all object coordinates need to be transferred into viewer's coordinate frame to perform the perspective projection. Since a lot of transformations are involved here, this is the next major task behind image rendering.
To increase the reality of the flight simulator, texture mapping and light modeling could also be included.
Data Structures - To support the high speed generation of the scenes, a large amount of data must be manipulated, and it must be manipulated in an efficient manner. An understanding of data structures and efficiency is a must.
Mathematics - Trigonometry is necessary as background to understanding basic graphics. Linear algebra, affine geometry and projective geometry are all necessary when we recompute the plane's pose and transfer the objects' coordinates between different coordinate frames. Beyond that, advanced topics are being researched such as the use of fractals for scene generation.
Algorithms - These topics are all inter-related since they are all being used for the same application, a flight simulator. This is a case in point. Algorithm development and analysis skills are used to keep the graphics efficient and must be used in conjunction with the efficient data structures. New algorithms will constantly be developed in data compression and scene generation.
Software Engineering - New flight simulators are sophisticated software systems. The software can get large, requires many programmers, and must be engineered properly.
Data Bases - If the flight simulator builds the scene's geometry based on real life geography, a huge database can be necessary to contain all the information. The storage and retrieval of this data must be done in an efficient manner.