No such place as far away











{May 27, 2010}   D&D Test

I don’t play table RPG but I do love Dungeons & Dragons-based games, like Neverwinter Nights, and TV series like Record of Lodoss War (ok, that’s an old one!). A friend of mine linked me to an interesting (and too long) test in order to assess what would be my characteristics if I were a D&D character. This is the result:

True Neutral Human Druid/Sorcerer (2nd/2nd Level)

Ability Scores:
Strength- 13
Dexterity- 11
Constitution- 13
Intelligence- 15
Wisdom- 16
Charisma- 14

Completely changing subjects, I left my small apartment near Unicamp campus Sunday and am now back in my parent’s house. I had to, since it was rented and I have only 2 months left until my legendary journey to Edmonton (xD). Last week was one of the strangest ones in my life, as I went out with friends, enjoyed as much time as I could with my significant other, and walked down well-known paths realizing everything will be completely different from now on. I’m one of those people that believes one needs to live things in order to fully comprehend them, and for some reason the craziness of what I’m about to do had not dawned on me until the point I actually handed out the apartment in which so many wonderful memories were created. I had the urge to cry, of course. And cried indeed :-P

I don’t have friends with my approximate age here in São Paulo, since I was an antisocial of sorts in High School (although I had lots of people I maintained regular conversations with, for some reason I needed to put a huge personal space between me and others, and thus ended up not becoming particularly close to anyone. Obviously all friendships eventually faded when I moved to Campinas). As a consequence I feel somewhat lonely these days; I suppose I should get used to it, though, and just go on doing my own things.

And by “things”, I mean studying hard :-P For example I’m reading this MSc. thesis these days. It’s awesome and is really inspiring me to pursue a similar field of research for my MSc, that is, compiler design targeted at GPUs, with specific GPGPU purposes in mind. Compilers are fascinating for me, as are all graphics-related subjects like data visualization, rendering algorithms, etc. So it seems like the perfect combo.

EDIT: Speaking of RPG games, I just found Final Fantasy Tactics‘s soundtrack collection on Youtube. From all the games I’ve played (and I’ve played many games) this one certainly is on my top-5 of favorites, and its epic soundtrack has no rivals. It’s a game with simple graphics but complex gameplay, in which you have to actually think in order to win, since enemies always have experience levels matching the main character’s levels (thus, fighting a long series of easy battles just to level-up until you become much stronger than the bosses is useless; each fight is a challenge in itself). Congrats for Square (which wasn’t Square Enix at the time) for pulling out such a fantastic masterpiece.



{March 6, 2010}   Canada, eh?

Around 17 years ago, when I was 5, my parents noticed something about me. I was a talkative, if somewhat introspective child who loved writing and reading even before learning how to do both. However, I was simply terrible at Mathematics. Seriously. I had difficulties when counting numbers, or adding 1 + 1. They realized this couldn’t be a good sign, and so made a decision that changed my life forever, like so many small, nearly costless and quick decisions do: they put me to study under the Kumon method. This was a life-changing decision because, for the following 10 years, I studied Maths every single day, even during holidays and weekends. Even on Christmas or New Year’s Day. There were times I hated Kumon, there were times I loved it. Sometimes I cried because I wanted to go out and play, which I always did, but only after I finished my lessons. My parents didn’t need to force me to sit down and do my Kumon homework: the fact that, if I didn’t finish my lessons on one day, I would have much more to do the next day taught me in practice how bad procrastination can be. Little by little, school homework became much easier and quicker to finish than Kumon’s, and after some years I realized good grades at school had become a given to me. After all, Kumon was so much harder and it lasted all year long and never, ever ended, while school had holidays and exam days in which I (thankfully!) didn’t have any homework other than Kumon.

Then when I was 13, I was solving some linear equation systems during a Kumon class and had an epiphany: I was actually enjoying what I was doing. And I had been enjoying Maths for a long time, without ever giving much thought to it. As time went on and I got older, I realized I loved (and love) Maths, and it was Kumon that made me fall in love with it. And I say “love” because that’s exactly what it is. You know, love differs from passion because love has an antonym, which is hatred. And passion doesn’t.

