Sunday, January 27, 2013
Summary
A very happy start to what I hope will be a great week. Yesterday I mentioned ripping out a lot of the rendering core, and today, thankfully, I have fixed it all. Everything in the engine now seamlessly supports these wonderful new scalar field models! I've also implemented a simple level-of-detail system for them, since these kinds of models lend themselves perfectly to really nice LOD schemes. I'm happy to say that everything is working beautifully! I've replaced nearly all of the models in the game with this system, and they're all scaling very nicely.
There's still a lot left to do. I mentioned GPU scheduling yesterday, but I didn't get around to it today. It's one of my high-priority items, so hopefully I'll knock it out today. I also need to do some intense profiling and try running this on my less powerful systems, because I must admit...as excited as I am about this technology, I do have some concerns about the vertex density of the models that it produces. I won't lie, it's very heavy on the poly count. The good news is that it can be scaled down to any level you like (which makes it more scalable than virtually any other kind of modeling technology). So you can definitely run it at some quality on virtually any machine. The bad news is that high-quality models require a fairly high triangle count. I'm hoping to combat this issue with aggressive LOD schemes, perhaps even mesh segmentation and fine-grain culling, to prevent rendering of pieces of the model that aren't in view (this will be especially effective for large ships).
Despite the high poly count on these new models, I have been impressed with how well my collision algorithm is handling them. Nonetheless, I may end up not needing it now, as it would actually be almost trivially easy to perform collision detection on scalar field meshes on the GPU, so I have a feeling that I can probably cook up an even faster physics engine in a day or so.
I made yet another leap forward in ambient occlusion today, as I realized a much, much faster way to compute it. The new method yields about 8x - 10x performance gain, which means the engine can now compute beautiful AO with no perceptible sampling artifacts in less than half a second. Finally, I am happy with this performance In addition, I figured out how to solve some issues related to AO at low level-of-detail, so now my low-LOD models still have perfect AO, which makes the LOD transitions less perceptible.
A few more hours of playing around with the ship generator today brought some really exciting advances I am so happy, because I've been trying for ages to get the metal to look right...and I think I finally got it!!! I'm finally happy with the shaders on ships, and I feel that they're really quite nice! (I'll admit, turning up the occlusion helped.. ).
At the moment, I'm working on replacing all the remaining models, including turrets, thrusters, and (possibly) stations to use the new model system. Along the way, I'm having to develop a bit more math to create the fields for these objects, but it's all great fun.
I'm honestly really, really excited about all these recent developments. Last week, I was slightly worried, because everything was kind of in disarray as I was trying all of these new, transitional things...but I do think that I'm going to have most of it wrapped up and ready to show for the monthly dev video, which will really be wonderful, because I want to do justice to all the progress that LT has made in the past month!!!
Hour Tally
Coding: 5.42
Internet: 3.89
Testing: 3.21
Total Logged Time: 12.52
Post
Mon Jan 28, 2013 12:15 am
#1
Week of January 27, 2013
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford