January 13th, 2008

... with basically no practice (I've played it maybe five times), although to be fair being a drummer does help a lot. I also attribute some credit to my awesome "real drum pedal" hardware mod, which works 100% better than the stock plastic pedal that they give you:

For the record, the crazy-colourful socks are Amy's; I wouldn't be caught dead with such things.
July 28th, 2007
I've been playing with HDR a bit for the fluids demo that I'm doing for SIGGRAPH 2007 and eventually concluded that we didn't have time to make HDR assets (skyboxes, lights, etc) and tweak all of the associated parameters (tone mapping operators, light intensities, etc).
Fortunately I noticed something today:

Luckily, NVIDIA's drivers can magically add HDR to any application via a simple control panel checkbox! Spread the word, as I'm sure this will save game development studios hundreds of hours and thousands of dollars... why do any work yourself when you can simply tell your users to "enable HDR in the NVIDIA control panel"?
PS: For those not familiar with HDR, this whole post is extremely sarcastic. I have no idea what the "HDR lighting" option in the control panel does, but it's a sure thing that it's terribly misnamed and bordering on false advertising :)
February 26th, 2007
Alright I've been persuaded to do this "year end" survey thing by Amy (I don't care to figure out how to make that a cute link). Now it's nearly two months late, but that just means you'll be getting material from January and February (if that) rather than November and December which is no more representative of 2006 anyways. So on that note:
1. What did you do in 2006 that you'd never done before? - Got married - Moved out of home for good - Started graduate school (computer graphics) - Got a paper published - Attended and spoke at I3D and GDC in California
2. Did you keep your new years' resolutions, and will you make more for next year? I have no idea what my new years resolutions were, so I kept them all by default. Knowing that, it doesn't seem germane to bother making new ones this year.
3. Did anyone close to you give birth? Not that I know of.
4. Did anyone close to you die? Not really.
5. What countries did you visit? United States (California).
6. What would you like to have in 2007 that you lacked in 2006? Direct3D 10.
7. What dates from 2006 will remain etched upon your memory, and why? June 24: My wedding.
8. What was your biggest achievement of the year? Getting married. Although the aforementioned published paper and speaking was good too.
9. What was your biggest failure? Nothing huge comes to mind, but I don't tend to dwell on failure much.
10. Did you suffer illness or injury? I was actually surprisingly healthy in 2006, unless I'm forgetting that too.
11. What was the best thing you bought? I'm gonna have to go with food. But my 24" widescreen LCD is pretty good too ;)
12. Whose behavior merited celebration? Emily, who defied all girl stereotypes and became awesome (arguably better than me) at BF2, and more recently Company of Heroes (or "Command Heroes" as she calls it).
13. Whose behavior made you appalled and depressed? The game development industry as a whole, but that's hardly abnormal.
14. Where did most of your money go? Let me check that... as suspected: tuition and rent by a landslide, so basically the U of W :)
15. What did you get really, really, really excited about? The G80, although probably just two "reallys" there.
16. What song will always remind you of 2006? Um... my mind doesn't really work like that, but "Frontline" is pretty awesome.
17. a) happier or sadder? Happier of course. Otherwise I'd be in hot water with "the wife" ;) b) thinner or fatter? Pretty similar, although perhaps slightly fatter. To be rectified shortly :) c) richer or poorer? Probably richer, but it's kind of hard to say with all of the merging of finances etc. that happened after getting married.
18. What do you wish you'd done more of? Badminton and basketball. Sports in general are recently getting shafted by school and work.
19. What do you wish you'd done less of? Programming - gah!
20. How will you be spending Christmas? Uh... I guess this isn't really relevant now.
21. Did you fall in love in 2006? No, but I did get married.
22. How many one-night stands? Why is this even a question?
23. What was your favorite TV program? Mythbusters! Stargate is pretty good too.
24. Do you hate anyone now that you didn't hate this time last year? No.
25. What was the best book you read? I only read nerd books. That said, "Modern C++ Design" by Andrei Alexandrescu was pretty interesting in its own right. GPU Gems 2 was pretty good as well although I don't recall when I got that precisely... may have been 2005.
26. What was your greatest musical discovery? Pillar or Starfield probably. They're both quite good.
27. What did you want and get? A wife?
28. What did you want and not get? More time!
29. What was your favorite film of this year? Wow I have no idea which films that I remember were 2006... V for Vendetta and The Prestige were both pretty good, but I don't remember any others.
30. What did you do on your birthday, and how old were you? I turned 23. Not sure that I did much...
31. What one thing would have made your year immeasurably more satisfying? Not a lot: it was pretty good. Of course one can always think of more ideas, better research, more papers, etc.
32. How would you describe your personal fashion concept in 2006? "Camping"-ish. I'm a big fan of the practicality of clothes designed to give the maximum in outdoor performance and comfort.
33. What kept you sane? I'm not convinced that I was kept entirely sane, but probably just my stubborn indifference about most things.
34. Which celebrity do you fancy the most? Honestly, I really dislike celebrities. My wife is prettier than them anyways :)
35. What political issue stirred you the most? I didn't pay much attention to politics, as usual.
36. Who did you miss? Probably Chris - he's been much less accessible now that he has a 9-5 (or more - this is the games industry!) than previously.
37. Who was the best new person you met? Probably a bunch of the people that I finally got to meet face-to-face at the aforementioned conferences.
38. Tell us a valuable life lesson you learned in 2006: Trying to do well at church ministry work is humbling to say the least... a lot of faith, prayer and perseverance is required.
39. Quote a song lyric that sums up your year: Not sure if it really "sums up my year", but it's wise:
From "Tumbling After" by Starfield: All this searching yet my destiny is still unfound Makes me realize this world will always let me down So it seems that the only hope I ever had Was everything that You are
June 26th, 2006January 2nd, 2006
verdika and I just finished throwing together a quick video including some of the Battlefield 2 action experience at our 2005 Lan Party. Since I was hosting the dedicated server that we used, I enabled the "BattleRecorder" which allowed us to go back later and view all of the games with an arbitrary camera. However the camera controls were a bit quirky, as you'll see in the video...
That said, we then just used Fraps to capture some videos, and VirtualDub to cut it up and stich it all together. Nothing special, but it's fun :)
Anyways the link follows. You should probably download it to your hard drive as it is NOT a streaming media file (Windows Media Player will just sit there downloading the whole thing with no feedback). You also need to have DivX 6.1 installed to view the video.
LP2K5_divx.avi (38.2MB)
The quick credits... note that different people were playing on different computers throughout the party, hence why multiple people are associated with a single screen name:
*MoG*=BF=Adiel - Andrew, Brenda *MoG*=BF=Elizabeth - Brenda, Andy, Andrew Emlee - Emily newbtewb - Rob punkEwok - Amy The_Chrisman - Chris, Brenda
Background music is "Bring Me Down" by Pillar.
November 4th, 2005
It's been a while since the last update, but I regret nothing!
That said, I figured I record that fact that I finally broke down and ordered a new computer. All I really need is a new video card but they're pretty much moved over to PCI-E now, and my current computer predates that. The current video card just isn't hacking it anymore for graphics research, which limits my ability to do work from home (which is very convenient especially when working part-time, like this term!).
( Specs and discussion... )
To be fair the overriding goal of new computer purchases for me is no longer for "maximum performance" or gaming, etc., it's more for fun features to play with. In this case, I plan to have lots of fun with dual-core (yay multi-threading!), 64-bit (perhaps I can help to get Sh 64-bit compatible) and R520 (lots of new graphics fun here).
Don't know exactly when it'll arrive... probably take a month or so. In any case, I'm in no rush.
July 14th, 2005
I've been meaning to post this for a bit... this function (part of the work I've been doing) is a perfect demonstration of how C++ is going a bit over the line with features and syntax ;)
template <class NodeType>
template <class HandlerNodeType, class TraverserType>
inline void SGTraverser<NodeType>::AddHandler(TraverserType *Self,
typename SGTraverser<NodeType>::
template NodeHandler<HandlerNodeType, TraverserType>::
CallbackPtr Callback)
{
// Overwrite whatever was there, if anything
m_Handlers[TypeID<HandlerNodeType>::ID] =
new NodeHandler<HandlerNodeType, TraverserType>(Self, Callback);
}
Note the SIX LINE function DEFINITION (just imagine it without the typedefs!). I blame this all on Andrei Alexandrescu...
December 15th, 2004
Alright first of all, please disregard any former posts by people claiming to be my siblings who say that I'm engaged.
Now that that's out of the way, I'm now officially engaged to my wonderful girl Emily! And I was the first to announce it. Take that siblings.
September 2nd, 2004
Work is now over! I just sent a long string of e-mails detailing my recent work and how to find all of the code and results for everything I've done over the summer.
I'll wait a bit to think back on the experience, but it was overall positive I think. When my paper ("The 4-Body Problem in a (1+1)-Dimensional Self-Gravitating System") gets published, that'll be even cooler :) I wasn't the only one responsible for the paper of course, but I did a lot of work on it and I think it came out pretty well. Nothing ground-shattering I don't think, but 35 pages has to say something, no? ;)
Anyways I'm off to the IGDA Toronto Chapter meeting tonight, so I'll be back late. Then I entertain friends for a few days, then off camping for a week or so! That should be a lot of fun - I love Tobermory, even though the rest of my family seems to be sick of it by now :D
Posse out.
August 19th, 2004
Hey peoples - I've been convinced to update by Brenda and Chris, so I'll go ahead and write a short blurb about some recent happenings.
Work continues on Galactic Gladiator, which now has its own domain, thanks to Amy! She's gonna make fun of me for not doing that l33t "livejournal user link" thingy but I don't know how, and I don't care.
I got a new toy recently: a brand new 21" Samsung Monitor! She's quite a beauty. I had to replace my old 19" which was/is about to die (but it's lasted for 5 or 6 years, and wasn't all that expensive when we bought it, so it owes me nothing). If this one lasts me at least that long (hopefully longer), I'll be happy :) In the mean time, my development and graphics work can proceed much less hindered than before!
STAT231 marks came out today. I hate that class, and everything in it. The marking was terrible (IMHO) and the material was silly (and NOT math). But anyways I was hoping to get over 70 after seeing my marks on the quizzes (which I would have argued if I cared much about ;). Anyways I ended up with a 78, so I'm quite happy! Most of the people that I saw on the marks were in the low 70's/high 60's range so I suspect I'm above the median/average. I saw a pile in the 80's, maybe 3 or who got 90's and one 92 (which was the highest that I saw). Not the highest scoring class to be sure. Maybe we just all suck ;)
Anyways that's the new for now. Back to physics research... (Hopefully this ODE run will be done soon!)
June 17th, 2004
I've now signed up for next term's courses:
CS350 (Operating Systems) CS370 (Numerical Computation) ECON101 (Intro to Microeconomics) AMATH231 (Calculus 4) CO342 (Intro to Graph Theory)
Should be a good one :) That said I'm suckin' it up in STAT231 so far this term. Hopefully when we actually start doing MATH, and stuff that TAs/markers don't just arbitrarily deduct marks for without reason (I'm actually not exaggerating here) I'll be ok.
June 4th, 2004
Now usurping Chris' previous title:

