{"id":18416,"date":"2017-02-15T19:44:30","date_gmt":"2017-02-16T00:44:30","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=18416"},"modified":"2017-02-15T19:44:30","modified_gmt":"2017-02-16T00:44:30","slug":"continuing-the-ray-tracing-breakdown-story","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=18416","title":{"rendered":"Continuing the ray tracing breakdown story"},"content":{"rendered":"<p>My recent <a href=http:\/\/blog.kenperlin.com\/?p=18345>raytracing breakdown<\/a> was, in a sense, the beginning of a story.  It was, in particular, the first part of a story about implementing a ray tracer in a WebGL fragment shader.<\/p>\n<p>As the computer graphics class I&#8217;m teaching this semester has progressed, I&#8217;ve added more chapters to that story.  With each new chapter, the reader learns a bit more about raytracing.<\/p>\n<p>If you want to see how far the story has gotten, click on the image below.<\/p>\n<p><center><a href=http:\/\/mrl.nyu.edu\/~perlin\/raytrace2_breakdown><img decoding=\"async\" src=\"http:\/\/blog.kenperlin.com\/wp-content\/uploads\/2017\/02\/raytrace2_breakdown.png\"><\/a><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>My recent raytracing breakdown was, in a sense, the beginning of a story. It was, in particular, the first part of a story about implementing a ray tracer in a WebGL fragment shader. As the computer graphics class I&#8217;m teaching this semester has progressed, I&#8217;ve added more chapters to that story. With each new chapter, &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=18416\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Continuing the ray tracing breakdown story&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/18416"}],"collection":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18416"}],"version-history":[{"count":1,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/18416\/revisions"}],"predecessor-version":[{"id":18418,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/18416\/revisions\/18418"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18416"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}