Passion is vain, albeit strong and shiny as only a self-consuming fire can be. At first it thrills you, then it blinds you, and, unless you get rid of it or turn it into love, it eventually kills you. However, love is something built little by little, and it comes as a product of hard work. It is a long term investment, because you can’t really love a subject (be it person, science or sport) without knowing it inside out. And knowledge requires, more than anything else, work. But working so hard means you get disappointed countless times, since you will always expect a certain return under a certain time. People are dreamers, and those that actually go out of their comfort zone to invest in their dreams are, in fact, completely taken by love. They also expect the most from their investments, and as sometimes things don’t go as planned, hatred comes in. That’s why there is no love without quite a bit of hatred. Only deep and important feelings have this sort of subtlety attached to them. Love, my friends, is all about hard work and forgiveness. Of your own faults and others’.

When I think of this definition of love, I realize I don’t love as many things as sometimes I think I do. Only a few people and some activities. Definitely, I love Computer Science and Engineering, though. The path to learning something as complex as Computer Science is endless, and saying I actually know for sure anything in life, at 22, is quite bold. Nevertheless, after 17 years of hard work I dare coming to my first conclusion: there is no such thing as talent. Only strong determination, relentless practice and opportunities that come through people you meet on your way in life, and that you must put time and effort into befriending and being loyal to. People are invaluable, and they are impossible to forget. Never underestimate the power of being nice and helpful to others.

OK, so…why did I write all this? Well, it’s just that I’ve achieved a big, big goal in my life, and felt the need to share my conclusion about “life, the university and everything else”. I was approved at University of Alberta on their Master of Science in Computer Science program, one of the best in Canada and among the 50 best in the world. Actually, U of A has THE best Machine Learning research department in the world, and very significant researches being done in the areas of compilers, games and advanced human-computer interaction, frequently with machine learning mixed in. It has close relationships with companies such as BioWare and IBM. Also, MSc students from there have big chances of being granted Doctorate scholarships not only at U of A itself, but also at University of Waterloo, Stanford, MIT, Carnegie-Mellon and others.

Another good thing is that I was offered a scholarship by their Department of Computer Science, enough for me to pay both tuition fees and my living expenses, meaning I won’t be as much of an economic burden to my parents for the next 2 years as I was expecting to be, with this idea of studying abroad and all. Not that paying stuff for me worries them; they are really the most wonderful and dedicated parents in the world.

What about DigiPen? Well, the idea of going there really appealed to me…until sometime ago when, as I wrote here, I got disappointed with the games industry and decided that I actually need to try other fields in Computer Science. I’m doing this through my current work at Eldorado Research Institute and my freelance, remote-based work for an open-source company, and I’m loving it. Thus, a traditional MSc program like U of A’s is much more suitable for me. Not to mention that DigiPen’s tuition is quite expensive and offers no scholarship opportunities for foreign students.

All fine and dandy, but…where the hell in the world is U of A located??

Well, it’s in Canada. Canada is divided in 10 provinces and 3 territories, as shown in the picture below. The points on each province or territory represents its capital city and important cities.

So, U of A, as the name says, is located in Alberta, more precisely in its capital city Edmonton.

Alberta, together with Saskatchewan and Manitoba, forms the Canadian region known as the Prairies, with a continental climate. This equals to summers being very hot (think Brazilian Summer) while winters are extremely cold (and I mean it). I’m already gathering info on how to live healthily over there, of course; from what I know until now, much of the year I will dress looking like a snowboarder when outdoors :-D

What about Edmonton? Well, the city actually has a smaller population than Campinas, and, so I have heard, has a friendly rivalry with Calgary, biggest city in Alberta.The rivalry began when Edmonton was chosen as capital city, and Calgary expected to be the university city (the one in which the provincial university would be built on), similarly to what happened in Saskatchewan. In Saskatchewan, Saskatoon became home to University of Saskatchewan, while Regina became capital city, having its own smaller university (University of Regina). However, as it turns out, Calgary wasn’t chosen as university city, but instead a city named Strathcona. Later on Strathcona was amalgamated by Edmonton, and Calgary ended up with nothing. Nowadays, though, it is indeed the richest city in Alberta and has a very good university too, University of Calgary.

