15 November, 2012

Marching Cubes

As part of my algorithms class I need to present an algorithm that I have looked into and analyzed.  For this assignment I chose the marching cube algorithm.  It's a nice straightforward algorithm that was designed to display 3d volumetric information and it was originally presented in 1987.  Anyway I am learning quite a bit about voxels through this, and apparently this algorithm or something very similar is commonly used in place of height maps for creating the base landscape in many games.  The reason why is that it make negative spaces like caves and overhangs possible.

So a quick explanation is that you take a large set of cubes put into a 3d array like 512x512x512.  Then going through each of the smaller cubes you determine whether one of the 8 corners is either inside or outside of your volume.  The program then repeat this for all of the remaining cubes keeping track of which ones are inside and which ones are outside and drawing triangles based on the intersections.  In the end you have a rough 3d representation of the volume being measured.

Now I need to go and write a 20 page paper on this, and I find myself wondering what fillers to use to stretch this out.  Wish me luck.

10 November, 2012

What I'm learning about programming

Ok I know I haven't posted for a while, but that is mainly because I haven't done a whole lot as far as this game is concerned.  School again is sucking up lots of time.  I am having what I think is an important understanding of something though.

Programming ,indeed all of computer science, is all about tackling problems and learning to teach oneself in order to tackle ever increasingly difficult problems.

I think that is why when I look at jobs in the world of gaming they always have the requirement of having shipped at least one title.  That is because an appropriate candidate will have proven that faced with problems they did not give up and run away, rather they figured out a way to make it work.  In my college experience I have railed at how it seems that I must teach myself, yet I think that is the actual goal of studying computer science and programming, to develop in students the ability to self teach and problem solve without the assistance of someone else.  Higher order thinking skills are really hard to pick up though, which is why when someone is able to show that yes they did have problems that were hard and yes they did solve them even when it wasn't fun that is says something about that person.

Which is why I need to kick myself in the rear and get to work overcoming some of these obstacles I keep running into.  I also need to remember that I can learn it little by little, step by step.  So now back to getting my homework done.