Sunday, December 5, 2010

conclusion

This shall be the last blog for cmpt376w, and it is also the conclusion for my blog.

In the first one, I wish I would write 3 blogs per week. However, the result is one blog for average except recently I wrote one blog per day to catch up.

Having a habit to write regularly is not easy. For my new resolution, I hope I could keep this blog, and post at least one blog per week. It is reasonable and I really do not want to give up.

Saturday, December 4, 2010

other disadvantages of ray tracing

Except the slow speed of ray tracing algorithm, other drawbacks are in some case it could not show the “realistic image”

one of it is the dull-looking (non-reflective) objects. Because they do not reflect, the reflected ray (the perfect reflection of eye to object) part is 0. And, in real world, its real color is contributed by lights directly(Phong Shading) and other part of environment (ray tracing does not computer this part).

Another example is that mirror. Ray tracing could see what is in mirror perfectly. However, if a light ray irradiates a mirror, the light ray should perfect reflection to some place. When ray tracing to treat this place, it will not count this part of lights.

In conclusion, ray tracing is still a simplified algorithm to simulate the “real world”. The drawbacks above could be handled by another algorithm for rendering - “radiosity”. However, radiosity usually is more expensive than ray tracing.

Friday, December 3, 2010

Exterminator – C/C++ exterminator

At yesterday's cmpt383 class, Ted talked about a (new?) tool for debugging: exterminator. It could correct (or degrade) some bugs automatically. When a program run on exterminator environment and trigger a bug, exterminator could detect and correct it.

First kind of bugs is “overflow”. when exterminator detect this kind of bug, it will allocated more space to array. Second kind of bugs is “released pointers”. Exterminator will cancel former release and , then, release the pointer after the use of “released” pointer.

It is kind of magic because this two type of bugs are most common and cause security issues. If we can avoid them by using exterminator technology, it will save much time for C/C++ programmers.

Thursday, December 2, 2010

How to choose class to take

It is time to enroll classes, and many friends are asking which classes are easy to get a high score? Maybe it is not a right way to choose class.

This semester, after I enrolled cmpt361 – computer graphics, one friend persuaded me to drop it because cmpt361 is very difficult: too many contents and labs cost too much time. When I was work on the labs, I had to say that my friend was right. However, after finishing my labs, I felt this course is interesting.

It is a kind of dilemma, we want to get high score, and we also want to learn more knowledge. On the other hand, if a course cost too much time, there will be less time left for other courses. I really do not know what to say if other people ask my opinion if cmpt361 is a good class to take.

Wednesday, December 1, 2010

More on ray tracing

When we play a PC game, we usually feel that the scenes are not real because now real-time picture system can not simulate nature environment very well. Ray tracing is a simply way to make picture “real”, but it need more calculations and now it can not generate real-time images on commodity computers.

However, there are some experiment system try to use ray tracing in real time system. Intel did a lot of works on it. Intel demonstrate “Quake Wars: Ray Traced” on a 16core cpu system with larrabee hardware, a separate video card system Intel planned. Intel also has a “Wolfenstein ray traced” project shows fantabulous real time image powered by 4 servers. (http://www.youtube.com/watch?v=XVZDH15TRro)

It looks we might play a PC game with ray tracing algorithms within 2 – 3 years. I hope.