The main manifestation of Edmonton x Calgary rivalry, known as the Battle of Alberta, is on sports. Hockey is the national Canadian sport, and an Edmonton Oilers versus Calgary Flames game is very much like Santos versus Corinthians here in Brazil. In American Football, also pretty popular in Canada, it’s Edmonton Eskimos versus Calgary Stampedes. Curiously enough, Alberta, and specially Calgary, are known as the “Texas of Canada”, because of its petroleum-based economy and its strong cowboy culture.

Anyway. :-D The Computer Science department, where I’ll have my classes and all, is located on the buildings below, Athabasca Hall and..another one, whose name I forgot. :-P

The End! That was my longest post ever, I guess. But important moments require long posts, right? :-D



{December 1, 2009}   I’m alive!

Okay, so I’ve just disappeared from this blog for the past…uh, 4 months and a few days. And now I popped out of nowhere to say I’m still alive and well! I had very good reasons to disappear, though! I was busy :-D

Well, that’s not a good reason, is it? I guess I simply didn’t feel like writing here, then, because I was too consumed with lots of decision making. Soon before and soon after graduating, I reflected intensely about my goals and what to do with my time and skills (we are in this life for only a short blink of a time before vanishing for good, after all). Since I’m a believer of the “walk as you talk” attitude, I’ve been trying to redirect my life according to my brand-new (but well thought-out, or so I hope) priorities.
The main change is that I don’t want to be a game developer anymore. Yeah, really. I know I’ve been preaching about my “I wanna be a rock star…ops, game programmer when I grow up” dream since forever, but come on. Who am I to lie to myself? The truth is, I fully respect those who make games. They are generally skillful, they are generally hopeful, and they go through A LOT. I’m not talking here only about my experiences at Tectoy or Overplay, which are both nice companies whose owners are bold enough to foment the Brazilian game industry even with all its gigantic obstacles. It’s just that I don’t want to sit all day on a (possibly uncomfortable) chair coding gameplay rules, and then talk about games with my work colleagues, and play games during lunch break. And get no paid overtime, and earn less than the average programmer guy or girl. And THEN, possibly get laid off after a project is done, because, you know, “the games industry is recession-proof” as the top executives of some companies (like EA, Gameloft, and so on) liked to say before laying off from hundreds to thousands of employees worldwide recently. Fortunately, I wasn’t laid off, and I never had to do overtime because I was an intern, who have special rights since they are studying and all. However, I got a glimpse of all this, both from people who work with games abroad (U.S, UK, etc) and from seeing this sort of thing happen to people I know and care for. So…this isn’t the life I want for me. Ever.

I’m not saying I’m special. I’m not saying I won’t sit down for hours on end, coding. Actually I do that. I love programming, and that’s what I do. The difference is: that’s what I know how to do, *among many other things*, and I want to decide *to which cause* I will devote my skills and my time and my blood (so to speak) to. And making games just doesn’t seem right, at least not games who are really cool or cute but actually disposable, or don’t even impact positively on people (not to mention those that are arguably damaging). Playing and making games are 2 things I really like, no doubt. But the point is, I do prefer talking about politics, and studying applied computer graphics, and reading about business. I prefer reading Fortune, and not Nintendo World. And believe me: I don’t know how all this transformation from who I was (when?) came out to be, and why it took me so long to realize my absolute passion for games has pretty much faded.

Anyway. As you may have guessed, I’m on a new wavelength now. I’m working at Eldorado Research Institute, as Junior Software Engineer. It’s amazing over there, and I’m being given a degree of responsibility over the project I’m working on that I had never had before, to my utmost joy. This semester at University is almost finished as well, although I still have a project (modifying the way ray-casting is done here) to hand out and an exam.

