Proposal: Automatic creation and management of Imposters
Posted: Mon Mar 26, 2007 2:34 pm
I know I'm quite late with this, but I didn't have much time the past week. I will submit this proposal this evening, but hope to get some comments first so I can clarify and improve things before.
The aim of this project is to create a system which can automatically create and manage imposters.
This system can be used by a developer to speed up the rendering of large scenes without having to deal with the underlying technology himself. He would tell this system which objects should be managed, and set parameters influencing the performance and visual quality, and the system would handle the creation and updating of imposters, as transparently for the developer as possible.
The general structure of the system will allow different implementations to be developed and tested which provide the same API. This will be useful in development, when different strategies are tried out, but can also be used to provide different implementations for e.g. older hardware.
I will start by reading as much about Imposters as I can find, and looking into existing efforts. At least one full-featured impostering method will be delivered. As a base for this I will probably use the existing work by tuan kuranes, and the methods described in this Article at Gamasutra, which is often referenced as a good starting point:
http://www.gamasutra.com/features/20060 ... s_01.shtml
I'm a 21 year old computer science student in my third semester, with maths as minor subject. I've been interested in graphics programming for a long time now (e.g. I already wrote a procedural terrain generator in QBasic more than five years ago), and have a solid grasp of vector maths. Also, I like solving difficult problems, which is why I participated in several major math contests, one time reaching the final round of the German championship. I never worked with Ogre before, though I'm already working through the tutorials; if this proposal is not accepted it will still be very useful for future projects, since I'd love to start developing games. You can find my curriculum vitae and leaving certificate of grammar school at (only in final proposal).
1. Learn as much about Ogre as possible,
find and read articles about Imposters,
find and learn from existing work,
determine what is required in order to make imposters work under different conditions, e.g. multiple cameras, changing lighting conditions etc.
determine how to best integrate the system with Ogre, e.g. as a plugin
(until May 28 )
2. Create an API and a structural design for the system, which will allow different approaches to impostering to be implemented and tested.
3. Create a simple demo-impostering implementation as a starting point to test the basic structure.
4. Write a demo application which will strongly benefit from impostering, e.g. a landscape with many faraway objects (trees, buildings).
(until June 17)
5. Experiment with different approaches, implement at least one full-featured imposter approach, but preferrably also an alternative strategy.
(until August 1)
6. Fix bugs, clean up the code, finish documentation.
(until August 20)
At all times, discuss the current plans and progress with the community and provide regular reports.
Documentation and source code for
- The automatic Imposter system API/helper code
- At least one full-featured implementation of an impostering method
- A demo application using the system
All code will be made available under the GNU LGPL license.