{"id":170,"date":"2015-03-26T08:40:49","date_gmt":"2015-03-26T15:40:49","guid":{"rendered":"http:\/\/www.kevinbeason.com\/worklog\/?p=170"},"modified":"2015-04-03T04:43:17","modified_gmt":"2015-04-03T11:43:17","slug":"added-progressive-photon-mapping","status":"publish","type":"post","link":"https:\/\/www.kevinbeason.com\/worklog\/2015\/03\/26\/added-progressive-photon-mapping\/","title":{"rendered":"Progressive Photon Mapping"},"content":{"rendered":"<p>In 2011 I added the progressive version of photon mapping from &#8220;Progressive Photon Mapping: A Probabilistic Approach&#8221; by Knaus and Zwicker.<\/p>\n<p>The technique is simple and easy to implement but also amazing. Great bang to buck ratio! For anyone starting off with photon mapping, once you have direct visualization of the photon map I would skip irradiance caching and final gathering and just do this. It&#8217;s a lot easier, better looking, and still pretty fast.<\/p>\n<p>Here are some test renders. The Cornell Box took about 9 hours for 50,000 passes with 100,000 photons per pass. The Cubo prism took about 18 hours for 50,000 passes using 200,000 photons per pass. Both were done on an Intel i7 920 CPU at 2.67GHz (4 physical cores, 8 logical).<\/p>\n<p>The Cubo prism image looks a lot better than my earlier rendering of it. The caustic is cleaner and the bright reflections of the light are visible.<\/p>\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-170 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.kevinbeason.com\/worklog\/wp-content\/uploads\/2015\/03\/cboxPpm.jpg'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.kevinbeason.com\/worklog\/wp-content\/uploads\/2015\/03\/cboxPpm-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-171\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-171'>\n\t\t\t\tCornell Box using PPM\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.kevinbeason.com\/worklog\/wp-content\/uploads\/2015\/03\/cuboTest.50000.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.kevinbeason.com\/worklog\/wp-content\/uploads\/2015\/03\/cuboTest.50000-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-196\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-196'>\n\t\t\t\tCubo Prism using PPM\n\t\t\t\t<\/dd><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>In 2011 I added the progressive version of photon mapping from &#8220;Progressive Photon Mapping: A Probabilistic Approach&#8221; by Knaus and Zwicker. The technique is simple and easy to implement but also amazing. Great bang to buck ratio! For anyone starting off with photon mapping, once you have direct visualization of the photon map I would [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-170","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":24,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":200,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/posts\/170\/revisions\/200"}],"wp:attachment":[{"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kevinbeason.com\/worklog\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}