||[Sep. 10th, 2008|03:44 am]
Spectre Gruedorf Challenge Blog
As part of the recent work on the Tactical Thing, I've had to implement a mesh splitter. By which, I mean that you pass a mesh in, and another mesh comes out the other side. Dandy. I started with John Ratcliff's implementation, but discovered that it didn't handle texture coordinates. Sent John an e-mail, and got a confused reply about where I could download the current version which didn't have texture coordinates. Oh well, I guess that one's abandoned.|
So with that in mind, I set out to write my own mesh splitting tool. You feed it planes, it produces cut up output. I started with the same idea as the paper that John had, because I had it independently before I read the paper - identify 'rings', fill them in. (Sean: I noticed your post on the site about the edge case where you have two rings coaligned at a single vertex. So it'll be interesting to see how I handle that - maybe there's something I'm not reading in the paper? I suppose the cheater's way is to look for such vertices and then add an extra dummy vertex to handle it.) Anyhow, I wrote the first 90% of it, and Spectre now has a mesh splitting tool that doesn't produce end caps but does handle the texture mapping stuff (this was easy), the ring identifier (reasonably easy), and an ear triangulator. Now to glue all this crap together.
Oh, and all our Spectre windows now have viewports that support the same camera model as the rest of the engine. And, oddly, I wrote a dual paraboloid shadow mapper that doesn't quite work yet. Le sigh. Shadows? Mengh.
Does anybody in Gruedorfia actually want to try this thing? If so, I need to do official builds for egometry at some point in the near future, so anybody who wants in should e-mail me at mordred at gas lamp games dot com and I'll let you know where le drop site will be.
screenshots later, I'm tired...