{"id":1238,"date":"2019-05-12T23:53:03","date_gmt":"2019-05-13T06:53:03","guid":{"rendered":"https:\/\/williamgs.com\/wp_backup\/blog\/?p=1238"},"modified":"2019-12-26T23:20:15","modified_gmt":"2019-12-27T07:20:15","slug":"unreal-retro-reflective-shading-model","status":"publish","type":"post","link":"https:\/\/williamgs.com\/wp_backup\/posts\/unreal-retro-reflective-shading-model\/","title":{"rendered":"Unreal Retro-Reflective Shading Model"},"content":{"rendered":"<p>Weekend project: added a new shading model that includes a retroreflective component.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/tpW4ipXALvY?rel=0&amp;showinfo=0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2019-05-12-23_44_19-M_RetroReflective_01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1241\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2019-05-12-23_44_19-M_RetroReflective_01.png\" alt=\"\" width=\"251\" height=\"130\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2019-05-12-23_44_19-M_RetroReflective_01.png 251w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2019-05-12-23_44_19-M_RetroReflective_01-150x78.png 150w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2019-05-12-23_44_19-M_RetroReflective_01-200x104.png 200w\" sizes=\"auto, (max-width: 251px) 100vw, 251px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>Improvements needed:<\/p>\n<ul>\n<li>Separate roughness for specular and retro-reflectivity<\/li>\n<li>Add parameter(s) for imperfect reflectors (inverse fresnel or something)<\/li>\n<li>Add RectLight support<\/li>\n<li>Check energy conservation since I&#8217;m basically just adding a 2nd specular term<\/li>\n<li>Environment reflections<\/li>\n<\/ul>\n<p>Anyway here&#8217;s a patch of the current code. This was done on the 4.20 branch:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/williamgs\/1c36db197c74e962c025a80138d81822.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Weekend project: added a new shading model that includes a retroreflective component.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[52,54,53,17,43],"class_list":["post-1238","post","type-post","status-publish","format-standard","hentry","category-tools","tag-c","tag-realtime","tag-retroreflectivity","tag-shading","tag-unreal-engine"],"_links":{"self":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/1238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/comments?post=1238"}],"version-history":[{"count":11,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/1238\/revisions"}],"predecessor-version":[{"id":1913,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/1238\/revisions\/1913"}],"wp:attachment":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/media?parent=1238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/categories?post=1238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/tags?post=1238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}