Category Archives: Miscellaneous

SIGGRAPH 2010 Course Scheduling

One of the challenges of SIGGRAPH is doing it all. My own method is to take a sheet of lined paper (remember that stuff?) and make columns for the days, each line being a half hour. One whole sheet holds it all, vs. me dorking around with my Palm/phone/Touch/whatever, scrolling around to see what’s what. Old school, but it works great.

Anyway, Naty’s recent summary of courses didn’t have course times. Here goes, mostly for my own benefit, in time order. Bolded are the ones I personally plan to attend and why, FWIW:

Perceptually Motivated Graphics, Visualization, and 3D Displays – Sunday afternoon

Physically Based Shading Models in Film and Game Production – Sunday afternoon. Toss up for me between this and the previous course. Naty’s the only speaker for this one, so it’s tempting to go, just to see his head explode after lecturing for 3+ hours.

Stylized Rendering in Games – Monday morning. I’m particularly pumped for this one, having done NPR work this last year.

Recent Advances in Real-Time Collision and Proximity Computations for Games and Simulations – Monday afternoon

Color Enhancement and Rendering in Film and Game Production – Tuesday morning. Naty’s a speaker.

Filtered Importance Sampling for Production Rendering – Tuesday morning

An Introduction to 3D Spatial Interaction With Videogame Motion Controllers – Tuesday afternoon

Advances in Real-Time Rendering in 3D Graphics and Games – all Wednesday. Traditional course, usually quite good.

Volumetric Methods in Visual Effects – Wednesday morning

Gazing at Games: Using Eye Tracking to Control Virtual Characters – Wednesday afternoon

Beyond Programmable Shading – all Thursday. The DICE talk last year was amazing, the others were also worthwhile.

Advanced Techniques in Real-Time Hair Rendering and Simulation – Thursday morning

Global Illumination Across Industries – Thursday afternoon

The “Advances” course used to always be Monday. Which was terrible last year, as it was scheduled against the last day of the colocated HPG conference (not a problem this year, since HPG is in Europe alternate years). I suspect someone realized that putting Advances and Beyond next to each other, and alongside the exhibition floor days, was good for pulling in game devs. Anyway, looks to be a great set of courses, other than the risk of head explosion.

If you want something lighter to start with on Sunday, try Glassner’s “Processing for Visual Artists and Designers” course. The Processing language is easy to learn and fun for quick bit-twiddling or other 2D effects, with all the usual 2D primitives and mouse support (and much else) built in.

Voting Time!

If you’re an ACM member, this is a reminder that the ACM 2010 Council Election voting deadline is noon (EDT) on May 24th. So vote now. You’ll need the piece of paper mailed to you, along with your ACM membership number (find that here or look at the label of a CACM sent to you, if you don’t recall it). Voting itself takes a minute, tops. While you’re at it, vote in the ACM SIGGRAPH elections – deadline is June 4th. Who to vote for? Here’s Naty’s take. Disappointingly, very few candidates have responded so far to his questionnaire (a few candidates’ email addresses could not even be found, which is pretty sad).

I find voting theory fascinating, since there’s no perfect way to set up voting when there are more than two candidates, to name just one dilemma. I just noticed this book on Amazon, which I’ve put on reserve at the library – Poundstone’s books are usually entertaining.

ACM and SIGGRAPH Members – Vote for Open Access!

Long-time readers of this blog will be well aware of my position on ACM and Open Access. Although ACM is a non-profit organization which ostensibly has as its only mandate “the advancement of computing as a science and a profession”, the ACM Publications Board has been behaving like a rent-seeking publisher; bullying students working to provide valuable resources to the community, and lobbying the US Government against Open Access initiatives, all in the name of protecting their revenue streams.

I have witnessed an outpouring of anger from the computing community at these events, convincing me that I am not alone in believing that the ACM Publications Board (and by extension the ACM itself) has tragically lost its way, prioritizing its income over the good of computing as a science and a profession. In fighting Open Access they are on the wrong side of history; witness all the leading academic institutions who have come out in favor of the very government Open Access initiative which the ACM has opposed.

If you believe as I do, then now is the chance to make a difference! SIGGRAPH is holding elections now for three Director-at-Large positions, to be selected from five candidates; the deadline for the elections is June 4th. If you are an active SIGGRAPH member, you should have received instructions for voting by now; you can vote at this link. ACM is also holding general elections for various Council positions, including the President of the ACM; you can vote at this link. The deadline for the ACM General Council elections is May 24th.

For me, Open Access is the most important issue in these elections. But which candidates will fight for Open Access, and which for the status quo? Of all the SIGGRAPH candidates, only one has explicitly mentioned Open Access in their position statement (James O’Brien, as Eric pointed out in a recent post), and so far one of the ACM Council candidates have: Salil Vadhan’s statment is here: http://www.acm.org/acmelections/candidate10.

