A practical implementation of a 3D game engine
Creating a 3D game engine is not a trivial task as gamers often demand for high quality output with top notch performance in games. In this paper, we show how various real-time rendering algorithms can be applied to implement a practical 3D game engine. We explore the general architecture of a 3D engine and discuss the role of a scene graph in a 3D engine. We look at scene graph from the software engineering perspective. In particular, we show the way to design a scene graph that is object-oriented and portable across different rendering engine. Then, we explain the algorithms that we apply to speed up the performance of our 3D engine. We optimize the 3D engine on the scene graph and object geometry levels. The algorithms that we propose are expected to perform reasonably well for both static and dynamic scenes. Finally, we give a brief preview on the possibility of parallel processing in scene graph to create a 3D engine with multiprocessing capability.