Sponsored By

Feature: 'Dynamic 2D Imposters: A Simple, Efficient DirectX 9 Implementation'

Today's second main Gamasutra article discusses the concept of '2D imposters', which is becoming more and more popular in the world of computer games as game developers s...

Quang Hong, Blogger

January 5, 2006

2 Min Read

Today's second main Gamasutra article discusses the concept of '2D imposters', which is becoming more and more popular in the world of computer games as game developers strive for speedier rendering and better performance. As such, this article provides a simple and efficient system for dynamically generating and rendering 2D imposters. In this extract, Kuju Senior Software Engineer Ashley Davis describes some of the runtime efficiency concerns in using imposters, and how they can be addressed: "Aren't imposters meant to make rendering more efficient? The answer is yes, however if an imposter system is implemented naïvely you may find that it doesn't quite solve your efficiency problems. The naïve implementation is the simplistic approach of using one render texture for each imposter. This approach should only ever be used during prototyping (when solving visual issues) as it has a detrimental impact on performance. The naïve implementation requires a render target change for each imposter that is generated and requires a DirectX draw call for each imposter that is rendered. Changing render targets is an expensive operation. Executing a draw call for a small amount of geometry is also an expensive operation. To get the most out of imposters, multiple imposter textures need to be packed onto each render texture. The bigger the render texture and the smaller the imposter texture, the better, as we can fit more imposters in the same render texture. Packing texture in this way means that only one render target change is needed to generate multiple imposters and only a single draw call is required to render multiple imposters. Therefore, the more imposters that can be squeezed into a render texture, the more efficient the system becomes." You can now read the full Gamasutra feature on the subject, including plenty of sample code on implementing imposters (no registration required, please feel free to link to the article from external websites).

About the Author(s)

Quang Hong

Blogger

Quang Hong is the Features Editor of Gamasutra.com.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like