In addition to being faster, this optimization uses less texture memory and requires a good deal less setup for generation that the current approach. It did require modifying every generation shader, but the changes were pretty minor.
I have been reading "Performing Efficient NURBS Modeling Operations on the GPU" repeatedly in order to get prepared for surface-surface intersection. One of the neat parts of their approach is that their GPU-based generation routines don't have to generate the entire curve or surface but can generate just a sub-region. They use this ability to iterate through repeatedly (almost Newtonian like) to get within a certain accuracy. Well, the optimization I put in place lays the groundwork for Wildcat being able to do the same sub-region generation too. Just need to make a few more tweaks and API changes and we should be all done.
In addition I move to using PBOs to copy curve and surface generation data for server-side generation. This should be a nice improvement. I had avoided doing this before because I was running into some driver bugs that would hang the system when I tried to call glReadPixels.
Wow...lots done in the last two days, but little to do with STL. Getting good STL output really is a priority, I promise. Hopefully next week.
Cheers,
Graham
No comments:
Post a Comment