Wednesday, February 17, 2010

Working on Chrome OS at Google

Many have been curious what I'll be working on at Google, including myself for a while. Google is interesting in that you are not allocated to a team until just before your first day. You accept the job because you're a good fit for Google in general, not just one team.

I'm going to work on Chrome OS. There's a lot to do for the initial launch, but long term my goal is to help make it a great platform for rich graphical apps and games too.

Whoa, you say, I thought you worked on high performance games? Yes, high performance 3D games will be running inside browsers, with security and performance delivered via Native Client.

Monday, January 11, 2010

Radial 10 bit Gray code - Tutorial

How I made the Radial 10 bit Gray code image procedurally in Photoshop:

  1. Create a 10 bit gray code image (width 10, height 1024). I did this by hand, it's a little tedious. But there is a method: you duplicate the image vertically and then draw a line from the mid points of each tree.
    Then, expand it to a square image:
  2. Transform it radially (Filter, Distort, Polar Coordinates (need to first rotate the image 90 degrees)):
  3. Create some Gaussian blurs of the image, with a few similar large blurs:
  4. Set the blend mode to Difference between 2 of the blur layers:
  5. Add adjustment layers to remap the range, add a gradient, shift the hue, etc:

  6. Add another blur with difference blend mode, and we're done!


I worked in 16 bit mode since there was banding when differencing the similar Gaussian blurs.

    Saturday, January 9, 2010

    New Blog: Scattered Pixels

    I put effort into posts to Beautiful Pixels. I hope you've liked what you've seen the last few years.

    I've started a shadow blog called Scattered Pixels, for random thoughts, images, links. If you'd like more frequent updates from me that are less filtered, subscribe to both.

    Subscribe in a reader to:
    Beautiful Pixels
    Scattered Pixels

    And, maybe to comments:
    Beautiful Comments
    Scattered Comments

    Tuesday, December 29, 2009

    Wednesday, November 25, 2009

    Anamorphosis Gamebryo LightSpeed Logo

    We all love Anamorphosis, and have seen it done wonderfully before ([edit] even spectacularly). Well, I've done a few simple things around the office, here's one I just did:

    Vimeo and YouTube videos.




    That was done with painter's masking tape, with the help of Cat, in about 2.5 hours.

    Here's an earlier project, the old Gamebryo logo done with post-it notes:



    Post-it notes were handy after a late night in the office and no prep. The masking tape is obviously much better. Both were done by setting up an image on my laptop and using a projector to cast it into the room. The perspective for both is just in a doorway, to help guide viewers to the right position. Both also are cast in a way that the image is heavily distorted as soon as you move slightly away from the right point.

    Share links if you've done similar projects, or know of good ones. ;)

    [Edit:]
    Falice Varini is the link you want to follow! See e.g. this.

    Tuesday, October 20, 2009

    Pixelated Martini Roller - Game Jam Video

    I've posted about Pixelated Martini Roller before, including a cell phone video recording of an IGDA presentation and a description of the collision. But dear blog readers you've never been able to see a high quality video. Here it is:



    Best watched in High Definition / full screen, with vimeo or youtube.

    If you don't recall, it's one of the Triangle Game Jam games I've worked on, this one from 2008.

    Three.5 of us made the game in 2 days, based on the madlibs jam theme that randomly made the title "Pixelated Martini Roller".

    You're an olive. You like martinis. You roll around and get to umbrellas for checkpoints. Sitting in a martini glass gets you a bit tipsy. You've got more energy and can jump higher. But watch out, stay too long and you get sloppy. You'll stagger around, and your jumps won't land you where you want to go.

    As you get tipsy the screen gets pixelated, and the music sounds like it's had too much to drink too.

    The world was created with an in-game level editor. The objects are just a few images that represent the visual and collision texels.

    We've noted how fun it is to implement hacky collision over and over again in a weekend, but I liked coming up with and working on the pixel based collision we did for this one. I also enjoyed writing the post FX pixels and rushing out the level design in the last hour. ;)

    Thanks for Michael Noland and Adrienne Walker for working together on this game with me, and Brad for the title screen.

    Wednesday, October 14, 2009

    Gamma Correct Lighting, On The Moon!

    When I explain gamma correct lighting to people, sometimes they look at images and aren't certain which is supposed to be better.

    E.g. in GPU Gems 3, The Importance of Being Linear two spheres are shown, similar to these:

    Two spheres lit by a directional light. Which has gamma correct math?


    A small thought occurred to me: there's an object people are familiar with that will help them to understand, the moon:
    Two spheres lit by a directional light, compared with an image of the moon.
    Which has gamma correct math?


    Still don't see it.. yes, it's subtle... shall we make it obvious with a gradient?


    Yes, it is but one example, there are many more. But it's a good basic visual example.

    If you'd like to read more on gamma correct rendering:
    [EDIT: See the comments for some nice thoughts from people who've spent more time on this.

    Naty points out another good example in Real Time Rendering.]

    Thanks to "ComputerHotline" on openphoto.net for the image of the moon.