Originally Posted by Mrs Beanbag
The off-screen buffer is not "larger" - why would it be larger? It's exactly as bis as the object you want to draw. And you don't need to clear it, you can draw the lines in one buffer and fill to a different destination. Then you only need to XOR over the lines again.
If you don't see how filling several polygons at one is quicker than filling them all separately and then separately copying them into the destination then i don't know what to say.
Also you can draw the first object to be drawn directly onto the screen...
Ah, that final statement suggests to me that I maybe I haven't been clear enough.
What I'm talking about is first drawing one filled single bitplane polygon of a larger object in a buffer. Then by using that single bitplane polygon, write zeros or ones as appropriate directly onto the bitplanes of next frame to be displayed (as in a double buffered scheme) by setting the correct LF for each plane to set the color.
There's no extra destination or separate area where an object is built and then blitted into the scene. Each polygon of the object is written directly onto the next image that will be displayed. After all the polygons of all the objects have been drawn, a simple change of bitplane pointers is enough to display the new frame.
If the polygons are simply drawn back to front, then there's no need for hidden surface removal and there's no need to restrict one's self to convex polyhedra or to objects that have no holes.
Now maybe I misunderstand you, but as far as I can tell, you advocate for drawing the boundaries of several polygons of an object, taking care not to draw the lines of hidden facets, filling them all at once to draw a complete object, then blitting that whole object into the next frame to be displayed along with other objects.
Is that the case?
I'm curious, then, how do you quickly determine which facets are hidden on a non-regular polyhedron? The method I'm familiar with involves computing surface normal vectors.