{"id":3016,"date":"2014-07-05T19:35:14","date_gmt":"2014-07-05T17:35:14","guid":{"rendered":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/?post_type=portfolio&#038;p=3016"},"modified":"2020-01-14T21:00:29","modified_gmt":"2020-01-14T20:00:29","slug":"volumetric-path-tracing-with-equiangular-sampling-in-2k","status":"publish","type":"portfolio","link":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/gfx\/volumetric-path-tracing-with-equiangular-sampling-in-2k\/","title":{"rendered":"Volumetric Path Tracing with Equiangular Samplingin a 2k binary executable file"},"content":{"rendered":"<div  class='avia-slideshow av-33zhi0-cff9c9c7741815594d4fc896ccddd823 avia-slideshow-magazine av_slideshow avia-slide-slider  avia-builder-el-0  el_before_av_hr  avia-builder-el-first  av-slideshow-ui av-slideshow-manual av-loop-once av-loop-manual-endless av-default-height-applied avia-slideshow-1' data-slideshow-options=\"{&quot;animation&quot;:&quot;slide&quot;,&quot;autoplay&quot;:false,&quot;loop_autoplay&quot;:&quot;once&quot;,&quot;interval&quot;:5,&quot;loop_manual&quot;:&quot;manual-endless&quot;,&quot;autoplay_stopper&quot;:false,&quot;noNavigation&quot;:false,&quot;bg_slider&quot;:false,&quot;keep_padding&quot;:false,&quot;hoverpause&quot;:false,&quot;show_slide_delay&quot;:0}\"  itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><ul class='avia-slideshow-inner ' style='padding-bottom: 52.816901408451%;'><li  class='avia-slideshow-slide av-33zhi0-cff9c9c7741815594d4fc896ccddd823__0  av-single-slide slide-1 slide-odd'><div data-rel='slideshow-1' class='avia-slide-wrap '   ><div class='av-slideshow-caption av-33zhi0-cff9c9c7741815594d4fc896ccddd823__0 avia-caption'><div class=\"avia-inner-caption\"><h2 class='avia-caption-title '  itemprop=\"name\" >Volumetric Path Tracing with Equiangular Sampling<\/h2><\/div><\/div><img decoding=\"async\" fetchpriority=\"high\" class=\"wp-image-3020 avia-img-lazy-loading-not-3020\"  src=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/07\/equi3-710x375.png\" width=\"710\" height=\"375\" title='equiangular' alt='Participating Media With Equiangular Sampling'  itemprop=\"thumbnailUrl\" srcset=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/07\/equi3-710x375.png 710w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/07\/equi3-300x159.png 300w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/07\/equi3-450x239.png 450w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/div><\/li><\/ul><\/div>\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-2oaxfc-d28cdd0eab5a8f729f3262013c5c2b08\">\n#top .hr.hr-invisible.av-2oaxfc-d28cdd0eab5a8f729f3262013c5c2b08{\nheight:25px;\n}\n<\/style>\n<div  class='hr av-2oaxfc-d28cdd0eab5a8f729f3262013c5c2b08 hr-invisible  avia-builder-el-1  el_after_av_slideshow  el_before_av_one_full '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div>\n<div  class='flex_column av-q54doo-2a5d3c1da768cf106822434e4dd6fe6d av_one_full  avia-builder-el-2  el_after_av_hr  el_before_av_hr  first flex_column_div  '     ><p>\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-av_heading-25a673467b06f519ce47c0ec93dedf71\">\n#top .av-special-heading.av-av_heading-25a673467b06f519ce47c0ec93dedf71{\npadding-bottom:10px;\n}\nbody .av-special-heading.av-av_heading-25a673467b06f519ce47c0ec93dedf71 .av-special-heading-tag .heading-char{\nfont-size:25px;\n}\n.av-special-heading.av-av_heading-25a673467b06f519ce47c0ec93dedf71 .av-subheading{\nfont-size:15px;\n}\n<\/style>\n<div  class='av-special-heading av-av_heading-25a673467b06f519ce47c0ec93dedf71 av-special-heading-h3 meta-heading  avia-builder-el-3  el_before_av_textblock  avia-builder-el-first '><h3 class='av-special-heading-tag '  itemprop=\"headline\"  >Volumetric Path Tracing with Equiangular Sampling &#8211; Abstract<\/h3><div class=\"special-heading-border\"><div class=\"special-heading-inner-border\"><\/div><\/div><\/div><br \/>\n<section  class='av_textblock_section av-lvjtwo-df14d07ac2c9e689ffc78160fdd072ca '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/CreativeWork\" ><div class='avia_textblock'  itemprop=\"text\" ><p style=\"text-align: justify;\"><span class='av_dropcap2 av-av_dropcap2-21c86f7a1fbddaa06b9d9923710e6bba'>T<\/span>his is a GPU implementation of Christopher Kulla and Marcos Fajardo&#8217;s EGSR paper, <strong><em>&#8220;<a href=\"https:\/\/www.solidangle.com\/research\/egsr2012_volume.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Importance Sampling Techniques for Path Tracing in\u00a0Participating Media<\/a>&#8221; &#8211;<\/em><\/strong>\u00a0in a nutshell, this is volumetric path tracing with a novel importance sampling technique called equiangular sampling that is used to minimize\u00a0the variance of a fixed sample budget. This algorithm is capable of creating stunning imagery akin to the rocket launching scene in the feature film <strong><a href=\"https:\/\/www.youtube.com\/watch?v=PJ3sHTgd7Q4\" target=\"_blank\" rel=\"noopener noreferrer\">Men in Black 3<\/a><\/strong>\u00a0(click or see the paper link above for images). The goal was to create a binary executable file that weighs in at <strong>less than 4 kilobytes in size<\/strong> and runs the algorithm in real time. The results are the following: one bare bones implementation <em>(1570 bytes)<\/em>, and one with simple ray-sphere intersections and\u00a0visibility checks <em>(1890 bytes)<\/em>. Note that it is based on an equiangular sampling implementation on <strong><a href=\"https:\/\/www.shadertoy.com\/view\/Xdf3zB\" target=\"_blank\" rel=\"noopener noreferrer\">shadertoy<\/a><\/strong>, make sure to check it out! I think an extension with heterogeneous participating media and Woodcock tracking would still fit easily in less than 3k.<\/p>\n<\/div><\/section><\/p><\/div><div  class='hr av-kgyex4-3c16db6a27ba5a9b283eceb69f4beb74 hr-default  avia-builder-el-5  el_after_av_one_full  el_before_av_one_full '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div><\/p>\n<div  class='flex_column av-ifxlko-db0da309c27f9c3d2ec504c4a07219ca av_one_full  avia-builder-el-6  el_after_av_hr  el_before_av_one_third  first flex_column_div  '     ><style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-i6qga0-f6612747f1b75e8cf6c32df05198a5f8\">\n#top .av-special-heading.av-i6qga0-f6612747f1b75e8cf6c32df05198a5f8{\npadding-bottom:10px;\n}\nbody .av-special-heading.av-i6qga0-f6612747f1b75e8cf6c32df05198a5f8 .av-special-heading-tag .heading-char{\nfont-size:25px;\n}\n.av-special-heading.av-i6qga0-f6612747f1b75e8cf6c32df05198a5f8 .av-subheading{\nfont-size:15px;\n}\n<\/style>\n<div  class='av-special-heading av-i6qga0-f6612747f1b75e8cf6c32df05198a5f8 av-special-heading-h3 meta-heading  avia-builder-el-7  avia-builder-el-no-sibling '><h3 class='av-special-heading-tag '  itemprop=\"headline\"  >Resources<\/h3><div class=\"special-heading-border\"><div class=\"special-heading-inner-border\"><\/div><\/div><\/div><\/div>\n<div  class='flex_column av-ge84vs-879399afd2ad4702ab2b7cd856c086b5 av_one_third  avia-builder-el-8  el_after_av_one_full  el_before_av_one_third  first flex_column_div  column-top-margin'     ><p>\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-emrr88-1dd542f4be7666b2f46e8b7ccbe9a8f6\">\n.avia-image-container.av-emrr88-1dd542f4be7666b2f46e8b7ccbe9a8f6 img.avia_image{\nbox-shadow:none;\n}\n.avia-image-container.av-emrr88-1dd542f4be7666b2f46e8b7ccbe9a8f6 .av-image-caption-overlay-center{\ncolor:#ffffff;\n}\n<\/style>\n<div  class='avia-image-container av-emrr88-1dd542f4be7666b2f46e8b7ccbe9a8f6 av-styling- av-img-linked avia_animated_image av-animated-when-visible-95 left-to-right avia-align-center  avia-builder-el-9  el_before_av_textblock  avia-builder-el-first '   itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><div class=\"avia-image-container-inner\"><div class=\"avia-image-overlay-wrap\"><a href=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular.zip\" class='avia_image '  target=\"_blank\"  rel=\"noopener noreferrer\" aria-label='code-icon'><img decoding=\"async\" width=\"180\" height=\"180\" fetchpriority=\"high\" class='wp-image-2653 avia-img-lazy-loading-not-2653 avia_image ' src=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-180x180.png\" alt='' title='code-icon'   itemprop=\"thumbnailUrl\" srcset=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-180x180.png 180w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-80x80.png 80w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-36x36.png 36w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-120x120.png 120w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/02\/code-icon-450x450.png 450w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/><\/a><\/div><\/div><\/div><br \/>\n<section  class='av_textblock_section av-4fqs8-f8dbbcb8c8948877247dfc0ff8cb3dcc '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/CreativeWork\" ><div class='avia_textblock'  itemprop=\"text\" ><p style=\"text-align: center;\"><strong>Windows\u00a0executable<\/strong><\/p>\n<\/div><\/section><\/p><\/div>\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-a8v660-92ee41bec699591bf7bb772a1b2db7cc\">\n.flex_column.av-a8v660-92ee41bec699591bf7bb772a1b2db7cc{\nborder-radius:0px 0px 0px 0px;\npadding:0px 0px 0px 0px;\n}\n<\/style>\n<div  class='flex_column av-a8v660-92ee41bec699591bf7bb772a1b2db7cc av_one_third  avia-builder-el-11  el_after_av_one_third  el_before_av_hr  flex_column_div av-zero-column-padding  column-top-margin'     ><p>\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-vljeg-3f5eb648bc283dc8cee9636700064b73\">\n.avia-image-container.av-vljeg-3f5eb648bc283dc8cee9636700064b73 img.avia_image{\nbox-shadow:none;\n}\n.avia-image-container.av-vljeg-3f5eb648bc283dc8cee9636700064b73 .av-image-caption-overlay-center{\ncolor:#ffffff;\n}\n<\/style>\n<div  class='avia-image-container av-vljeg-3f5eb648bc283dc8cee9636700064b73 av-styling- av-img-linked avia_animated_image av-animated-when-visible-95 left-to-right avia-align-center  avia-builder-el-12  el_before_av_textblock  avia-builder-el-first '   itemprop=\"image\" itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/ImageObject\" ><div class=\"avia-image-container-inner\"><div class=\"avia-image-overlay-wrap\"><a href=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary.png\" class='avia_image '  target=\"_blank\"  rel=\"noopener noreferrer\" aria-label='equiangular_binary'><img decoding=\"async\" width=\"180\" height=\"180\" fetchpriority=\"high\" class='wp-image-3010 avia-img-lazy-loading-not-3010 avia_image ' src=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary-180x180.png\" alt='' title='equiangular_binary'   itemprop=\"thumbnailUrl\" srcset=\"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary-180x180.png 180w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary-80x80.png 80w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary-36x36.png 36w, https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp\/wp-content\/uploads\/2014\/06\/equiangular_binary-120x120.png 120w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/><\/a><\/div><\/div><\/div><br \/>\n<section  class='av_textblock_section av-7knit4-f79923d2b9596f5ac6307f20a9f7f1ba '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/CreativeWork\" ><div class='avia_textblock'  itemprop=\"text\" ><p style=\"text-align: center;\"><strong>Image of the binary<\/strong><\/p>\n<\/div><\/section><\/p><\/div>\n\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-69bznc-5f6b1b03fd95dd4c558de844f5164056\">\n#top .hr.hr-invisible.av-69bznc-5f6b1b03fd95dd4c558de844f5164056{\nheight:15px;\n}\n<\/style>\n<div  class='hr av-69bznc-5f6b1b03fd95dd4c558de844f5164056 hr-invisible  avia-builder-el-14  el_after_av_one_third  el_before_av_video '><span class='hr-inner '><span class=\"hr-inner-style\"><\/span><\/span><\/div>\n<div  class='avia-video av-3z4108-9c6c5a66197d8b5c8f43908c47a4e87f avia-video-16-9 av-no-preview-image avia-video-load-always av-lazyload-immediate av-lazyload-video-embed'  itemprop=\"video\" itemtype=\"https:\/\/schema.org\/VideoObject\"  data-original_url='https:\/\/www.youtube.com\/watch?v=Zwj94pIAwzg'><script type='text\/html' class='av-video-tmpl'><div class='avia-iframe-wrap'><iframe loading=\"lazy\" width=\"1500\" height=\"844\" src=\"https:\/\/www.youtube.com\/embed\/Zwj94pIAwzg?feature=oembed&autoplay=0&loop=0&controls=1&mute=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/div><\/script><div class='av-click-to-play-overlay'><div class=\"avia_playpause_icon\"><\/div><\/div><\/div>\n<div  class='avia-video av-37vg2w-288272c2675114d279951de7aed75ac2 avia-video-16-9 av-no-preview-image avia-video-load-always av-lazyload-immediate av-lazyload-video-embed'  itemprop=\"video\" itemtype=\"https:\/\/schema.org\/VideoObject\"  data-original_url='https:\/\/www.youtube.com\/watch?v=XbuEYcFfl6s&t=94s'><script type='text\/html' class='av-video-tmpl'><div class='avia-iframe-wrap'><iframe loading=\"lazy\" width=\"1500\" height=\"844\" src=\"https:\/\/www.youtube.com\/embed\/XbuEYcFfl6s?start=94&feature=oembed&autoplay=0&loop=0&controls=1&mute=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/div><\/script><div class='av-click-to-play-overlay'><div class=\"avia_playpause_icon\"><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":3020,"template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"tags":[97,96,94,182,95,43,183],"portfolio_category":[],"portfolio_tag":[37],"portfolio_entries":[],"class_list":["post-3016","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry","tag-2k","tag-4k","tag-equiangular-sampling","tag-global-illumination","tag-participating-media","tag-path-tracing","tag-rendering","portfolio_tag-global-illumination"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio\/3016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/types\/portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":46,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio\/3016\/revisions"}],"predecessor-version":[{"id":4827,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio\/3016\/revisions\/4827"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/media\/3020"}],"wp:attachment":[{"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/tags?post=3016"},{"taxonomy":"portfolio_category","embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio_category?post=3016"},{"taxonomy":"portfolio_tag","embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio_tag?post=3016"},{"taxonomy":"portfolio_entries","embeddable":true,"href":"https:\/\/users.cg.tuwien.ac.at\/zsolnai\/wp-json\/wp\/v2\/portfolio_entries?post=3016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}