Re: Any 3d engines in Euphoria?
- Posted by Roderick Jackson <rjackson at CSIWEB.COM> Mar 30, 1999
- 508 views
Hi Gwen, You're in luck! I just finished making last-minute changes to my 3D routines. They work rather well, although the polygons for any poly-object you define are only drawn according to a z-depth sort. I've made it somewhat more accurate by also sorting on x and y, but that means its also slower. I'm now working on a rendering routine that uses a z-buffer to always draw an accurate image. It will most likely be much slower than the depth sort, but I can optimize it, and pixel-by-pixel drawing is necessary for textures (which I plan on adding), so I'm starting on it. A word of warning: I am better at thinking of vertices and polygons as independent entities, so my 3D routines make use of my Quartz library. I know that this makes them slower than they need to be, but it makes it all easier for me to understand, and hopefully easier for others to follow. Once I have the rendering routine finished, I should replace the object-oriented wrappings with less bulky code to speed things up. But I might wait until after I've added support for textures or shading. Right now translations and rotations are supported, as well as scaling (although I haven't tested the scaling yet; I've only thrown in the code.) It requires the graphics.e include file, but it does run fine under 2.0. The attached zip file contains the following: - the Quartz 1.2 include file - the qvertex.e class file - the qpolygon.e class file (all polygons must be triangles) - the qpolyobj.e class file - the qfloor.e class file - a modified sort (mod_sort.e) include file - the polygons.ex source file, which demonstrates the routines The code is not very pretty, but I have at least been keeping it neat. Each class's methods can be found in the class file. Details for parameters for each method, and for the class constructors, should be in the code above the method. If you need any help understanding anything, let me know. Oh, and a final thought... right now, I'm going to try to keep things in at least 99% pure Euphoria, (the 1% being not using the built-in pixel-plotting routines). I understand that this slows things down quite a bit, but after I have everything running well I'll start optimizing it all for the DOS platform (working more with memory, etc.) I'll try to stay away from machine code as much as possible (mostly because I don't know assembler), and I don't intend to use DLL's. I would like to achieve at least 1 FPS (with maybe 100 polygons onscreen) after completing preliminary optimizations, but I do not yet know if that's even possible. Have fun, Rod Jackson =20 ---------- From: Gwena=EBl Joret[SMTP:mb11363 at TVD.BE] Sent: Tuesday, March 30, 1999 3:54 PM To: EUPHORIA at LISTSERV.MUOHIO.EDU Subject: Re: Any 3d engines in Euphoria? Hi everyone ! Rod wrote : >I understand your sudden 3D interest. Nitrogen's screenshot prompted me = to >start looking into the matter, and I've already learned quite a bit. >I had started working on some 3D routines that work fairly well, = although >they hardly qualify as an engine just yet. I recently downloaded = Nitro's >engine, hoping to somehow integrate it with mine... his had textures, >flooring, and fog already done, my routines just focused on actually >drawing flat, simple polygonal objects. Quite a mutual benefit. .. >Rod Jackson >BTW - If you would like to look at my polygonal routines, let me know. I'm trying to make a (very) little 3D engine in EU, And I'll be = interested to see your polygonal routines! Thanx in advance ! Gwen