By the way, besides working, I’m taking graduate-level and Computer Science courses this semester and the next one, until I receive some sort of answer from DigiPen and University of Alberta, the 2 schools I ended up applying for. The reasons I still applied for DigiPen even though I don’t intend to work necessarily in the games industry, and how in the world an University from the far, cold Canadian province of Alberta is my top choice of graduate school are to be dissected in a future post.

Which, let’s all pray, will come before another 4 months have passed! x-)

P.S: I’m 22 now. Hooray! And have an XBOX 360 with Fable 2, Assassin’s Creed and Bioshock to play on my free time. Which is almost none theoretically, even though I do manage to play some hours a week. Somehow o_O



{April 1, 2009}   That unidentifiable something

Hello!

It’s been 2 weeks or so since I last wrote here, mostly because I didn’t have anything THAT interesting to write about, and was into a programming marathon to complete assignments from both my practical Compiler Construction and Distributed Systems programming courses.
And I say marathon, because I really prefer steady-paced, mild races to get to something instead of short-lived, unbearably tiresome sprints (you know, the kind that makes anyone’s stress levels skyrocket). So…I really tried not to hurry so much about these 2 assignments, but started them out as soon as they were given to me and my team-mate.

The compiler-related work was building a semantic analyzer as I’ve explained on a previous post. The little devil was a bit hard to do, but at least it helped that the whole compiler architecture was planned to be as decoupled as possible, so in the end there wasn’t so much code to look for (although I did develop a lexer and a parser as previous project phases, this was around a year ago at the theoretical part of the Compiler construction course, and the professor decided it was better to give standard versions of both to everybody). The hardest challenges, in my opinion, were:
1. Actually using a Visitor design pattern to traverse the syntax tree without forgetting to traverse any proper node (there are so many node types it gets confusing).
2. Coding the call stack’s type-checking procedure, that recursively checks if methods calling one another are returning valid things, not only in relation to their signatures, but to their callers’ signatures as well.
3. Accounting for details in the language the compiler is being made for, Minijava. This is a completely object-oriented language, but has some limitances, so my team-mate and me had to be careful about that.

The Distributed Systems project, on the other hand, has been OK up until now, mostly because all I have to hand out (today, by the way) is a 30-page specification document. What I liked the most about it were the interface prototypes my team-mate created, having as a starting point some sketchy initial prototypes I drew on- guess what – good n’ ol’ Paintbrush. She’s very good at making interfaces!

inicial

Last but definetly not least (in fact, what follows was supposed to be the main and only topic of this post. I have no idea why I’m throwing this talk about projects and whatnot at you guys o.O), yesterday was the first day I played the game I’m making at Overplay since the beginning. Up until now, I had developed things and then tested them on modular fashion, that is, only seeing parts of the game relative to whatever I was coding. Our code is decoupled like that, so we can do it; but at the same time, this caused me not to realize before yesterday just how damn cool our game is turning out! You guys probably remember how I was a bit sad that professional development is quite different from indie development, in that programmers (specially interns like me) don’t have much say concerning the design of the game they are working so hard to finish. And that I had always known things were like this, specially when you have very little experience, but was quite disappointed anyway.

Well, then! For the first time since my work with this game started I can say I’m as proud of it as I would be of any indie game I made with friends, or even more, because nobody is having to pull all-nighters as I so frequently had to during my own indie games’ development. I’m learning to plan properly regarding when and how I’ll do my programming tasks, and trying to predict what can go wrong instead of always being optimistic about schedules. Because I am WAY TOO optimistic, although I hadn’t realized that until recently. And what’s best of all, since our team’s producer sits next me, I try to observe how he works and does things when I’m not too busy; this has been quite useful to me. So yeah; maybe I was being far too immature about the whole working as professional thing. It does have much more advantages than disadvantages, no doubt anymore about that. Ironically enough, being now a senior student in university and on top of my almighty 21 years of life, I thought that I could come to quick conclusions like “professional game programming is just systems programming with nothing more to it!”. Guess not. Games do have that unidentifiable something after all.



