First of all... If you read this, you may think, hmm some interesting ideas. I hate to be a p1mp, but having a techfile, and filling it with such (possibly useless) information actually generates interest, some of which you may find very nice. I have had a few games job offers (please remember I am an Australian, US jobs are out of the question, unless they are small advisory ones), I have had a "off the record" discussion with a IT journalist from an Major Paper in Australia, although I think that was more of a Crystal Space thing. But I do say, keep it coming ;-) Comments always welcome at email@example.com. THIS MEANS YOU!
Second, I have created a new 3d theory mail list, pro_3d_theory. This is not a newbie, comp.graphics.algorithms style list, this is for people who know what they are talking about. It is about getting a tighter net community of 3d coders. And, if you are a newbie, you will see the much dispised "trickle down" effect. Eg Things discussed on the list come to you, filtered, optimised, purged and laundry fresh (I love the smell of Napisan in the morning ;).
What this list IS for is for people with good 3d theory knowledge to have a supportive environment in which they can announce ideas/algos and get comments, analysis and be told the pros and cons of the idea. Also commentary, help with new personally developed algorithms and such.
We already have some very talented people on the list (Some of them People who have techfiles here) and we already have the odd new idea floating around, and it isn't even a week old ;)
The list subscribe address is firstname.lastname@example.org. The send address is email@example.com. Guess the unsubscribe address (no, no, not firstname.lastname@example.org)... email@example.com .
Got that? Good. You never know who is watching these things. Maybe we'll end up with John Carmack on the list, (although if he is reading these pages, why hasn't he written and slammed me as a CrackPot yet?) or something equally as much that would make you take the list as high farce. Speaking of which, I approve the subscriptions personally, so I know who is joining. Don't think I am stealing your soul, more that I am gaining the right to send you crappy mails selling photographic mouse pads.
Anyway, enough of the Tom-foolery. On to the Tom-TechfilesStuffery...
I got the night alone tonight and I plan to get the compiler for the potential set, octree and mini-bsps up to a high and mighty level of near working. I plan to add some visualisation of the compilation process in. Although, I probably wont for the potential set calculation. Far to slow. Martin seems to think the system will take forever to calculate. The way I am calculating it, it should hopefully be at most 1000 cycles per test. At the number of tests that will happen, this should mean less than a minute on a 400mhz machine for MASSIVE sized 200000 polygon world, would take around half an hour, without optimisations. I am hoping to push the level down a whole lot. Especially considering the new systems I have worked out, and the special easy optimisations you can do ;-) I may even get to hand tuned assembler level if I think it is still too slow.
Notice, that having a rather fast secondary culler, we can use non-potential levels, and make the worlds very dynamic, without the need for visibility compilation. Infact, at this speed, the levels could be loaded in RAW form and simply compiled at load time. Around a 20 second wait at maximum. But, the potential set should push the triangle rate up by a reasonable amount, making more detailed worlds with many static components, such as Q3:A style maps much larger.
My potential set does have a limit, just like the quake(x) ones, but my limit should be a lot higher. Quake 3's one is still only 30000 polygon worlds (at potential level, more in the game of course). The interesting thing is though, that my set will work for much more generic scenes, should compile faster and most probably alot more accurate in some favourable circumstances. Although, notice the secondary culler will take up the slack, and pump out a honed set.
In moving to the c-buffer/octree node + large occluders beamtree test sets though, there is one thing I am worried about. In a plain beam test with hierachy culling, down to the polygon level, I could get the perfect set, although slower without doing any rotation or perspective transforms, let alone a full polygon setup.
I mean, in an engine with a software renderer this is a big plus, and virtually free. In an engine aimed at hardware, such as CI will probably end up being (software is less appealing... SGI's win Dll may offer a last hope) we can say much of this will be wasted. Triangle setup happens at hardware level on any card less than 2 years old. New cards will introduce transform and rotation acceleration. As it is, most OGL ICDs are 3dNow, and soon Pentium 3 optimised, and probably faster than the stuff I could write, with out spending much of the time optimising these things, and neglecting things like lighting.
This is the main reason I am keeping the large occluders beamtree. The tests are fast, and it saves rotation, perspective projection, polygon setup and c-buffer setup. This is a lot considering the polygon will not be rendered. That a reasonable percentage of the invisible polygons will be saved from this process feels good.
Lighting is another thing I have been scrutinizing. The system I have previously mentioned, I am defining, and it should be possible to see some realtime dynamic soft shadows. And not just crappy dark blobs on the ground. Multiple shadows, corresponding correctly to the lights, harder when closer to the shadowed surface, softer further away. Harder when the light is close to the surface, soft when the light is further away. A slight shadow mask using an alpha blended extra pass, when the surface is close to the camera is something I have considered, but dropped. The LOD should be enough.
Conor Stokes (aKa DirtyPunk)
"He sits and stares and looks up At the crack lines on the cieling Nothing moves, not even him
He thinks of friends and wonders why They seem to have such better lives And He feels so left behind." - Snfu, "The Great Mind Eraser" from "Something Green and Leafy This Way Comes".