<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Julius Ihle &#187; compositing</title>
	<atom:link href="http://julius-ihle.de/?feed=rss2&#038;tag=compositing" rel="self" type="application/rss+xml" />
	<link>http://julius-ihle.de</link>
	<description>LookDev/Lighting TD &#124; Compositor</description>
	<lastBuildDate>Sun, 18 Jun 2023 07:39:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Digital Tutors/Pluralsight Training Release</title>
		<link>http://julius-ihle.de/?p=641</link>
		<comments>http://julius-ihle.de/?p=641#comments</comments>
		<pubDate>Sat, 20 Feb 2016 14:20:23 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aov]]></category>
		<category><![CDATA[aovs]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[diffuse]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[multipass]]></category>
		<category><![CDATA[refraction]]></category>
		<category><![CDATA[shading]]></category>
		<category><![CDATA[specular]]></category>
		<category><![CDATA[texturing]]></category>
		<category><![CDATA[vfx]]></category>
		<category><![CDATA[visual effects]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=641</guid>
		<description><![CDATA[A few months back Digital Tutors/Pluralsight have picked me up to release a training series with them. It&#8217;s entitled Intermediate to Advanced AOV Manipulation Techniques&#8230;<p><a href="http://julius-ihle.de/?p=641" class="more-link post-excerpt-readmore"><span class="more-link-inner">Read more</span><span class="more-link-brd"></span></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://julius-ihle.de/?p=641"><img class="lazyload alignleft wp-image-642" data-original="http://julius-ihle.de/wp-content/uploads/2016/02/dt.png" alt="dt" width="800" height="333" /></a></p>
<p>A few months back Digital Tutors/Pluralsight have picked me up to release a training series with them. It&#8217;s entitled <strong><span style="text-decoration: underline;"><a title="Intermediate-to-Advanced-AOV-Manipulation-Techniques-in-NUKE" href="https://www.pluralsight.com/courses/intermediate-advanced-aov-manipulation-techniques-nuke-2397" target="_blank">Intermediate to Advanced AOV Manipulation Techniques in NUKE</a></span></strong>. In it I will be showing some tips/tricks to work as efficiently as possible with multipass renders. It starts by giving a brief introduction to AOV&#8217;s for newcomers, just so that everyone is on the same page but will quickly ramp up into more advanced topics.<br />
After the introductions I prepared a small project to integrate a CG car into a live action environment. Tweaking it to make it look good in the shot and an indepth rundown on why I do what are just a few of the things I will be discussing.</p>
<p>Also check out some before/after screenshots of the CG slapcomp vs the final composite to get a rough idea:<span id="more-641"></span></p>
<p style="text-align: left;">  <a href="http://julius-ihle.de/wp-content/uploads/2016/02/dt_training_slap.png" target="_blank"><img class="lazyload alignleft wp-image-644" data-original="http://julius-ihle.de/wp-content/uploads/2016/02/dt_training_slap.png" alt="dt_training_slap" width="600" height="338" /></a> <a href="http://julius-ihle.de/wp-content/uploads/2016/02/dt_training_final.png"><img class="lazyload alignleft wp-image-643" data-original="http://julius-ihle.de/wp-content/uploads/2016/02/dt_training_final.png" alt="dt_training_final" width="600" height="338" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=641</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ground Contact Masks</title>
		<link>http://julius-ihle.de/?p=218</link>
		<comments>http://julius-ihle.de/?p=218#comments</comments>
		<pubDate>Sun, 03 Aug 2014 09:52:46 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aov]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[mask]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[passes]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=218</guid>
		<description><![CDATA[Integrating CG into uneven soil is an interesting challenge. On a recent show we had to integrate CG characters into plates which often had a&#8230;<p><a href="http://julius-ihle.de/?p=218" class="more-link post-excerpt-readmore"><span class="more-link-inner">Read more</span><span class="more-link-brd"></span></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://julius-ihle.de/?p=218"><img class="lazyload alignnone wp-image-260" data-original="http://julius-ihle.de/wp-content/uploads/2014/08/grouncontact-1024x426.jpg" alt="grouncontact" width="800" height="333" /></a></p>
<p>Integrating CG into uneven soil is an interesting challenge. On a recent show we had to integrate CG characters into plates which often had a grassy ground. For Comp it&#8217;s benefitial if you get masks from Rendering to aid the blending of the CG elements into the grass. If the ground the characters are walking on is flat this can easily be achieved with a standard PWorld AOV. It get&#8217;s a bit trickier though if the characters are walking up a hill or a similarly uneven surface, because the coordinates at which the character comes in contact with the ground are constantly changing. I&#8217;ve been trying to come up with a system to make a Comper&#8217;s life easier and found a relatively simple solution.<span id="more-218"></span></p>
<p>So here&#8217;s a simple example scene with a sphere and a bumpy ground:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2014/08/01_scene.png"><img class="lazyload wp-image-263 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2014/08/01_scene-300x195.png" alt="01_scene" width="444" height="288" /></a></p>
<p style="text-align: left;">First of all I wanted to have a point on the sphere and a corresponding point on the groundplane right below that travels wherever the sphere moves. That way it&#8217;s easy to always get the closest distance of the ground to the sphere. A simple way to achieve this is to create a locator and constrain it to the sphere with a Closest Point Constraint. This will add 2 more locators to the scene: cpConstraintIn at the position where the locator was placed and cpConstraintPos which sticks to the surface of the sphere and is always on the closest point of the sphere to cpConsteraintIn.  The original locator that was created can be deleted. Depending on the scene a Point to Poly Constraint might be a more viable solution, such as when there&#8217;s a character moving over the ground, because it may be more desirable to have locators bound to each foot. In this case I chose a Closest Point Constraint because this will give the ability to rotate or scale the sphere and still have the system work eventually (a practical example would be a barrel rolling down a hill for example).<br />
Now one can move the sphere slightly up so that both locators are right above each other and Point Constraint the X and Z axis of cpConstraintIn to cpConstraintPos with maintaining the offset so that cpConstraintIn always travels along wherever the sphere moves. To make cpConstraintIn stick to the bumpy groundplane it can be Geometry Constraint&#8217;ed to it. For now this should give you something like this:</p>
<div style="width: 640px; " class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-218-1" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="http://julius-ihle.de/wp-content/uploads/2014/08/03_constraints.mp4?_=1" /><a href="http://julius-ihle.de/wp-content/uploads/2014/08/03_constraints.mp4">http://julius-ihle.de/wp-content/uploads/2014/08/03_constraints.mp4</a></video></div>
<p style="text-align: left;">Next thing that needs to be done is the coloration whenever both surfaces are coming closer to each other. I created a ramp as a perspective projection with white on the bottom and black on the top. Once again this could be done with a separate UV set instead of a projection but the projection approach gives the flexibility of being independend of the UV&#8217;s and have the system also work in situations when the object is rotating for example. To make sure that the part where the ground is is always white I placed the place3dTexture node (that got created when I created the ramp as a projection) so that the lower edge would be slightly below the cpConstraintIn locator. I then point constrained the place3dTexture from the ramp to this locator so that the white section would always be according to where the sphere might touch the ground.</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2014/08/04_3dmap.png"><img class="lazyload wp-image-264 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2014/08/04_3dmap-300x124.png" alt="04_3dmap" width="559" height="231" /></a></p>
<p style="text-align: left;">In the ramp one can now easily set the desired falloff and it should be all good to go:</p>
<div style="width: 640px; " class="wp-video"><video class="wp-video-shortcode" id="video-218-2" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="http://julius-ihle.de/wp-content/uploads/2014/08/06_final_setup2.mp4?_=2" /><a href="http://julius-ihle.de/wp-content/uploads/2014/08/06_final_setup2.mp4">http://julius-ihle.de/wp-content/uploads/2014/08/06_final_setup2.mp4</a></video></div>
<p style="text-align: left;">The result can be piped into a custom AOV to deliver to comp for mixing it with a bit of noise and all that fancy stuff to make the elements sit properly in the plate.</p>
<p style="text-align: left;">Here&#8217;s a more practical example using point to poly constraints and a bit more effort being put into the setup:</p>
<div style="width: 640px; " class="wp-video"><video class="wp-video-shortcode" id="video-218-3" width="640" height="360" loop="1" preload="metadata" controls="controls"><source type="video/mp4" src="http://53035544.de.strato-hosting.eu/data/groundmask_test_v004.mp4?_=3" /><a href="http://53035544.de.strato-hosting.eu/data/groundmask_test_v004.mp4">http://53035544.de.strato-hosting.eu/data/groundmask_test_v004.mp4</a></video></div>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=218</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://julius-ihle.de/wp-content/uploads/2014/08/03_constraints.mp4" length="1698299" type="video/mp4" />
<enclosure url="http://julius-ihle.de/wp-content/uploads/2014/08/06_final_setup2.mp4" length="734544" type="video/mp4" />
<enclosure url="http://53035544.de.strato-hosting.eu/data/groundmask_test_v004.mp4" length="3030813" type="video/mp4" />
		</item>
		<item>
		<title>HDR Prepper Nuke Gizmo for IBL (Updated!)</title>
		<link>http://julius-ihle.de/?p=156</link>
		<comments>http://julius-ihle.de/?p=156#comments</comments>
		<pubDate>Sun, 10 Nov 2013 17:55:17 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[hdri]]></category>
		<category><![CDATA[ibl]]></category>
		<category><![CDATA[image based lighting]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[nuke]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=156</guid>
		<description><![CDATA[Image based lighting often times simplifies getting started with a good lighting setup when trying to integrate CG into life action. Often times it&#8217;s beneficial&#8230;<p><a href="http://julius-ihle.de/?p=156" class="more-link post-excerpt-readmore"><span class="more-link-inner">Read more</span><span class="more-link-brd"></span></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://julius-ihle.de/?p=156"><img class="lazyload alignleft wp-image-2179" data-original="http://julius-ihle.de/wp-content/uploads/2013/11/hdrprepper.jpg" alt="hdrprepper" width="800" height="333" /></a></p>
<p>Image based lighting often times simplifies getting started with a good lighting setup when trying to integrate CG into life action. Often times it&#8217;s beneficial to have the IBL sphere to just contain the ambient lights from the environment and therefore to paint out any actual light sources from the set. Those can then be used on separate lights to give the main illumination from the set lights, while the IBL sphere contributes ambient environment light. Now, if you have a lot of different environments and consequently a lot of different HDR&#8217;s it can be tedious to paint out the lights and output them after that&#8230; <span id="more-156"></span>Apart from all the other work that needs to be done anyway (merge to hdr, stitch, match to plate, etc.). Sooo, let&#8217;s try to speed things up a bit&#8230; once again :)</p>
<p><strong>//01.04.2014 Update</strong></p>
<p>I was working on a Nuke gizmo that takes care of removing lights from an HDR with as little effort as possible. Upon creating the Gizmo you will be presented with a bounding box. This area should contain a light within the scene that you want to extract. Just put it tightly around a light source. If the HDR contains a light which isn&#8217;t planar to fit into the rectangle you can plug in an alpha into the &#8220;Mask&#8221; input. After you cleaned up one light you can proceed with adding another HDR_Prepper node to remove as many lights as you wish.<br />
The Gizmo UI is divided into 3 sections:</p>
<p><img class="lazyload" alt="" /><a href="http://julius-ihle.de/wp-content/uploads/2013/11/hdr_prepper_v02_properties.png"><img class="lazyload aligncenter size-full wp-image-2277" data-original="http://julius-ihle.de/wp-content/uploads/2013/11/hdr_prepper_v02_properties.png" alt="hdr_prepper_v02_properties" width="604" height="670" /></a></p>
<p>The &#8220;Light Removal Settings&#8221; tab contains settings to ease the removal of light sources. It basically works by smearing in edge pixels of the crop area. Most of the knobs should be more or less self-explanatory. Either refer to the tooltips or watch the example demo further down this post :)<br />
The topmost part of the gizmo deals with outputting both the extracted lights and the cleaned up HDR. The output path is the root path to where both the HDR as well as the lights will be rendered to. If you have multiple light sources and consequently many HDR_Prepper nodes in your script you can hit the &#8220;Set all to this folder&#8221; button to make all other HDR_Prepper nodes use the same output path.<br />
The &#8220;Light Name&#8221; is the name of the output for the given light that you are removing. Therefore each light needs to have a unique name, because otherwise they will just overwrite each other. If you have multiple lights of the same type (e.g. multiple computer monitors that illuminate the scene) you can call one of them &#8220;screen&#8221; or &#8220;screen1&#8243; for example, select all the other nodes which are used for the other screens and hit &#8220;Set selected to this name&#8221;. That way the selected HDR_Preppers will be called like the current one numbered numerically.<br />
The &#8220;Env HDR Output&#8221; section deals with outputting the cleaned HDR. You can give it a name, specify a format of your choice and choose wheter to convolve the output or not. Once your settings are set you just have to hit &#8220;Create Env Output&#8221; and the corresponding nodes will be created with the settings you have chosen. Keep in mind that you need to have the <a title="EnvConvolve" href="http://www.nukepedia.com/gizmos/filter/envconvolve" target="_blank">EnvConvole Gizmo</a> installed, otherwhise this section won&#8217;t work.</p>
<p>Aaaand again, demos explain it best, so here you go :) :</p>
<p><iframe src="//player.vimeo.com/video/90675497" width="500" height="293" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><a href="http://vimeo.com/90675497">HDR Prepper Update (Nuke Gizmo)</a> from <a href="http://vimeo.com/julsvfx">Julius Ihle</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<p>The gizmo itself can be obtained <a title="DOWNLOAD" href="http://53035544.de.strato-hosting.eu/perso/HDR_Prepper.gizmo" target="_blank"><span style="text-decoration: underline;">HERE</span></a>.</p>
<p>(So far only been tested on Linux but should work regardless of the OS.)</p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=156</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Prep Work Tips</title>
		<link>http://julius-ihle.de/?p=65</link>
		<comments>http://julius-ihle.de/?p=65#comments</comments>
		<pubDate>Fri, 29 Mar 2013 18:32:32 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[nuke]]></category>
		<category><![CDATA[paint]]></category>
		<category><![CDATA[prep]]></category>
		<category><![CDATA[rig removal]]></category>
		<category><![CDATA[roto]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=65</guid>
		<description><![CDATA[Sooner or later there&#8217;s always a project where lot&#8217;s of things have to be removed. Sometimes there&#8217;s not only the quantity but also the quality&#8230;<p><a href="http://julius-ihle.de/?p=65" class="more-link post-excerpt-readmore"><span class="more-link-inner">Read more</span><span class="more-link-brd"></span></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://julius-ihle.de/?p=65"><img class="lazyload alignleft wp-image-2193" data-original="http://julius-ihle.de/wp-content/uploads/2013/03/removing_stuff.jpg" alt="removing_stuff" width="800" height="333" /></a></p>
<p>Sooner or later there&#8217;s always a project where lot&#8217;s of things have to be removed. Sometimes there&#8217;s not only the quantity but also the quality of work required to get good looking results. There are probably not a lot of people out there who love doing this, but it has to be done, so here are a few snippets of tips I learned over the last few months.<span id="more-65"></span></p>
<p>The first one is rather straight forward. It can give a good base for wire removal on moving shots where the wire is also moving. First of all stabilize your shot with a Tracker or a track from Mocha. After that you can time offset that stabilized clip a few frames until the wire has moved to another spot. Now just reapply the motion that you previously stabilized on the same reference frame. That way you will have essentially pretty much the same plate but the wire being offset. Now it&#8217;s just a matter of painting and keymixing to get a good base for a working wire removal.</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2013/03/screenshot_wr.png"><img class="lazyload aligncenter size-full wp-image-2279" data-original="http://julius-ihle.de/wp-content/uploads/2013/03/screenshot_wr.png" alt="screenshot_wr" width="1236" height="660" /></a></p>
<p>&nbsp;</p>
<p>The second one requires a bit more work. It&#8217;s pretty useful for wire removals aswell. You first of all need a proper set geometry of the shot you are working on aswell as a matchmoved camera. As soon as you got both into Nuke just go ahead and project the framerange through the moving camera onto the setgeometry. Pick a good frame where you can see most of the range you need to work, freeze the camera at that point and use it to render the sequence through a scanline renderer. What you now have is the whole sequence which is properly stabilized. If there is a bigger camera move and you want to get access to the whole stabilization you can add a crop below the renderer to ensure you encompass everything you need. At this point you can do a comparatively easy cleanup on your stabilized shot. To get back to your actual movement from the shot just your cleaned up stabilization through the frozen camera from before back onto the set geometry and scanline-render it through your shot camera. The description might be a bit cryptic, so here&#8217;s a quick screenshot which probably gives a better visual sense of what is going on :)</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2013/03/screenshot_cleanup_cl_copy.png"><img class="lazyload aligncenter size-full wp-image-2280" data-original="http://julius-ihle.de/wp-content/uploads/2013/03/screenshot_cleanup_cl_copy.png" alt="screenshot_cleanup_cl_copy" width="1262" height="1174" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
