{"id":254,"date":"2019-12-11T01:53:43","date_gmt":"2019-12-11T01:53:43","guid":{"rendered":"https:\/\/ben.stevuliak.net\/?p=254"},"modified":"2019-12-11T21:10:06","modified_gmt":"2019-12-11T21:10:06","slug":"compositing-for-vfx-cg-rebuild","status":"publish","type":"post","link":"https:\/\/ben.stevuliak.net\/index.php\/2019\/12\/11\/compositing-for-vfx-cg-rebuild\/","title":{"rendered":"Compositing for VFX &#8211; CG Rebuild"},"content":{"rendered":"\n<p>This blog post is about the CG rebuild process in Nuke. All the rendered elements with respective AOVs were used to rebuild the final beauty pass. Below are images of all the AOVs displayed using the LayerContactSheet node inside Nuke. I added some additional passes as opposed to the final render from VX5001 &#8211; 3D for Visual effects, namely Cryptomatte passes and a Deep pass. I also turned off global motion vectors for camera motion blur, as this feature was not working as expected. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1288\" height=\"861\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_lcs.png\" alt=\"\" class=\"wp-image-257\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_lcs.png 1288w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_lcs-300x201.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_lcs-768x513.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_lcs-1024x685.png 1024w\" sizes=\"(max-width: 1288px) 100vw, 1288px\" \/><figcaption>Nuke Layer Contact Sheet node &#8211; Track openEXR render pass<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1290\" height=\"863\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_lcs.png\" alt=\"\" class=\"wp-image-259\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_lcs.png 1290w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_lcs-300x201.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_lcs-768x514.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_lcs-1024x685.png 1024w\" sizes=\"(max-width: 1290px) 100vw, 1290px\" \/><figcaption>Nuke Layer Contact Sheet node &#8211; Train openEXR render pass<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree-1024x709.png\"><img decoding=\"async\" width=\"1024\" height=\"709\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree-1024x709.png\" alt=\"\" data-id=\"263\" data-link=\"https:\/\/ben.stevuliak.net\/index.php\/2019\/12\/11\/compositing-for-vfx-cg-rebuild\/train_rbld_tree\/\" class=\"wp-image-263\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree-1024x709.png 1024w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree-300x208.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree-768x531.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/train_rbld_tree.png 1425w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Train rebuild node graph<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree-1024x876.png\"><img decoding=\"async\" width=\"1024\" height=\"876\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree-1024x876.png\" alt=\"\" data-id=\"262\" data-link=\"https:\/\/ben.stevuliak.net\/index.php\/2019\/12\/11\/compositing-for-vfx-cg-rebuild\/track_rbld_tree\/\" class=\"wp-image-262\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree-1024x876.png 1024w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree-300x257.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree-768x657.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/track_rbld_tree.png 1156w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Track rebuild node graph<\/figcaption><\/figure><\/li><\/ul>\n\n\n\n<p>These node graphs depict the setup for both train and the track rebuild. To avoid having to use holdout mattes, I rendered my passes in deepEXR from Arnold, which made the difficult compositing a bit simpler and helped me to add more specific effects into my composition. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"931\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/DeepMerge-1024x931.png\" alt=\"\" class=\"wp-image-266\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/DeepMerge-1024x931.png 1024w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/DeepMerge-300x273.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/DeepMerge-768x698.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/DeepMerge.png 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Deep Merge graph<\/figcaption><\/figure><\/div>\n\n\n\n<p>This graph shows the compositing process using deep &#8211; the CG rebuild outputs are piped in to DeepRecolor nodes, which recolor the deep data into whatever the input is. <\/p>\n\n\n\n<ul class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge-1024x627.png\" alt=\"\" data-id=\"267\" data-link=\"https:\/\/ben.stevuliak.net\/index.php\/2019\/12\/11\/compositing-for-vfx-cg-rebuild\/conventionalmerge\/\" class=\"wp-image-267\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge-1024x627.png 1024w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge-300x184.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge-768x470.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge-1568x960.png 1568w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/conventionalmerge.png 1651w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Classic Merge node<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" width=\"1024\" height=\"599\" src=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge-1024x599.png\" alt=\"\" data-id=\"268\" data-link=\"https:\/\/ben.stevuliak.net\/index.php\/2019\/12\/11\/compositing-for-vfx-cg-rebuild\/deepmerge-2\/\" class=\"wp-image-268\" srcset=\"https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge-1024x599.png 1024w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge-300x175.png 300w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge-768x449.png 768w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge-1568x917.png 1568w, https:\/\/ben.stevuliak.net\/wp-content\/uploads\/2019\/12\/deepmerge.png 1714w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>DeepMerge node<\/figcaption><\/figure><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This blog post is about the CG rebuild process in Nuke. All the rendered elements with respective AOVs were used to rebuild the final beauty pass. Below are images of all the AOVs displayed using the LayerContactSheet node inside Nuke. I added some additional passes as opposed to the final render from VX5001 &#8211; 3D [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4],"tags":[],"class_list":["post-254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-2d-vx5002","category-yr2","entry"],"_links":{"self":[{"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/posts\/254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/comments?post=254"}],"version-history":[{"count":6,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/posts\/254\/revisions"}],"predecessor-version":[{"id":269,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/posts\/254\/revisions\/269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/media\/255"}],"wp:attachment":[{"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/media?parent=254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/categories?post=254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ben.stevuliak.net\/index.php\/wp-json\/wp\/v2\/tags?post=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}