{December 1, 2008}   Almost!

This semester has been a bloody one, but it’s almost over, and I’ve been doing the best I can to deliver everything I have to, on time and all.

Today I have to present my Administration course’s final project, which was fairly easy (at least in comparison to all the rest): writing about an administration theory that would be applicable to the 10 best-to-work Brazilian companies. This is a list that is published in the press every year here.

I also have to present my Computer Animation video, which I finished this morning. I know I should have finished it before, but really, I could do nothing but go out with friends, relax and sleep like no tomorrow during the weekend. This was the effect of having a boring, complicated Transport Phenomena test on Friday. Transport Phenomena, by the way, is a weird mixture of Thermodynamics and Fluids Mechanics. An no, I’m not good at this kind of thing =P

Back to the animation then. It was first planned in September, when I sketched its whole storyboard. The storyboard is crucial because one needs to have a notion of what each of the animation’s scenes will be like, and more importantly, to analyze and have a way to predict what is really viable to be done when taking deadlines and other responsibilities into account. Then during a week or two in October and beginning of November I modeled and animated each scene at a time.

I ended up using some textures, but wasn’t able to learn how to do proper texture mapping: it’s easily noticed that there is a round, red “thing” on the wall during the keyboard typing scene; that was to be a clock, but since my texture mapping of a rectangular picture to the clock’s circular face was so lame, I decided not to include it, and left the red clock as it was. What irritated me the most, however, was the rendering process, which always takes too long. Just so you guys can have an idea, 200 frames took from 4 to 5 hours to render.

The video editing was quite easy because I used the totally newbie, but indeed effective Windows Movie Maker. I used WMM during my good n’ ol’ high school times, while producing Anime Music Videos and such. But, as I soon found out, it’s nearly impossible to edit sound using only WMM and a separate audio editing tool, say, Audacity. So in the end I had to learn how to do stuff in Adobe Premiere, and used it to put audio (a collection of Pilot Wings 64 songs, plus some samples from freesounds and soundsnap) and video together. This software is great: easy to learn, easy to use. I recommend it to everybody, really.

So yeah. After who-knows-how-many hours of work, I have the result. It was fun! The Maya animation ended up exactly the way I had imagined it, and I’m grateful for not having imagined anything too fancy. Learning a software tool as complete as Maya requires lots of practice, and consequently, lots of time. So considering the time I had and the fact that I did the whole modeling, animation, audio and video editing, the 3-minute-long resulting movie is just great! Despite my own opinion of it, any constructive criticism is greatly appreciated.

I created a (fake) Youtube account just so I could post it here. Enjoy!



{October 28, 2008}   Work.Update()

Never mind this programmer-like title. Last week I didn’t even program all that much, having spent most of my time doing weird schoolwork for courses like Accounting, not to mention English compositions and whatnot. This weekend, however, things got better as I finally managed to solve the matrix inversion problem of my horribly ill-conditioned spherical MLS algorithm.

Uh, I guess for you guys to understand what I mean I must explain about that scientific project I’m working on. The project’s whole purpose is developing a tool for interaction and visualization of medical images taken from exams such as CT. As it turns out, these images can be considered 2D slices and one may convert them to 3D by integrating them into a volume. This integration can be achieved using various volume rendering techniques like raycasting, the one we are using in our project. However, raycasting as it is normally used (with linear interpolation between points detected by rays) doesn’t provide information about any points in the volume other than the ones present on the images being integrated. The problem is that the points on these images are only samples (after all, the pixels at an image are a discreet representation of a continuous space, namely the organ being examined). So rendering stuff with raycasting can cause imprecisions or misrepresentations to occur: if a volume region is under-sampled some holes may appear, or the linear interpolation between the point samples can simply fail. My mission is to implement an algorithm that, by using spherical interpolation, may increase this rendering precision and allow the calculation of extra information such as curvature at each sample point, which is impossible when linear interpolation is used. The curvature part is fundamental to the interaction side of the project, which I’ll explain on another occasion because …well, because I should be going to sleep now :-)