To arm voting ACM and SIGGRAPH members with information on the candidates positions, I have composed some questions regarding ACM’s copyright policy and Open Access, and put them up on a web page. I have sent these questions to all the candidates for these elections (except for the few which I have so far been unable to contact), and am posting the answers on the web page as they come in.

So far only two candidates for the SIGGRAPH election have answered; Mashhuda Glencross and James O’Brien. Both answers are Open-Access friendly. No candidates for the ACM Council have come forward yet. Keep following the questions web page, and make sure to use the information there to select candidates, and vote in both elections. Nothing will ever change unless we make our voices heard!

Questionable Answers

So how did you answer the quiz yesterday? To all that commented, thanks, I enjoyed reading your replies. I see these questions as possible differentiators; you might be able to tell something about someone depending on their answers. Just a theory, though, and I’m sure there will be any number of people who will disagree – I’d love to hear other ideas. Anyway, these questions I find fun to test out on people, and I hope more of you will post your or others’ answers. If someone does a serious test for correlations, awesome!

RGB or RYB? Well, of course it’s RGB if you’re in computer graphics at all. I find this an interesting question to ask anyone. I think this question used to be a differentiator for computer graphics person vs. everyone else. RYB is what we learnt in school, the subtractive primaries used for paints, while RGB are the additive primaries used for lights. But with general computer and screen knowledge increasing, and a growing number of artists using computer programs, maybe this one is more technophile vs. technophobe?

+Y or +Z? For me, this used to be computer artist vs. CAD user, and maybe still is. SGI and Wavefront were definitely +Y, using the same model and world space up as view space up. For architects the plan view is an X/Y 2D sort of thing, so +Z is then extruding the plan view into 3D. This is certainly how AutoCAD’s file format evolved, starting out in 2D. Update: more about this topic here.

Green-yellowish or red-orangish? Chartreuse is green-yellow. I think this one can differentiate men from women, excluding liqueur-drinkers and people from France. All women I asked have chosen the right answer, as it’s a fabric color; a majority of men have not (including me). Interestingly enough, Crayola got this one wrong originally, in 1972, later renaming their color atomic tangerine. For more pretty entertaining color/sex correlations, see this xkcd blog post. His post inspired me to write down these four differentiator questions I’ve tried over the years. True confession: I spelled “fuchsia” wrong, too. Fuch-sia? Really? Let’s make a t-shirt, now on sale, though I can’t imagine anyone buying one. Update: more on this critical question here.

Bottom row or right column? This used to be a differentiator for computer graphics vs. mathematically trained, though there are some subtleties there (not all fields of math use right column). Nowadays it might be more DirectX vs. OpenGL. A key thing to realize is that, in the memory itself, both DirectX and OpenGL store the translation vector in the 13th, 14th, and 15th spots in the list of 16 memory locations – after that, it’s just notation. My theory is that you imprint on whichever one you first used, sort of like vi vs. emacs back in the day. Here are responses from 1993 on Usenet to this religious question, archived at Steve Hollasch’s wonderful collection of ancient but still-valid knowledge. There are posts there from one of the authors of OpenGL and many other graphics people. My favorite passage, from Robin Forrest, “Steve Coons used row vectors for his influential early papers on transformations (University of Michigan Summer Courses in the mid 60’s). I asked him why in 1967 and he said it was because it was easier for the stenographer to type row vectors!” The oddest thing I’ve seen in this area was a book on ray tracing where the first row contained the translation vector. Self-taught is not always a plus.

Thanks to all that commented; I’m glad to know I’m not the last person on earth putting my translations in the bottom row, where the gods intended them to be (that said, we use column major in our book, following most fields of math). If you have alternate theories as to What It All Means, post them. There are other questions out there with no correct answers, like left-handed vs. right-handed, but that particular one is somewhat ill-defined to ask. My own answer is right-handed for world space, left-handed for view matrices, usually, but I really don’t care, and then there’s upper left vs. lower left for the screen’s origin. Any other good questions out there?

Questionable Content

Here are a few questions, there are no right answers (except for the one with a right answer), and please choose the first answer that comes to you:

What are the primary colors?

A. Red, yellow, blue

B. Red, green, blue

You’re making a 3D model of some object. Which way is up in your world?

A. +Y

B. +Z

What color is chartreuse?

A. Green-yellowish

B. Red-orangish

You write out a 4×4 transform matrix to translate an object. You put the translation values:

A. in the bottom row

B. in the right column

All for now, my opinions and theories tomorrow (though feel free to comment before then).

Update: “answers” here.

SIGGRAPH 2010 Courses

