Okay, first thing I should mention (I got mail over this folks, thanks to those who care enough:) is that when I talked about using FPS, I did not literally mean graphics FPS, I meant a pre-scheduled fps (say 100FPS), so when I say frames, I mean a regular frame update per second, not the actual grafix rate. Anyway, I decided today that the CI code needed more cleaning up. I had to re-write only one procedure. But, I did overhaul the code pretty majorly. I disbanded the transforms DLL, and moved it all to the 3d driver. This is because I had the problem that the occlusion system I was using before resided in the transforms dll (it was world space) and so did all the octree traversal and so on and so on. So, I made the decision, based on the fact I am using a c-buffer now instead of just a beamtree, that I would have to move that mechanism to the ogl 3d driver. Then I realised, that because I wanted to do hierachy based c-buffer octree node culling, I would also have to move the octree traversal to the 3d driver. Of course, I also needed to move the mini-bsp, and the full frustum, and so on. Sigh, I did this on paper, sketching object diagrams. So, when I sat down to code, I just decided to move it, and salvage all the code. It went sweet (cool OOP design is just so nice for this). I moved about a thousand lines of stuff over, and did some procedure hacking, and so on, and I got it to compile, and only small warnings reported, that I should turn off anyway ("Can't Pre-Cache Header", and "Restarting compile in ASM". IMHO the later is really redundant. I mean duh I coded some ASM, why wouldn't it do that.). Sigh. Now to finish the renderer. I also managed to trim the trees a bit, and optimise some code. I finished off a newer version of the octree recursion system, that is now ready to attach to the c-buffer. Started on the idea of loading based on recursion. The idea of loading based on recursing through the octree is cool. You save a reference point in the file. Then, after compilation you simply recurse based on this point (make it outside the octree root node) and each recursion, you save. To load the file, you load the root node, and then recursively load. So, you simply load in the order you saved. This means you don't have to deal with nasty indexing and such, and you can effectively save the tree. Okay, so this is probably not a new idea by any means, but I think it is useful. I was planning to compile the levels to C code (structures), and then have lcc (free compiler), compile them to Win32 DLLs. This simple idea can be very expansive. Using DLLs can allow level designers to talk to the programmers, and implement custom movement and such, through DLL hooks. Using the structures is reasonable, but you would still need to index. Although indexing becomes easy. You could still wipe out the extra pointer storage by simply using the recursion method though. Oh, and I should have screenshots for CI next week, so you guys can quit biting your nails. I got over a driver problem on my development machine, and now all is well. On that note, thanks and gratitude go to DCee (Danial Eineder) for contributing to me a logo for the CI engine. I give it two thumbs up. Conor Stokes "Its Manure, plants love this stuff, and so do I, I would eat it if I could." The annoying pratt on Gardening Australia.
|