{"id":4831,"date":"2018-09-17T09:49:42","date_gmt":"2018-09-17T15:49:42","guid":{"rendered":"http:\/\/www.realtimerendering.com\/blog\/?p=4831"},"modified":"2018-09-17T19:25:06","modified_gmt":"2018-09-18T01:25:06","slug":"best-birthday-evar","status":"publish","type":"post","link":"https:\/\/www.realtimerendering.com\/blog\/best-birthday-evar\/","title":{"rendered":"Best Birthday Evar"},"content":{"rendered":"<p>This last week I&#8217;ve been working a bit on stuffing Sphereflake into Chris Wyman&#8217;s sphere intersection demo for DXR. See <strong><a href=\"http:\/\/erich.realtimerendering.com\/rtrt\/index.html\">my gallery of real-time ray tracing experiments<\/a><\/strong> for eye candy, statistics, and commentary.<\/p>\n<p>This is my first DXR program (really, just a modification of Chris&#8217;s), and two things impressed me:<\/p>\n<ul>\n<li>Sheer speed and size of what can be rendered in real-time now vs. 32 years ago: 60 FPS vs. 60+ minutes per frame (~216Kx speedup there alone), 48 million spheres vs. 7k spheres, 1920 x 1110 vs. 512 x 512. And this is on a currently-available GPU that <a href=\"https:\/\/www.theinquirer.net\/inquirer\/news\/3062823\/nvidia-rtx-2080-ti-delay\">will be considerably surpassed in ten days<\/a>\u00a0with the release of the GTX 2080ti and friends.<\/li>\n<li>Programmability: add depth of field? Just jitter the eye ray&#8217;s origin. Want soft shadows? Jitter the shadow ray directions. Adding soft shadows took me about 15 minutes this morning, as a birthday treat to myself.<\/li>\n<\/ul>\n<p>In all fairness, depth of field and soft shadows and whatnot are noisy, since I initially cast a single ray per pixel. I don&#8217;t use denoising, which is something that&#8217;s critical for acceptable real-time ray tracing performance whenever such effects are used. The images I show are what I see after a minute (or whenever I happened to do the screen capture; after a few seconds things usually looked good).<\/p>\n<p>All that said, playing with the renderer is a lot of fun now. Add some path tracer functionality here or there and you have a new effect &#8211; no hours of hacky &#8220;rasterize and then do some funky post-processing effects.&#8221; I see this as a huge boon to CAD and pre-visualization packages that want to quickly add new effects or have users rapidly try out variants. It&#8217;s dangerously addictive, as I now want to add glossy reflection&#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4832\" src=\"http:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows.png\" alt=\"\" width=\"1921\" height=\"1112\" srcset=\"https:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows.png 1921w, https:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows-300x174.png 300w, https:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows-768x445.png 768w, https:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows-1024x593.png 1024w, https:\/\/www.realtimerendering.com\/blog\/wp-content\/uploads\/2018\/09\/sphereflake_48M_shadows-500x289.png 500w\" sizes=\"auto, (max-width: 1921px) 100vw, 1921px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This last week I&#8217;ve been working a bit on stuffing Sphereflake into Chris Wyman&#8217;s sphere intersection demo for DXR. See my gallery of real-time ray tracing experiments for eye candy, statistics, and commentary. This is my first DXR program (really, just a modification of Chris&#8217;s), and two things impressed me: Sheer speed and size of [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[],"class_list":["post-4831","post","type-post","status-publish","format-standard","hentry","category-reports"],"_links":{"self":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/4831","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=4831"}],"version-history":[{"count":3,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/4831\/revisions"}],"predecessor-version":[{"id":4836,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/posts\/4831\/revisions\/4836"}],"wp:attachment":[{"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/media?parent=4831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/categories?post=4831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.realtimerendering.com\/blog\/wp-json\/wp\/v2\/tags?post=4831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}