informa
/
2 min read
News

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...
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).

Latest Jobs

Treyarch

Playa Vista, California
6.20.22
Audio Engineer

Digital Extremes

London, Ontario, Canada
6.20.22
Communications Director

High Moon Studios

Carlsbad, California
6.20.22
Senior Producer

Build a Rocket Boy Games

Edinburgh, Scotland
6.20.22
Lead UI Programmer
More Jobs   

CONNECT WITH US

Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter

@gamedevdotcom

Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Register
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more