{"id":81,"date":"2009-03-23T18:16:36","date_gmt":"2009-03-24T00:16:36","guid":{"rendered":"http:\/\/www.realtimerendering.com\/blog\/?p=81"},"modified":"2009-03-24T11:12:35","modified_gmt":"2009-03-24T17:12:35","slug":"i3d-2009-report","status":"publish","type":"post","link":"https:\/\/www.realtimerendering.com\/blog\/i3d-2009-report\/","title":{"rendered":"I3D 2009 Report"},"content":{"rendered":"<p>I was holding out in hopes that Jeremy Shopf would do a summary of days 2 and 3 of I3D 2009, since he did such <a href=\"http:\/\/www.jshopf.com\/blog\/?p=158\">a nice piece for day 1<\/a>. No such luck, so here&#8217;s mine. What follows is a brief overview of I3D, mostly the papers that I cared about most, i.e., those on rendering and maybe a little modeling. The goal is to put enough information to let you skim through many papers and decide which you want to read.<\/p>\n<p>There were about 100 attendees. As usual, you can find the paper titles and links to many of them on <a href=\"http:\/\/kesen.huang.googlepages.com\/i3d2009Papers.htm\">Ke-Sen Huang&#8217;s website<\/a>.<\/p>\n<p><strong>Day 1:<\/strong><\/p>\n<p>Pat Hanrahan\u2019s keynote was on do-it-yourself UI.\u00a0He encouraged people to get their hands dirty and try making some dirt-cheap UI hardware, just to see where it might lead.\u00a0How to summarize an hour-long talk? &#8220;Just Do It&#8221;, <a href=\"http:\/\/www.arduino.cc\/\">Arduino<\/a>, <a href=\"http:\/\/makerfaire.com\/\">Maker Faire<\/a>, and <a href=\" http:\/\/www.collegehumor.com\/video:1790939\">this video<\/a>, which is brilliant.<\/p>\n<p>Multiscale 3D Navigation \u2013 The interesting nugget was the idea of rendering a cube map around the viewer to get the depths at pixels, then use this depth data to adjust the near and far planes, adjust the amount of distance traveled when moving forward, and perform collision detection and object avoidance when moving forward.<\/p>\n<p>Gigavoxels &#8211; Make everything voxels. They use an octree at the upper levels, 3D textures at the nodes. Compress. Render.<\/p>\n<p>A Novel Paged-Based Data Structure for Interactive Walkthroughs \u2013 A &#8220;what if our model has 110 million triangles?&#8221; paper. Usual idea of textures for far away stuff. Key idea is to divide the scene into coherent chunks that each fit into a disk page, with a k-d tree atop. Lots of preprocessing. Nice result of 20 FPS of the scene at good quality, on a laptop.<\/p>\n<p>Terrain Sketching \u2013 UI and algorithms for artist-controlled creation of heightfields. Various ways to create them (silhouette, then &#8220;spine&#8221;, or vice versa). I liked where he uses spectral noise analysis of real terrain to fill in the artist\u2019s shaky silhouette to make the final result more convincing.<\/p>\n<p>Animation&#8217;s not my forte, so I&#8217;m skipping reporting that session. That said, Kavan\u2019s paper seems to offer a nice thing, his (or any) higher quality non-linear skinning can be automatically turned into linear skinning, which CAD tools and GPUs support well.<\/p>\n<p>Soft Irregular Shadow Mapping \u2013 similar to an earlier paper by Sintorn, now for Larrabee. Wild stuff: take the scene from the eye, take those samples that are seen and transform them into light space as a group. Cells in the light\u2019s &#8220;grid&#8221; view of these samples are processed. Samples are compared to geometry and an approximation of the coverage of the occluder of the sample is made. Quite involved, but imaginable that this could be &#8220;the future&#8221;. Table 3 is particularly valuable to anyone interested in shadows, as it\u2019s a summary of previous work and what features each has (more or less).<\/p>\n<p>Hair Self Shadowing and Transparency Depth &#8230; &#8211; a different way of quickly creating a deep shadow map (like a shadow buffer, but with an opacity function at each pixel instead of a depth). Interesting use of buckets to count hairs at each depth, an &#8220;occupancy map&#8221;. Good error analysis &amp; corrections done. Seems to work pretty well.<\/p>\n<p>Approximating Dynamic Global Illumination in Image Space \u2013 SSAO has no view-dependent component, so as the lights move this self-shadowing component never changes. With a bit more work and record-keeping you can also get shadows that are more affected by directional lights and can also get color bleeding. Some cool effects, some artifacts.<\/p>\n<p>Multiresolution Splatting for Indirect Illumination \u2013 a paper where I understood most of it while watching the presentation, but coming back to it I realize I\u2019d have to read the article carefully to know what it all means when put together. Virtual point lights, min-max mipmaps, all sorts of stuff. If you know reflective shadows maps, this extends those by using multiple resolutions to save on bandwidth. Seems a bit tricksy, but amazing that it works.<\/p>\n<p><strong>Day 2:<\/strong><\/p>\n<p>Started with the fluids session; I&#8217;m not fluid-oriented, so no descriptions for you.<\/p>\n<p>Fast High-Quality Line Visibility \u2013 very nice work and a good presentation, giving a number of techniques for computing visible lines. 50x faster than using an item buffer, for complex models.<\/p>\n<p>Dynamic Solid Textures&#8230; \u2013 solid textures for NPR. Problem: how to balance between 3D textures that stay in place on their surfaces while having a 2D look with a constant frequency of pattern on the screen? Basic idea is to use octaves of noise and fade depending on zoom level.<\/p>\n<p>Laplacian Lines for Real-Time Shape Illustration \u2013 A new NPR line type. I have &#8220;Suggestive contours are only in concave areas. Laplacian lines are a bit faster.&#8221; Hmmm, I didn\u2019t write down much else about this one. As is often the case, some things looked great, some things did not.<\/p>\n<p>Real-Time View-Dependent Rendering of Parametric Surfaces \u2013 the summary, &#8220;screen-space flatness&#8221;. Use CUDA to tessellate patches dependent on how much the curve diverges on the screen from a straight line segment. I didn\u2019t understand fully how cracking was ameliorated, but it came out in questioning that cracking was not fully eliminated (though almost so).<\/p>\n<p>MLS-based Scalar Fields&#8230; &#8211; wild deformations. Magic.<\/p>\n<p>Real-Time Creased Approximate Subdivision Surfaces \u2013 how to keep creases on Catmull-Clark subdivision surfaces. Valve is starting to use this in their pipeline, as they would like to have just one art asset be able to be used both in the game and for offline animation. Has some little glitches at concave corners, and there are fixes for these. Valve seemed to feel this method had some staying power for their modeling in the future. Given the limitations of Catmull-Clark surfaces (e.g. these can\u2019t be concave) it allows a lot.<\/p>\n<p>Posters session followed. To be honest, the one that most sticks in my mind is where the guy analyzed a large number of games to see how artists simulate first-person walking. Does your head bob, does your gun bob, do both? Would something else work better? Bob patterns included up and down, U-shaped, infinity-symbol-shaped \u2013 the latter two were slightly better. This one won best poster presentation, in fact. Other one that was of interest was combining SSAO and toon shading, which seemed to give a bit more detail to objects.<\/p>\n<p>End of day 2; I already covered\u00a0<a href=\"http:\/\/www.realtimerendering.com\/blog\/nvirt-slide\/\">the NVIRT announcement<\/a> at the banquet that night.<\/p>\n<p><strong>Day 3:<\/strong><\/p>\n<p>Granular Visibility Queries on the GPU \u2013 about occlusion culling. First gave a summed area table way of tracking occluders, but that method seemed fussy and complex. The hierarchical item buffer presented seemed like a winner.<\/p>\n<p>Parallel View-Dependent Refinement of Progressive Meshes \u2013 indeed, how to do this in parallel. Some very nice visualizations during this talk.<\/p>\n<p>Efficient &#8230; Audio-Visual Rendering &#8230; &#8211; If you have a CPU budget for rendering images plus generating sounds, which pays off best? Nice to see someone do something different.<\/p>\n<p>Don Greenberg gave an enjoyable capstone talk about the history of perspective and its use in architecture. He focussed on historical Italian architects playing tricks with right angles in buildings to make corridors look longer, <a href=\" http:\/\/en.wikipedia.org\/wiki\/Trompe_l'oeil\">trompe l&#8217;oeil painting<\/a>, etc.<\/p>\n<p>&#8230; human motion papers&#8230; crowd patches&#8230; egocentric affordance fields&#8230; &#8211; not my areas, and I faded a bit as conference paper overload started to set in.<\/p>\n<p>The last paper I attended to more carefully, since it was from my company and I&#8217;m working in this area (but have nothing to do with the paper):<\/p>\n<p>Multiscale 3D Reference Visualization \u2013 Infinite multiscale grids and how to render them well when zooming in and out. Also, put objects on blue stalks (red if two blue stalks merge) with the stalk bases forming circles on the ground plane grid, to give clearer visual cues as to the location and size of objects. New word for the day: exocentric. Egocentric rotation is where the viewer rotates his head, exocentric is where the object stays still and the viewer orbits (or for you gamers, strafes) around it.<\/p>\n<p>And then home the next day through a snowstorm. My car survived, I survived, life&#8217;s good.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was holding out in hopes that Jeremy Shopf would do a summary of days 2 and 3 of I3D 2009, since he did such a nice piece for day 1. No such luck, so here&#8217;s mine. What follows is a brief overview of I3D, mostly the papers that I cared about most, i.e., those [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[136,11],"class_list":["post-81","post","type-post","status-publish","format-standard","hentry","category-reports","tag-conference","tag-i3d"],"_links":{"self":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":0,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/81\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/media?parent=81"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/categories?post=81"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/tags?post=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}