From: Gregory Huczynski (greg@dcs.gla.ac.uk)
Date: Tue 17 Apr 2001 - 12:39:46 IDT
Hi, I want to write a software-rasterising 3d engine for learning purposes. Essentially I really just want to start with a put_pixel routine and then work up (lines,polygons,texturing,etc). I was considering building on top of svgalib, and have a number of questions to ask: Is svgalib fast enough for realtime 3d? I assume that it is, as there appear to be Doom and Quake ports that use it, but as I haven't seen them in action, I don't know what speed/quality they have. If so, what is the fastest way of drawing a pixel/frame? Should I somehow be accessing the framebuffer directly (how?), or would multiple calls to gl_setpixelrgb suffice? Could I get away with using the given routines in the gl library (gl_setpixelrgb,etc), or would I need to write my own custom routines for speed purposes? I thought that logically, the fastest way of writing a pixel (without resorting to assembler) would be if I could access the framebuffer in memory as one large linear array, use pointer arithmetic to set the particular pixel's rgb value (taking into account pixel bit size, etc), and then copy the buffer into video memory. However, I'm not sure if this is possible with svgalib, as VGA modes seem to have a very strange structure involving multiple pages that I'm confused about. Basically, I would like to have a fast basis on which to write a 3d engine. I'm more interested in writing the engine itself than getting bogged down in fine-tuning the utmost speed out of the video card, but on the other hand, I would like the actual pixel drawing to be fast. I would also like to write the entire engine in C (not assembler), and would like to use true/real colour, not 256 vga lookup, at a high-ish resolution. I would appreciate any help/suggestions/code-examples given (I feel that svgalib might be the library I've been looking for!) Thanks a lot Gregory Huczynski P.S. I have looked at the ThreeDKit example that comes with svgalib, but it's quite confusing, and it also appears to use assembler. ------------------------------------------------------------------ Unsubscribe: To: listbot@svgalib.org Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:23 IST