Neil Trevett also highlighted WebGL in his talk, which included a demo of the WebGL Aquarium with 100 fish running on a Tegra 2 tablet! This was an early, pre-optimized WebGL implementation in WebKit on Android, but it is very promising.
Someone brought up an interesting question: if we develop in HTML5 instead of native apps, how is Apple, who makes a lot of money through their App Store, going to respond? Are they going to treat it like they did flash? I don't recall how this was answered, but my take on it is Apple will have to allow it; otherwise, consumers will reject Apple's products if HTML5 is not supported. HTML5 is not some corner-case technology; it is the web.
There were several other great presentations at the BOF, but my favorite was Tom Olson's talk on writing portable OpenGL ES 2 code (similar GDC 2011 slides). Between this talk and Aras Pranckevičius' talk earlier in the week, I really gained an appreciation for targeting multiple mobile devices. Although mobile segmentation is better than it use to be, there are still several different operating systems and a wide array of hardware with varying performance.
Just like in desktop OpenGL, OpenGL ES has implementation-dependent limits like number of vertex attributes and number of textures. In my own code, I usually try to stay within these limits by doing things like packing multiple values into a single vertex attribute. In Tom's talk, I also learned that the precision qualifiers can cause cross-platform issues.
lowpguarantees at least 10-bits,
mediumpguarantees 16, and
highpguarantees 24. This sounds OK at first, except that some platforms may always use 32-bits, so if we only test on these platforms, we never test with lower precision. In addition,
highpisn't always supported in fragment shaders; some platforms will silently ignore it, and others will fail to compile the shader. Ugh. This reminds me of shaders that compile with warnings on NVIDIA, and fail to compile on AMD.
It sounds like some platform-compatibility problems can be solved by cleaning up drivers, and others can be solved by cleaning up the specification. Tom noted that the spec doesn't say what to do with bad code. For example, what does divide-by-zero yield? Nan? Infinite? Zero?
Overall, this was a great BOF. I want to thank Tom Olson for organizing it, and for giving me a time-slot to announce the call for authors for OpenGL Insights.
No SIGGRAPH would be complete without checking out all the new books. For starters, Real-Time Shadows by Elmar Eisemann, Michael Schwarz, Ulf Assarsson, and Michael Wimmer is out, and looks excellent. At first glance, techniques like shadow mapping and shadow volumes seem simple, but the devil is in the details; efficient, robust implementations that yield high visual quality are quite difficult. Therefore, a lot can be said about shadows even though it is a sub-field of real-time rendering, which is a sub-field of rendering, which is a sub-field of computer graphics, which is a sub-field of computer science, etc.
I was also happy to see proofs for the second edition of Graphics Shaders: Theory and Practice by Mike Bailey and Steve Cunningham. I am a huge fan of the first edition and am glad to see the second edition is updated for OpenGL 4. However, I was surprised to see that immediate mode, built-in vertex attributes, and built-in uniforms were still used in the example code. Perhaps the code will be updated before the book is printed.
I'm also excited about two intro graphics books that I browsed during the conference. I like to go over the fundamentals once in a while because it keeps me somewhat broad, fills gaps (and I have plenty of them!), and seeing material over again from a different perspective is a great way to deepen knowledge. 3D Graphics for Game Programming by JungHyun Han looks like a pragmatic, concise introduction to graphics.
I was pleasantly surprised to see a partial draft of the 3rd edition of the classic Computer Graphics: Principles and Practice (3rd Edition) by James Foley, Andries van Dam, Steven Feiner, and John Hughes. At almost 1800 pages, this thing is heavy and appears to cover just about every topic in computer graphics, from 2D with WPF to GPU architecture with an NVIDIA GeoForce GTX 9800 case-study. I am definitently getting a copy of this when it comes out (March 2012 according to Amazon), but reading it cover-to-cover is going to take some effort.
Of course, our book, 3D Engine Design for Virtual Globes, was also new this SIGGRAPH. I was happy to meet many people who were excited about it, and glad to hear that it was selling well. I'm taking my 75 cents to Vegas. Kevin is risking his in biomedical startups.
This was my fourth SIGGRAPH; each one keeps getting better. I didn't spend as much time in courses as I usually do, but I enjoyed many BOFs and met several people submitting to OpenGL Insights. As I said after attending my first SIGGRAPH, SIGGRAPH is all about meeting people and sharing ideas.
Full SIGGRAPH Trip Report: day one | two | three | four | five