Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a name for this technique where when instead of rendering certain polygons, you just calculate a few key points and do the drawings in 2d? For instance, instead of rendering a sphere, you just calculate its central vector and draw a 2d circle? And what are the situations one can benefit from it?

share|improve this question
Note that I'm not talking about sprites. For instance, to draw a 3d cone one could get 3 points from space and draw 2 lines and a curve in 2d. – WindScar Oct 31 '11 at 7:35
This seems to be two different things in one question: 1) calculating shapes procedurally instead of basing them off points and polygons, this can be done in 3D of course. 2) representing 3D shape outlines as 2D shapes - like an edge detector for cel-shading perhaps? – Oskar Duveborn Oct 31 '11 at 10:24
Perhaps you have an example image? – Byte56 Oct 31 '11 at 15:43
I think you might have made your question more complex than necessary by describing not only a what, but also a how, where your description of the how is based on false assumptions. +1 to @Byte56 's request for an image. – Paul-Jan Dec 18 '12 at 15:33

For instance, instead of rendering a sphere, you just calculate its central vector and draw a 2d circle?

But that would just be drawing a circle. A sphere is not a circle. A sphere is never a circle. Lighting affects how the interior of a sphere is rendered. Even if you're just talking about the 2D silhouette of a sphere, that's not guaranteed to be a circle either, due to perspective projection effects.

I think what you're talking about are math-based impostors (as opposed to impostors based on other things, like images in a texture).

Impostors are generally a performance optimization. The reason to use a sphere impostor over a sphere mesh is if rendering the sphere mesh will take longer. The same goes for most impostors; they replace more complicated graphical effects.

share|improve this answer

I guess the closest thing to what you want is "outline rendering" which is another form of cel-shading. But that's not exactly what you describe, as it doesn't simplify calculations by just drawing some primitives (or 2d approximations).

The problem with your approach is that you'll only be able to render some primitive shapes. Sphere is going to be easy, but for every other shape you'll have to implement some other drawing technique to make that "simplification" possible. The renderer would also have to know about the type of primitive it's going to render. Cone is probably going to be quite hard... just imagine all positions a cone can take in 3d space and now imagine to simplify that with 2 lines and one curve.. isn't going to work, as the cone can be rendered as a circle too (when looked from top or bottom).

Do you need this to create vector-graphics from a 3D scene? Or is it related to your other questions (browser based games?).

If it's the first, I'd look into cell-shading and use a raster to vector converter like potrace. If it's for a web based game, I'd encourage you to use WebGL rendering instead or make a pure 2d game. If you really need the 3D, then WebGL is going to be much better as the perception of the 3D scene will be much better as with the approach you're having in mind.

share|improve this answer

I think you want Imposters technique. There is an article on GPU gems 3 that describe true imposters.

In this chapter we present the true impostors method, an efficient technique for adding a large number of simple models to any scene without rendering a large number of polygons. The technique utilizes modern shading hardware to perform ray casting into texture-defined volumes. With this method, multiple depth layers representing non-height-field surface data are associated with quads.

Read the article online

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.