This year, SIGGRAPH is making a very strong push to include more game and real-time content.  A lot of the programs are yet to be published, but the full list of courses is now up on the conference website, and many of them are of interest. The courses have always been the SIGGRAPH program with the most relevant material for film and game production; this year the game side is particularly strong. If you are doing game graphics, the courses by themselves are reason enough to attend the conference.

Full disclosure – I am organizing two of these courses, so my description of them may not be fully objective 🙂

The courses which are most directly relevant to game developers:

  1. Advances in Real-Time Rendering in 3D Graphics and Games – this full-day course, organized by Natasha Tatarchuk, has been a highlight of SIGGRAPH since it was first presented in 2006 (the name’s a bit clunky, though). Each year Natasha solicits top-notch game and real-time rendering content for her course. SSAO was first presented at this course, as were cascaded light volumes and many other important techniques. This year includes presentations from game powerhouses Bungie, Naughty Dog, Crytek, DICE, and Rockstar, among others.
  2. Beyond Programmable Shading – another very strong full-day course, now in its third year. Like Natasha’s course, this course includes brand-new material every year. Focusing on GPU compute APIs such as CUDA, DirectCompute and OpenCL, the presentations tend to skew towards GPU vendors but have also included some groundbreaking game developer talks on topics like sparse voxel octrees (by id software) and parallelism in graphics engines (DICE) . This year, besides the usual suspects (NVIDIA, AMD, Intel, Microsoft),  there will be a talk by Johan Andersson from DICE (he gave the parallelism talk last year and I can’t wait to hear what he’s been up to since), one from Kayvon Fatahalian from Stanford (who has been doing some fascinating research on GPU-accelerated micropolygon rendering), and finally one from Luca Fascione of Weta. Hopefully Luca will be talking about the GPU-accelerated PantaRay system he helped design to render the jungles in Avatar. PantaRay is used to precompute occlusion; a very game-like thing to do.
  3. Stylized Rendering in Games – in recent years, games have started to explore the universe of possible styles beyond photorealism. The course is organized by Morgan McGuire, who is also chairing this year’s NPAR conference, and includes presentations by the developers of some of the most prominent stylized games.
  4. Physically Based Shading Models in Film and Game Production – this is one of two courses I am organizing. This topic has fascinated me for years and was a major focus of my work on RTR3. Physically based shading is currently a hot topic in film production, making this a natural film-games crossover topic (my primary focus on the conference committee). I’ve been able to get speakers with really strong film production backgrounds, so I’m optimistic that this course will turn out well.
  5. Color Enhancement and Rendering in Film and Game Production – this is my other course. Most of my work in this area is more recent than the physical shader stuff so RTR3 doesn’t have as much material on it; perhaps I can remedy this in RTR4. Although this topic is well-established in film production (a field from which I’ve been able to get good speakers for this course as well), it is still an area of active development in games, as attested by the excellent GDC 2010 talk by John Hable.
  6. Global Illumination Across Industries – this is another film-games crossover course, with presentations by top people working on global illumination in both industries (the games side is represented by Illuminate Labs for precomputed GI and Crytek for dynamic GI).
  7. An Introduction to 3D Spatial Interaction With Videogame Motion Controllers – between Microsoft’s Project Natal, Sony’s Playstation Move, and the Wii MotionPlus, motion controllers are an extremely timely topic. The speakers include Richard Marks, the brains behind the Eyetoy, Playstation Eye and Playstation Move.
  8. Recent Advances in Real-Time Collision and Proximity Computations for Games and Simulations – this is an important area, and the speakers are leading researchers in the field. Among other topics, the course will cover the the collision detection systems in the PhysX and Bullet libraries.
  9. Advanced Techniques in Real-Time Hair Rendering and Simulation – while this topic is a bit more of a niche, it is of interest for many games and the speakers have done some of the leading work in this area.
  10. Volumetric Methods in Visual Effects – one of the main differences between game and film graphics is the amount and quality of atmospheric effects. Film VFX houses have been actively developing their own systems for modeling and rendering clouds, fog, fire, ocean spray, etc. This course includes a stellar cast of speakers from Digital Domain, Sony Pictures Imageworks, Rhythm & Hues, Side Effects (developers of Houdini), PDI/DreamWorks and Double Negative; anything these people don’t know about volumetric effects isn’t worth knowing. This course is likely to have lots of good ideas for stuff that isn’t possible in real-time yet, but will be in the near future.
  11. Filtered Importance Sampling for Production Rendering – another film rendering course which is likely to yield good medium- and long-term real-time ideas. Importance sampling is crucial for efficient, high-quality reflections from arbitrary BRDFs and lighting; it can be used with environment maps as well as ray tracing. Filtered importance sampling is a more general, correct, and expensive version of the common game trick of prefiltering cubemaps for glossy reflections. It has recently found wide use in film production, a topic about which the speakers (from major visual effects houses such as ILM, Image Movers Digital and MPC) are well-qualified to speak.
  12. Perceptually Motivated Graphics, Visualization, and 3D Displays – Understanding human visual perception and how it relates to graphics is important for knowing which corners can be safely cut and which ones will yield distracting artifacts; 3D displays are a timely topic for game developers as well, now that TV and console manufacturers are getting into the act.
  13. Gazing at Games: Using Eye Tracking to Control Virtual Characters – I’m not aware of any commercial games that use gaze tracking as an input method (the course is presented by academic researchers). If existing cameras such as Playstation Eye and Project Natal can track eyes with sufficient precision, this may be an important trend going forward, but if new equipment is needed this might not be relevant for a long time (if ever).

