1999-12-30 19:36:15 UTC
I finally finished map2cs to make it able to completely convert Quake 3 map
files. This also includes Curved Surfaces. Despite of what I feared, they
look pretty well in Crystal Space. I emulate (?) the Quake 3 behaviour by
splitting of Quake 3 curves into smaller Bezier patches. I was afraid, that
there would be sharp edges, where the single Beziers meet, but you won't
notice anything like that.
So much for the good news.
I did some tests with the converted Q3dm1sample.map. (One of the maps, that
was already in the demo, and that contains the famous mouth and tongue) This
map will show, that there is still some way to go, untill we can compete
with Quake3, even if we limit comparison only to rendering and don't talk
about support for games.
My major problems were:
- Runtime speed. I get about 5fps in bad places of the map (Without curved
surfaces and with C-buffer/ Coverage tree). The original Q3 runs never
slower than 20fps in the same place on the same hardware. (Both are using
OpenGL rendering btw.)
- Startup speed. Crystal Space takes ages to calculate lighting in that map
(Shining lights...). For tests, I would like to have an option to use some
sort of sloppy and fast lighting. (No shadows for example)
- Even when the lightmaps are stored in the map, startup still takes very
long (also in Shining lights...).
- Quality of the resulting lighting is really bad, compared to Quake 3. (no
- Curved surfaces don't have proper lighting. They show completely different
shadows and lights than the regular walls near them. They still look good
enough for themselfes, but when they are attached to a wall, you will see,
where the Curved surface starts, and where it ends. Maybe we should use
lightmaps for Curves Surfaces too.
- I can't use advanced visibility like c-buffer or coverage tree, because
they all require statbsp, and you can't use curved surfaces in these
sectors. (They just don't show.)
- CS still wastes fillrate, because it will paint all sector walls with
z-buffer and texture. There is still no option in the map format, to draw a
polygon only in the z-buffer, without changing screen pixels. (Quake 3 has a
special texture for this called "common/chalk")
Anyway, I will add the source changed to map2cs to CVS soon. I will also try
to make some screenshots, so Jorrit can put them on the homepage.