Then, as we began to work on a Graphics System in my Engine class, I began to understand how a Graphics system should be structured. Little by little, I began to tweak my system. It was lucky that I could work on my projects in parallel for both Engine and my Independent Study, because it allowed me to really focus on the system and understand the details better. At this point, I was rushing to get more and more implemented in an increasingly shorter amount of time. I didn't think that videos and blogging were a priority in the precious time I had left.
Looking back on it now, I realize that taking 15 minutes out of my day wouldn't have harmed anything, but probably only helped to straighten out my thoughts and chronicle my difficulties. I suppose that now, I am coming to terms with the fact that progress isn't only about success. If it were, then it wouldn't be progress because there would be no journey up as everything would come on the first shot. Instead, progress is at its best when challenges are overcome. That is why I am going to focus on chronicling my process now, to see how much I have achieved and grown by the time Spring quarter ends.
By the end of the Winter quarter, I was still behind in terms of my original milestones for the Indie Study, but my system was coming along-- it just took me a little longer than I expected to get there. Then again, that is the story of my life- underestimating how much time things will take. From now on, I am going to make a significant effort to work on things more consistently and thoroughly throughout, rather than at medium speed with high interval bursts.
So right now, it is Spring Break, and my goal is to have sphere to sphere and cube to cube collisions implemented by the time it is over (3/28). This leaves me with a little less than 5 days. I know that I can do this. Although I really got stuck this week and was at my wit's end, after speaking to Keenan, I realized that he was right. I do need to calm down and recognize that I already learned this stuff, and though I may not have applied all of it before, I am prepared to do so.
After reading a ton of material on bounding volumes over the past several days, I finally got my bounding spheres to work last night. I used an older function that I had written in Physics class for creating a bounding sphere, and integrated this into my current code. Following this, I implemented frustum culling. At first, I was really confused about how to do this, but then Keenan reminded me about the camera lecture that we had where he had discussed point distance to plane determination, and this was really helpful. A lot of things came back to me when I watched this lecture. I realized that I already know and understand a lot of this, but I can't always pull it out of my head since there is so much. That is another skill that I need to improve upon: knowing when to apply what knowledge.
I also implemented the drawing of glut wire spheres with the parameters of the forms' bounding spheres so that I can actually see the bounding volumes in debug mode. This is really helpful for determining what is happening, and is necessary for my collision tests. For the collisions, I plan to have the wire volumes to be green when they are not colliding, and turn blue when they are to indicate the collision. This also really cheered me up because I got to see my progress, literally. So far, I have the bounding spheres implemented for my cubes and pyramids.
Goals for Today/Tonight:
- Re-read orange collision book chapter 5 to refresh intersection tests
- Create progress video to show wire bounding spheres and discuss frustum culling
- Post video on the Wiki
- Give the sphere to sphere collision implementation a go
No comments:
Post a Comment