The problem is ill-conditioned because I must invert a matrix at a moment of the algorithm and this matrix has both incredibly large and quite small values. This causes lack of stability and, if common algorithms like Gauss-Jordan/Gauss with Backsubstitution or LU are used (all of which I tried along the way) then overflow or underflow can easily occur. So the solution, as I found out with some effort, is using another algorithm named SVD. Well, I implemented it and to my surprise the damn result was finally reasonable. So yeah, SVD all the way!

Other than that, I am still doing my Computer Animation project. I hope I finish it soon, as it’s very time-consuming, although very pleasurable. Or else I’ll be in real trouble during November, with all the final exams. Here is a picture of another animation scene.



{October 14, 2008}   And life renews itself!

I’m so happy! Exams period is finally over (I had weekly or even bi-weekly exams, not to mention coursework to be handed out, since September 8 till yesterday). Coincidentally, both the first and the last exams were of the Computer Graphics subject. I like it very much (although it surprises no one that I do), and I guess I’ll take the graduate-level Computer Graphics course next semester. It seems to cover everything the undergrad subject does, but in a deeper way and with a practical project that consists of making an OpenGL game from scratch. Better yet, it’s going to be offered by my adviser professor, and for the first time as valid credits for undergraduate students, so it can count as one of my electives.

Regarding my performance on exams, it was more or less the expected: I did quite well on stuff I like (read: computer-related courses), making some distraction mistakes mostly caused by lack of time. However, I didn’t do nearly as well on Transport Phenomena (a mix of Thermodynamics and Fluids Mechanics – and yeah, it’s a compulsory subject and I’d rather take other courses if only I could choose) and Accounting. This one I was starting to hate with a passion until this week, when the professor told us to look up at the internet for financial reports of some companies. This was an interesting activity which I was much in need of, and renewed my interest on the whole finances thing. Of course, the economic worldwide crisis has also sparked this interest…I’ve never watched so many news! I even read parts of Freddie Mac’s financial reports this morning, the ones from last year. Not that I understood much, but it’s curious nonetheless.

Another good thing is that Gariman was selected to be shown at SBGames 2008, the Brazilian Symposia for Digital Games and Entertainment (or something like that), along with 3 more games made using XNA, and lots of other games for PC and mobile devices. A 2D game more recently made by some guys from Gamux, including half of Gariman’s team (but not including me) was also selected. It’s a pity that I couldn’t send Boardball on time, but it’s OK =P Next year the game will be surely ready to compete! The fact that irritated me, however, was that another game I sent, BandHero (a Guitar Hero-like game featuring classical music and several instruments, made using one of the first versions of Google’s Android SDK) wasn’t selected for the mobile category. And not because it wasn’t good enough…but because the person responsible for testing couldn’t run the game! And couldn’t because she/he had a newer version of Android, and to my utter surprise these versions aren’t backward-compatible. Total shame on Google. A nice guy from the event contacted me to say that if I sent my version of Android, he could try to make the game work and so on. I sent him the thing, and the game apparently worked; however it was already too late, it seems, as the game had already been voted out of the Game Festival. Now I’m negotiating for the game to be entered and exhibited even if not competing, since Google will be there and the game’s idea may be of their interest (who knows, right).

Well, that’s it. I should have written here about the scientific project I’m working on, but the post is too big already, so I’ll leave it for later XD



{October 8, 2008}   Must…survive!

I’m half-asleep right now but felt the urge to come here and post about my greatest achievement this week (so far, heh): rendering the first scene of my Computer Animation class project, due to the end of November. I basically had to learn how to model something in Maya, plus applying material and lighting properties. This adventure took me a good amount of hours since yesterday evening, but the scene ended up even cooler than the one I originally drew during the storyboard phase. Here is a picture (and yeah, it looks like a cartoon on purpose):

Apart from that, good news for those who watched movies like Existenz (one of my favorites, I admit) and have always wondered when games will be played solely in our minds.

