We've got about 10ish ships/turrets/etc that have not yet been integrated into the prep project by Cinth or myself, but those will be something he starts tackling on next Wednesday. For some of the ones that are already done, like I think missile turrets, that's more of a Keith thing -- the model is there, but I'm not sure if the code isn't ready for it or what the deal is.
In other news, this sprite stuff has continued to be a real pain. However, there are three separate approaches I could take. One of them, which is by far the most efficient in all regards, includes some pretty funky math that is throwing me for a loop. For a long while it was a laundry list of other issues on that path, but now it's just down to some math (but really complex transformations between multiple types of camera, etc).
The second approach is more brute-forcey on the CPU, but actually something that the previous gimbals were already doing without killing the machine, so it's not something that would be a tragedy. Actually now that I think of it, I may have been shooting myself in the foot more than a little bit here by trying to be too clever for my own good on that front, so to speak. :/
The third approach kills batching, but not setpass calls, and I'm not sure exactly what the load difference would be between this and approach #2. This one involves complex vertex shaders on the GPU side that do billboarding. I've gotten that working, but can't figure out a way around the batching issues since that's kind of opaque. It's possible that I could combine this with approach #1 and get something that would work... but I might as well just finish approach #1 if I were to do that.
Approach #2 could have some other advantages in terms of things like keeping with a simpler method for doing raycasting/hovering over ships, etc. Though definitely less efficient... unless culling gets taken into account, I guess. Sigh.
Approaches 1 and 3 also allow me to dodge the bloom and whatnot... although come to think of it I could do that with approach #2 as well.
Humbug! I probably will go with approach #2 for now, and just save my work from #1 and #3. If we're later having a huge CPU drain or something from this, then I can take another swing at #1. But #2 should be better on the GPU than #3, I think, and that's probably the most important thing to me out of this. It's also a lot less error-prone on my end regarding setup, so that's also good.
Wow what a waste of time in some respects. I could have shaved 1.5 days off of this if I didn't swing for the fences and go for approach #1 and then now #3. I'm going to go get some lunch and then start plugging away at #2. I didn't actually come to that decision until sitting here writing out this post, so that was a really helpful time actually.