As I previously said, and as mentioned in the current Sam Revival, I'm
experimenting with 3d on the Sam. At the minute I'm just playing with
vector graphics, since they move reasonably quickly, making it easy to
observe problems with the algorithms.
I'm not doing too terribly (see http://www.youtube.com/watch?v=hcMiB1ZkukM
for my attempt at a Cobra Mk 3 versus the Spectrum original), but
I'm intimidated by the revelation by Marc Broster on this list 12
years ago that "with my dead wild cat demo I had about 70-80 points
being calculated in 3D with lines being plotted in 25fps."
70 points at 25 fps would be just over 3,428 cycles/point, even if
line drawing were completely free and memory was uncontended. Even my
divide routine costs something like 2,000 cycles. Part of it seems to
be that the perspective in Dead Wild Cat isn't correct — when objects
transition in and out they are obviously zooming rather than actually
moving (because the relative perspective of points doesn't change
correctly; though it's mostly hidden by the fact that many of the
objects have a flat front), and moving them around manually shows some
very odd effects. But even eliminating the divide in favour of some
weird limited range (i.e. unsuitable for a real game) table approach
doesn't account for everything. I would imagine that even when I've
pulled out all the stops, I'd still be spending at least 7,000 to
8,000 (pencil calculated, uncontended and hence unrealistic) cycles to
process each individual point all the way from world space to a
location on screen.
So, is Marc on the list? If not, has anyone done any significant
disassembly on the demo? I've been told before that most of RAM is
given over to pre-calculated line drawing routines. I'm only spending
something like 15% of my time on drawing so it isn't the major
concern. Is there anything else that can be learnt from it that isn't
essentially limited to doing small objects with local perspective?
- In pursuit of Dead Wild Cat Thomas Harte
-