Well…must sleep now. I’ve been so tired these days, because of an endless sequence of exams (even had a TOEFL simulation this Tuesday) and some exercise lists to hand out. But I hope I can rest and hang around with friends on the weekend, at least. As a friend of mine would say: Keep coding, Johnny Coder!



Hi all!

It’s been a while since I last wrote here, but it’s expected. As I told you guys last post, I was racing against time to study for a Computer Graphics exam and have a game I’m making with a friend of mine, from Gamux, ready for the SBGames Game Festival. I didn’t say it then, but I also had to draw a storyboard of a Maya animation for my Computer Animation class, along with other more usual college work.

Well…I did manage to do well on all this stuff, except for getting the game ready =( The small physics engine I’m coding as part of the programming process was (and in fact, still is) suffering from some precision bugs, and I didn’t want to hack some correction code in and send it to the festival as if I were OK with it. But I COULD have managed to fix the bugs till the end of last week, if only my Image Processing professor hadn’t sent off the false alarm that we were to have an exam. It turns out that he did, however, so I abandoned any plans of programming and dived into pattern recognition books. Well…the exam was to take place today. However, he ended up delaying it for almost 2 weeks! Can you believe it? I was very pissed off with that, although I know I have more chances to do well on the exam now. Even so…I feel it’s quite unfair.

No use complaining too much though. At least, since now I’m not being hard pressed by any game championship dates, I’m going to take my time with the game and do the best I can for it to be the best it can. Right? =D

That aside, during this and the next weeks I’ll focus more on my other project (yeah, that one which was shamefully seconded by my game development race). Today I discussed important issues with my adviser professor and the PhD. lad who is responsible for the project, concerning the algorithm I must implement and what I’ve been studying about volume rendering and GPUs in general.

Which takes me to the last topic on this post: the last book from the set I bought from Amazon arrived already, and it’s excellent! The name is Real-time Volume Graphics and I absolutely recommend it to anyone interested in learning the basics of GPU programming as linked to volume rendering. Shader programming, here I go! \o/



This weekend 2 of the 3 books I bought via Amazon have arrived. It took a while longer than I had expected, even though I didn’t pay for the quicker delivery by plane and the maximum arrival date was September 15th. But still, I thought they would arrive earlier. One of them is the classical Computer Graphics: Principles and Practice in C, which I plan to read as soon as I finish this semester’s discipline of Graphical Information Systems. My intention is to study the subject in a deeper way and see if I have the guts to write a small renderer by myself next year. Huh…well, I’ll really have to work hard if I intend to do that, not because of overt difficulty but mainly due to the huge amount of code required to have anything remotely decent done. I guess I’ll team up with people interested in such a project, but we’ll see. The other book is GPU-Based Interactive Visualization Techniques, an introductory book on exactly what the title says. My adviser on that CG project recommended it to me as a general theoretical book, along with the other one that hasn’t arrived yet.

On a side note, I must say that pattern recognition is a tricky area. I’m taking Image Processing and Analysis as an elective discipline this semester, and it’s been tough. The course is for graduate students but I’m doing it anyway, after being authorized by the responsible professor (I don’t even fit into the requirement of having done Introduction do Image Processing last semester, since I had Network Programming right at the same day and time). The interesting thing is that, instead of focusing on image composition or segmentation, the discipline deals with pattern recognition as applied to images, which is a very useful thing if you think about the rise of Biometrics for instance. But as I know now, pattern recognition uses statistical methods all the time…I particularly never fancied Statistics very much, even if very useful. I find the maths behind it quite boring, or maybe it’s because I’ve been all lovey-dovey with matrices and linear algebra in general lately. Anyway, today the teacher explained about the Parzen Window and Multinomial methods. They are general tools of Statistical Theory borrowed by computer scientists to say which class or group any due pixel of an image belongs to, thereby classifying parts of the image as belonging to some object. Very interesting indeed!

Do brush techniques in Okami use some sort of pattern recognition technique like the ones I’m studying, I wonder?



et cetera
Follow

Get every new post delivered to your Inbox.