Although not as directly relevant, some of the other courses appear to be informative and fun, such as Andrew Glassner’s course about the Processing graphics programming language, and the course on how to Build Your Own 3D Display.

7 Things for April 22

Quite the backlog, so let’s whip through some topics:

  • GDC: ancient news, I know, but here is a rundown from Vincent Scheib and a summary of trends from Mark DeLoura.
  • I like when people revisit various languages and see how fast they now are on newer hardware and more efficient implementations. Case in point: Quake 2 runs in a browser using javascript and WebGL.
  • Morgan McGuire pointed out this worthwhile article on stereoscopic graphics programming. Quick bits: frame tearing is very noticeable since it is visible to only one eye, vsync is important which may force lower-res rendering, making antialiasing all that much more important. UI elements on top look terribly 2D, and aim-point UI elements need to be given 3D depths. For their game MotorStorm, going 3D meant a lot more people liked using the first-person view, and this view with stereo helped perception of depth, obstacles, etc. There are also some intriguing ideas about using a single 2D image and reprojection using the depth buffer to get the second image (it mostly works…).
  • I happened to notice ShaderX 7 is now available on the Kindle. Looking further, quite a few other recent graphics books are. What’s odd is the differential in prices varies considerably: a Kindle ShaderX 7 is only $3.78 cheaper, while Fundamentals of Computer Graphics is $20 less.
  • Speaking of ShaderX, its successor GPU Pro is not out yet, but Wolfgang started a blog about it (really, just the Table of Contents), in addition to his other blog. The real news: you can use Amazon’s Look Inside feature to view the contents of the book right now!
  • Here are way too many multithreading resources.
  • In case you somehow missed it, you must see Pixels.

ACM SIGGRAPH 2010 Election

I received my ACM SIGGRAPH 2010 Election form today, it provides some login info and a PIN. SIGGRAPH members can vote for up to three people for the Director-At-Large positions.

I can be pretty apathetic about these sorts of elections, ACM and IEEE, I have to admit. Sometimes I’ll get inspired and read the statements, sometimes I’ll skim, sometimes I’ll just vote for names I know, sometimes I’ll ignore the whole thing. This year’s ACM SIGGRAPH election is different for me, because of issues brought up by the Ke-Sen Huang situation. Specifically, the ACM’s copyright policy is lagging behind the needs of its members.

For this SIGGRAPH election I was happy to see that James O’Brien is on the slate. In the past James has worked to retain the rights to his own images, so he’s aware of the issues. In his election statement he writes:

The ACM Digital Library has been a great success, but the move to digital publishing has created conflicts between ACM and member interests. ACM and SIGGRAPH are fundamentally member service organizations and I believe that through thoughtful and progressive copyright policies we can better align organization and member needs. Successful copyright policy has to work across formats, and SIGGRAPH is unique among ACM SIGs in that member-generated content spans a diverse range encompassing text, images, and video. Other organizations have embraced Open Access initiatives, but SIGGRAPH and ACM should be leading the way in this area.

He has my vote. He’s also the only candidate who addresses this area of concern, and in a thoughtful and professional manner. If you’re a SIGGRAPH member, I hope you’ll take the time this year to read over the statements, figure out your login ID and user number, and then go vote.

SIGGRAPH 2010 hotel room reservation service is open

Really, the title says it all, just go to the SIGGRAPH site and reserve one now. Even if there’s only a 5% chance you’ll go, book one anyway; you’re not charged until after July 9th and can cancel at any time. When you cancel your room will almost assuredly be snapped up by someone else. I’ve lost count of the times people have told me, “well, I had to stay 3 miles outside the city, next to the freeway”—no, you didn’t, you just had to book now.

Me, I like the Figueroa for walkability and its bar & pool area (plus it’s next to the brand new HQ hotel this year), some people like the Holiday Inn as it’s generally less funky, is even closer, but across the wide street. Neither is a bargain this year; the Ritz Milner is a bargain and is walkable, but has some downsides. Everything else is about in the same $143-$199 price range except some of the more distant hotels (Kawada, Wilshire Plaza), but of course these have shuttle service. See the map, and prices are listed on the second page.