Getting back on track

· by Steve · Read in about 3 min · (467 Words)

I’m starting to get slightly back to some sense of normality after a turbulent few weeks.

I did a little more work on Kadath, eliminating as much as possible dummy portals which are generated by intersecting or coplanar-but-inverted geometry, e.g. a box in a room which is butted up directly against the wall, and the degenerate tris have not been removed. This causes cells to be created both outside the room (to display the side of the box) and inside the box (to display the wall fragment that overlaps with the box side). Both these cells will never be seen, but the portal detection sees that there are adjacent cells and happily slaps a portal between them. This isn’t especially dangerous per se, since the cells are in fact ‘valid’ in that they contain geometry - but theoretically if those outside formed a chain it could cause significant visibility leakage through walls. So, I’ve detected the wall leakage cases and eliminated the portals to prevent this. At present I’m not sure if I need to do anything about the cases where geometry pokes completely through - it does cause cells to be constructed ‘outside’ the level but I’m not convincend that’s actually a problem given that the portals in between inside & outside have been eliminated. Present tests indicate that it forms a dead end in the CPG (cell portal graph) and thus not cause visibility leakage, but I’m concerned at what might happen if several cases of this occurred and the partitioning ended up linking them up. More testing required, but detecting the complete intersection case, and then deciding what to do about it, is a bit trickier, as is knowing when to eliminate the orphaned cells (which don’t do any harm if they’re not linked to any visible cell, but they take up memory). This is the downside of supporting a polygon soup as an input format - brush-based systems have an explicit definition of ‘inside’ and ‘outside’ which makes it simpler to resolve leakage cases like this. Careful modelling avoids it but I’d ideally like to ‘do the right thing’ in as many cases as possible so people don’t have to worry about it.

Also I got my XSI v5 license today, and access to download it from those nice people at Softimage, so once that’s done I’ll have to build me a v5 exporter. I’m glad I have 1Mb broadband now, it’s quite chunky.

Lastly, I was completely blown away yesterday by Lesta Studios announcing that they were close to finishing Pacific Storm, created using OGRE. Just look at the gallery and their latest video, it makes me rather proud to have had a hand in getting that off the ground (pun intended). I never even knew about this project until yesterday. Amazing.