Andre Krause
2007-09-07 09:16:37 UTC
hello,
i recently re-discovered the game ecstatica from andrew spencer productions:
http://www.gamespot.com/pc/action/ecstatica2/images.html
my question is - how did he draw those ellipsoids that fast ? (ecstatica
1 was from 1994 and was quite impressive as compared with those low-poly
non-textured models in for example alone in the dark)
i can somehow imagine how to render fast, axis-aligned ellipsoids
including some z-buffer,
but i cant imagine how those ellipsoids could be rendered with a free
long axis. wouldn't this require a full matrix multiplication per pixel?
even with lookup tables for sin/cos i can imagine it would have been too
slow on 1994 hardware.
another question: how is collision detection done int alone-in-the-dark
style games with pre-rendered 3d-backgrounds? ok, visibilty check is
easy - just store a z-buffer. but how is collision with the pre-rendered
background done? did they store some kind 3d-z-buffer ? maybe with
voxels twice or 4 times the size of the pixel resolution? or did they
just define a bunch of bounding boxes?
third question/idea: would it be cool to make some pixelshader on modern
graphics card, implementing those ellipsoids and making a modern variant
of ecstatica? this would give some nice organic look. and with todays
hardware, one could maybe literally spit out millions of those ellipsoids..
i recently re-discovered the game ecstatica from andrew spencer productions:
http://www.gamespot.com/pc/action/ecstatica2/images.html
my question is - how did he draw those ellipsoids that fast ? (ecstatica
1 was from 1994 and was quite impressive as compared with those low-poly
non-textured models in for example alone in the dark)
i can somehow imagine how to render fast, axis-aligned ellipsoids
including some z-buffer,
but i cant imagine how those ellipsoids could be rendered with a free
long axis. wouldn't this require a full matrix multiplication per pixel?
even with lookup tables for sin/cos i can imagine it would have been too
slow on 1994 hardware.
another question: how is collision detection done int alone-in-the-dark
style games with pre-rendered 3d-backgrounds? ok, visibilty check is
easy - just store a z-buffer. but how is collision with the pre-rendered
background done? did they store some kind 3d-z-buffer ? maybe with
voxels twice or 4 times the size of the pixel resolution? or did they
just define a bunch of bounding boxes?
third question/idea: would it be cool to make some pixelshader on modern
graphics card, implementing those ellipsoids and making a modern variant
of ecstatica? this would give some nice organic look. and with todays
hardware, one could maybe literally spit out millions of those ellipsoids..