{"id":31,"date":"2007-08-06T23:28:44","date_gmt":"2007-08-07T06:28:44","guid":{"rendered":"http:\/\/renderwonk.com\/blog\/index.php\/archive\/more-courses\/"},"modified":"2015-08-22T14:05:08","modified_gmt":"2015-08-22T21:05:08","slug":"more-courses","status":"publish","type":"post","link":"https:\/\/renderwonk.com\/blog\/index.php\/archive\/more-courses\/","title":{"rendered":"More Courses"},"content":{"rendered":"<p>I went to the <a href=\"http:\/\/moon.felk.cvut.cz\/~xkrivanj\/papers\/2007-caching_course\/index.htm\">&#8220;Practical Global Illumination With Irradiance Caching&#8221;<\/a>  course. I&#8217;m interested in irradiance and radiance caching techniques  because they are closely related to baked lighting techniques used in  games &#8211; one could argue that baked lighting is nothing more than  irradiance caching computed offline and applied to interactive renders. An  example of a previous paper on this topic with interesting applications  for baked lighting is <a href=\"http:\/\/www.tabellion.org\/et\/paper\/index.html\">&#8220;An Approximate Global Illumination System for  Computer Generated Films&#8221;<\/a> by Tabellion and Lamorlette (SIGGRAPH 2004).<br \/>\nAnyway, the course included a presentation on <a href=\"http:\/\/radsite.lbl.gov\/radiance\/papers\/sg88\/paper.html\">the original radiance  caching paper<\/a> (it was called something else back then) from 1988 by Greg  Ward (who also received a well-deserved Computer Graphics Achievement  Award today), as well as presentations on more recent developments by  Jaroslav Krivanek, Henrik Wann Jensen, Pascal Gautron and Okan Arikan.  Krivanek&#8217;s radiance caching work for glossy surfaces sounded potentially  interesting for baked lighting but used too many SH coefficients to be  practical for games. Greg Ward did mention a method of applying rotation  gradients of irradiance to bump maps which sounded worth investigating  further.<br \/>\nI skipped out on Okan Arikan&#8217;s section at the end to see the real-time  synthesis section of the &#8220;Example-Based Texture Synthesis&#8221; course (course notes are available <a href=\"http:\/\/www.cs.unc.edu\/~kwatra\/SIG07_TextureSynthesis\/\">here<\/a>). The  tile-based methods are something I have been keeping an eye on for a while  for possible game applications so I was happy to hear more about the  latest work on those. There were also some pixel-based synthesis  techniques which appeared too slow for real time but perhaps just right  for doing at level loading time.<br \/>\nThis afternoon I went to Hanan Samet&#8217;s spatial data structures course. The  course was so full that they had to open up an overflow room, which almost  filled up as well! Hanan presented a bunch of interesting data structures  (I never knew there were so many different kinds of quadtrees) and  algorithms. I now really want to read his new book (<a href=\"http:\/\/www.amazon.com\/Foundations-Multidimensional-Structures-Kaufmann-Computer\/dp\/0123694469\">&#8220;Foundations of  Multidimensional and Metric Data Structures&#8221;<\/a>) which I bought last year  but haven&#8217;t gotten around to reading yet (I feel bad about that,  especially since Hanan was kind enough to sign my copy).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I went to the &#8220;Practical Global Illumination With Irradiance Caching&#8221; course. I&#8217;m interested in irradiance and radiance caching techniques because they are closely related to baked lighting techniques used in games &#8211; one could argue that baked lighting is nothing more than irradiance caching computed offline and applied to interactive renders. An example of a [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6],"tags":[],"class_list":["post-31","post","type-post","status-publish","format-standard","hentry","category-rendering","category-siggraph2007"],"_links":{"self":[{"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":1,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":60,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/31\/revisions\/60"}],"wp:attachment":[{"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/renderwonk.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}