That's right read it an weep: 1024MB PC3200 (DDR400) Dual-Channel, PAT, Low-latency RAM running completely stably at 2-3-2-6 :) Not unreal, no, but still quite impressive for stock cooling and no overclocking.
May 25th, 2004
For a variety of reasons, I was looking up the word "modal" on Dictionary.com today and was very surprised to find one of the definitions:
3. In MS Windows programming, A window with the label "WS_MODAL" will stay on the screen and claim all the user-input. Other windows can only be accessed if the MODAL window is closed. Such a window would typically be used for an error dialog box to warn the user for something important, like "Critical error, shut down the system and restart".
Ha! Since when did they start putting stuff like this into the dictionary? Not that I disapprove... :)
May 17th, 2004
For those of you who haven't caught on yet, part of my strategy for learning to be a l33t game programmer involves becoming very proficient at what are known as "shaders", since they are effectively the future of real-time, and even offline graphics development. I won't describe them in detail (the idea is non-trivial unless you know at least a bit about the way that a modern graphics pipeline works), but many of you more technically inclined persons may have heard the buzz-words "pixel-shader" and "vertex-shader" thrown around at least.
Anyways I've been working on one particular effect since it can be "simplified" into a very large range of materials. Basically I'm trying to create a general material with a texture and bump-map (it's actually a normal map, but more on that later) that also includes per-pixel ambient, diffuse and specular lighting; as well it should include a realistic-looking full or partial reflection term (like off of metal for example).
The only real way to describe the shader(s) then is something to the effect of a "fragment-level phong shader with a fresnel reflection cubemap" (that's literally the shortest name that I could come up with that still describes what it does). Anyways here's the results so far (note that the teapot shape is merely to demo the material):
 (Note: rendered real-time at twice the resolution here with 4xFSAA/8xAF on a Radeon 9800... yeah, it really is a sweet card :). The effect is extremely editable as well (by the artist here, not me): - Base map, normal map and reflection cubemap - ambient, diffuse and specular colors - specular co-efficient (how large and soft the shiny lit area is) - bump (normal) blur and reflection blur - reflection index and power (controls at what angle the reflection starts and how reflective overall the material is).
Anyways I did run into a bit of a snag. Ideally the reflection should be calculated based on the normal from the normal map.
Basically a normal map is a picture where the Red/Green/Blue values at every location represent the direction of surface normal at that point... ie. think of stabbing a pin straight into a surface at a million different points on it. Then represent the direction of each of those pins as XYZ and encode that into an RGB color in a picture. This is only a half-truth since in this case the normal map is in "tangent-space", ie. if the map was a solid color representing the vector (0, 0, 1), it would effectively be doing nothing - the picture would be the same as without the normal map. I know this isn't a very good explanation but I don't have the time or space to go into too much detail, and I'm sure that no one is interested anyways.
Back to the point, it would be ideal to take this normal map into account when calculating the reflection vector off of the surface (remember angle of incidence = angle of reflection? :). This is what I tried first, but it seems that this approach will not be possible. The problem is that either the normal map is not accurate enough, or something is conspiring against me to produce some semi-visible artifacts with the reflection. These are mainly viewable on flat surfaces (probably the most common in games... sigh).
Anyways for now (and in the picture above), it is using a "per-vertex" reflection term rather than "per-pixel" using the normal map. This actually runs significantly faster as well, but as you might be able to notice, the "bumpiness" effect of the surface is somewhat lost near the edges of the model where the angle is sharp and the reflection becomes more prominent. Meh - I'll work on it and see if I can get the more complex version working better.
Lastly in lieu of my sword webpage/fan-listing, I'll post a picture for you guys to look at and drool over :) Trust me, it really is that sweet ;) Thanks again go to my wonderful girlfriend Emily: Clicky.
May 11th, 2004
After all the fiddling with our DSL connection yesterday (story for another day), I decided to run the quick CNet test at work (University of Waterloo) for fun (and I'm too lazy to download Java to run DSLReports' one):
5938.9 Kbps!!
May 10th, 2004
I got a really cool new keyboard recently to replace the "came with your computer about 5 years ago" one that was starting to show its age. I got a Logitech "Elite" and it's been amazing! It has media keys that allow me to control my audio (or DVD) even while in a full-screen app - and now that I have volume control on the keyboard, I can effectively use that instead of trying to change both my front/back volume controls on my speakers but try to keep them balanced still ;)
My ONLY qualm is that they seem to be trying to "newbify" the function keys, in that they are instead labeled "New, Reply, Forward, Send,..." with the F1, F2, etc. labels only on the side (still quite visible, but that isn't the problem). The problem is that they do not ACT like F-keys unless I turn on "F-Lock" which is another button on my keyboard. Again this would not be irritating except that by default, it is off! Now again, this is akin to turning on/off numlock depending on user preference, but the default state of that can be set in the bios!!
Now I'm also 95% sure that if I install the drivers for this beast I could set the default, as well as enabling a couple of the keys that currently don't work (Shopping, iTouch, ... who cares). But alas, I'm a purist: I hate installing anything - especially if it is persistent - unless absolutely necessary. I don't install mouse drivers because I don't need them, and I pride myself on only having one program run at startup (Virus Scanner).
Therefore I have a bit of a problem...
May 7th, 2004
Those who know me are aware of how enthusiastic I am about getting into the game development industry. That said, it seems to be one of the hardest industries to get in to! So far, I've taken these steps to increase my chances:
1) Establishing a game-related portfolio... currently working on: a) Galactic Gladiator (almost at presentable stage) b) Triple Triad (maybe half done, depending on what features I include) c) Physics Wave Demonstration (done) d) PhanTim3 (not specifically for portfolio, but it is by far the simplest, and yet most popular of the stuff I've worked on...) 2) Researching "how to break into the Game Dev industry" and more general interviewing/resume techniques etc.
I'm also planning on: 1) Attending some Game Dev conferences, specifically XGDX in October. The only issues here are transportations costs really. SIGGRAPH is also a possibility. GDC is cool too, but WAY out of my price-range. 2) Learning the hardcore "ground-level" basics of 3D and 3D engines, possibly by writing a rudimentary software renderer/rasterizer. I ordered a huge book about this yesterday and it should arrive soon. 3) Becoming fairly proficient at shader development. I wrote my first HLSL shader a few days ago and I'm starting to understand them I think - I also ordered a book along with my software rasterization one :) So far I'm only working in ATI's RenderMonkey but I hope to integrate some effects into possibly some 3D demos that I'll do soon. 4) An online portfolio site to link all of my games a projects together, and just as a URL to point potential employers to.
So hopefully I can convince someone to hire me when I'm done University (2 years at least, maybe more). I really do think that I have - or could learn quickly - the skills necessary to do very well in game development, but I suppose the problem convincing someone else of that :) So if any of you guys know any contacts that could be a benefit, I would be thankful.
May 3rd, 2004
Ok for all you FF8 players out there:
Comon... not bad eh? :) Hopefully a good playable version will be up soon.
March 19th, 2004
Firstly I realized that I never mentioned here that I did get my sword (that Emily bought me) some time ago! Of course it is the coolest sword ever, and I will post some pictures in the near future.
Secondly, I got Battlefield Vietnam yesterday! I walked to the mall with the intention of getting either it, or X2: The Threat - whichever was cheaper. The latter wasn't there, and the former was retailing for $50.00 CAN, which is the same price as BF1942 is (still), so I could not complain. It turns out that when I brought it up to the register, it was on sale for $40.00 CAN... that's $30.00 US for a game that's not even a week old. I still maintain that Americans get ripped off on game prices!
Lastly I am becoming somewhat disturbed at the power of non-deterministic Turing Machines. For those of you who have no idea what I'm talking about, you can skip a few paragraphs. Anyways on my last assignment I was given that I had a TM "M" that accepts a certain language "L". From that I was to construct a non-deterministic TM that accepts the language of all prefixes of words in L.
Now we also had a question like this for context-free grammars, and the answer was much more complex (it involved converting to Chomsky Normal Form and adding/subtracting rules etc). However when the solution to the TM question struck me, I was almost a bit irritated at how "dumb" it was. No matter how I tried, I could not think of a reason why it was invalid though...
All that needed to be done is to move to the end of the input (potentially a prefix that we want to "accept") and "write stuff". More specifically, one simply non-deterministically decides to either write a letter from the alphabet, moving write but remaining in the same state (and continuing until:), or deciding that we're done writing, returning to the beginning of input and running the new string through "M".
How stupid is that? IMHO: very! However, it does indeed accept every string that is a prefix of one in L, as there is some way to create a string in L by adding letters to the end of it. At the same time, it does not accept anything that is NOT a prefix of a string in L because it does not modify the starting portion at all. I can't get over how stupid an answer it is, but as far as I can tell, it is the correct and expected one.
That's basically all I had to say for today. Tonight I will play some Battlefield 1942 with Chris, some Battlefield Vietnam with random people or the computer, and practice some music with people from the church. Sometime I must also do more work on my CS246 project, although that prospect does not appeal to me greatly - maybe if it was a good project...
March 14th, 2004
Ok! The first of the webpages/jobs mentioned in the previous entry is now done. It's actually pretty cool and fun to play around with. Plus those of you with your spiffy SSE2-enabled Pentium 4's get to enjoy hand-coded Intel assembler! I know: I'm a nerd. Still, it's quite impressive to get a 100% performance gain over the optimized C++ version.
Anyways, here it is: Physics Wave Demonstration. I do actually recommend that you check it out even if you don't like Physics etc. It's just pretty fun to play around with. Version 1.0 also won an award on Flipcode and was purchased by my high school Science department for educational use :).
|