<?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; maya</title>
	<atom:link href="http://julius-ihle.de/?feed=rss2&#038;tag=maya" 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>HDR Prep Tip #1: Painting out Elements near Poles</title>
		<link>http://julius-ihle.de/?p=2283</link>
		<comments>http://julius-ihle.de/?p=2283#comments</comments>
		<pubDate>Sat, 14 Jan 2017 16:17:23 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[hdri]]></category>
		<category><![CDATA[high dynamic range]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[look development]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[nuke]]></category>
		<category><![CDATA[prep]]></category>
		<category><![CDATA[shading]]></category>
		<category><![CDATA[vfx]]></category>
		<category><![CDATA[visual effects]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=2283</guid>
		<description><![CDATA[I received a question the other day that was asking how I would approach painting out lights from LatLong HDRI&#8217;s that are near the bottom&#8230;<p><a href="http://julius-ihle.de/?p=2283" 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=2283"><img class="lazyload  wp-image-2290 alignleft" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/hdrpreptips1.png" alt="hdrpreptips1" width="800" height="333" /></a>I received a question the other day that was asking how I would approach painting out lights from LatLong HDRI&#8217;s that are near the bottom or the top of the image. Anything near those poles will usually be heavily distorted and are a pain to remove if you try to paint on the original map. However there&#8217;s quite an easy way to remove them in Nuke and at the same time get the lights to a nice and rectangular format for using them on area lights.</p>
<p><span id="more-2283"></span></p>
<p>The original question came up under the post of my HDR Prepper Gizmo for Nuke:</p>
<blockquote><p>I have a question, how do you adjust your lights that are skewed and need to be formatted to fit your area lights? Do you adjust your arealights scale to match your bounding boxes? This example is kind of made for this scenario however there are many lights that are distorted and need to be flattened for your arealights. Im curious as to how your workflow solves this.</p></blockquote>
<p>Which is a more than valid question as I have used a very simple-to-work-on example when I was demoing this Gizmo. However more than often in production the HDR&#8217;s you receive will most likely either have lights or other objects you might need to remove at the poles of the LatLong environment map.</p>
<p>A good example for it is this HDR map that I got from <a title="example HDR" href="https://hdrihaven.com/hdri.php?hdri=garage&amp;dl=no" target="_blank">HERE</a>:</p>
<p><img class="lazyload  size-full wp-image-2284 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/00baseHDR.png" alt="00baseHDR" width="1025" height="515" /></p>
<p>&nbsp;<br />
All the lights on the ceiling (especially the one circled in red) would be very hard to paint out like this and you would need to distort it heavily to get it straight and map it on an arealight.</p>
<p>Luckily there&#8217;s a node available in Nuke, that is called SphericalTransform. With this node you can convert between different environment map conventions (Latlong, Mirror ball, etc.). One thing you can do is convert your input Latitude / Longitude map to a cubic map. Visually what you can imagine what it&#8217;s doing is that it seemingly puts you in the middle of the environment map (at the original position of the camera) and allows you to look around from that point of view. The output will be undistorted from the point of view of the camera (provided you set your output format to a square format):</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2017/01/01st_ll_to_cubic.png"><img class="lazyload  size-full wp-image-2285 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/01st_ll_to_cubic.png" alt="01st_ll_to_cubic" width="1277" height="597" /></a></p>
<p>As you can see in this example I rotated my input around so that it looks at the ceiling and directly at the light that I am trying to remove. Now that exact light is nice and square and very easy to paint out:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2017/01/02st_paintout.png"><img class="lazyload  size-full wp-image-2286 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/02st_paintout.png" alt="02st_paintout" width="1282" height="598" /></a></p>
<p>Or you could also use this handy little thingy: <a title="HDR Prepper for Nuke" href="http://julius-ihle.de/?p=156" target="_blank">HDR Prepper Gizmo</a> ;)</p>
<p>Once that is done you can convert it back from <em>Cube</em> to <em>Lat Long map</em> with another Spherical Transform Node. There are 2 things to watch out for to make sure it matches your original HDR orientation:</p>
<ul>
<li>Make sure your <em>Input Rotation Order </em>is the inverse of your first Spherical Transform (e.g. ZXY -&gt; YXZ)</li>
<li>Negate all the numbers from your first Spherical Transform (e.g. 90 becomes -90 and vice-versa)</li>
</ul>
<p>&nbsp;</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2017/01/03st_cubic_to_ll_final_paintover.png"><img class="lazyload aligncenter size-full wp-image-2288" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/03st_cubic_to_ll_final_paintover.png" alt="03st_cubic_to_ll_final_paintover" width="1920" height="875" /></a></p>
<p>&nbsp;</p>
<p>You can then either make sure your alpha is completely opaque before converting it back to LatLong and merge it on top of your original or Keymix it back in in exactly the areas where you need it.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
<span style="color: #808080;">_________________________________________________</span><br />
<span style="color: #808080;"><span style="font-size: small;"> If this post has helped you in any way you can express your gratefulness by using the <em>Donate </em>Button below to buy me a coffee! :)</span></span><br />
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=VH5RW3YDWDJSQ" target="_blank" rel="nofollow"><img class="lazyload" data-original="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" alt="" /></a></p>
<div class="moz-text-html" lang="x-unicode">
<div><span style="font-size: small;"><span style="color: #808080;">3M5xNSV7g2NzVpHMqzYKhgoKJZ8CWa644m</span></span><br />
<img class="lazyload alignleft size-full wp-image-2576" data-original="http://julius-ihle.de/wp-content/uploads/2018/03/bc_ldgr_qrcode.png" alt="bc_ldgr_qrcode" width="128" height="128" /></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=2283</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Playing with OSL #1: 3D Shading Masks</title>
		<link>http://julius-ihle.de/?p=2266</link>
		<comments>http://julius-ihle.de/?p=2266#comments</comments>
		<pubDate>Tue, 03 Jan 2017 21:35:36 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[arnold]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[look development]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[open shading language]]></category>
		<category><![CDATA[shading]]></category>
		<category><![CDATA[vfx]]></category>
		<category><![CDATA[visual effects]]></category>
		<category><![CDATA[vray]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=2266</guid>
		<description><![CDATA[I have recently started getting into Shader Writing in OSL (actually rather Pattern Writing just to not get frustrated too quickly :-) ). To start&#8230;<p><a href="http://julius-ihle.de/?p=2266" 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=2266"><img class="lazyload alignleft wp-image-2267" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/osl_pmask.jpg" alt="osl_pmask" width="800" height="333" /></a></p>
<p>I have recently started getting into Shader Writing in OSL (actually rather Pattern Writing just to not get frustrated too quickly :-) ). To start things off I wrote a simple Pattern that lets you create a life 3d mask in your shading network that can be used to alter different shading effects in very particular areas of an object without the need to paint texture masks. On top of that being OSL it should work in any renderer that supports it (e.g. PRMan/RIS, Cycles in Blender, VRay, etc).</p>
<p><span id="more-2266"></span></p>
<p>The Pattern itself only has a few simple controls:</p>
<div id="attachment_2268" style="width: 453px" class="wp-caption aligncenter"><a href="http://julius-ihle.de/wp-content/uploads/2017/01/osl_PMask_UI.png"><img class="lazyload wp-image-2268 size-full" data-original="http://julius-ihle.de/wp-content/uploads/2017/01/osl_PMask_UI.png" alt="osl_pmask_ui" width="443" height="570" /></a><p class="wp-caption-text">PMask OSL Pattern inside Maya with RenderMan (PxrOSL Node)</p></div>
<p>&nbsp;</p>
<p>Here&#8217;s a quick explanation:<br />
<span style="text-decoration: underline;">Mapping</span> &#8211; determines whether to use world- or object-space for the 3d mask (choose <em>PWorld</em> or <em>PRef</em>). Unfortunately the PxrOSL node in Maya ignores shader metadata for creating a nice dropdown menu here (Blender users might be luckier :)).<br />
<span style="text-decoration: underline;">Radius</span> &#8211; The X, Y, Z (-&gt; R, G, B) scale of the spherical mask.<br />
<span style="text-decoration: underline;">Whitepoint</span> &#8211; Values below 1 will move the core towards the outside edge<br />
<span style="text-decoration: underline;">Blackpoint</span> &#8211; Values above 0 will move the outside edge towards the core<br />
<span style="text-decoration: underline;">Gamma</span> &#8211; Can be used to increase or decrease the falloff</p>
<p>All of these parameters are mappable, too! In the case of this Tool this has some very nice benefits.</p>
<p>The first one is that you can create a locator for example and map its translation to the Pos input. If you are using <em>PWorld</em> as your Mapping type it will use the world space coordinates so wherever you move the locator the mask will go as well. However assuming you are not animating the locator this will be a static mask in worldspace and any objects which are animated will swim through the mask.<br />
If you want your mask to follow your object you can set the Mapping to <em>PRef</em>. This will use the coordinates of the objects translation and deformation from a reference position (zero&#8217;d out transforms) and will make the mask stick to the object wherever it&#8217;s going. Keep in mind that the Origin for the position (0,0,0) is always wherever the object has zero&#8217;d out transforms. This means that you might need an offset if you have frozen your transforms at one point. Another alternative would be to parent or constraint a locator to a moving object and leave the Mapping set to <em>PWorld</em>.<br />
To double-check the coordinates the OSL node allows you to output <em>PWorld</em> and <em>PRef</em> for debugging purposes (you can take the RGB color values of a point in the render as your Pos value).</p>
<p>Also most of the time a simple sphere is not very desirable, so you can also map the radius with other procedurals or textures to break up its shape.</p>
<p>Because this is based on position data it&#8217;s completely independent of the object&#8217;s UV&#8217;s.</p>
<p>You can download it <a title="download compiled .oso" href="http://53035544.de.strato-hosting.eu/data/PMask.oso">HERE</a>.</p>
<p>Here&#8217;s a quick demo video:<br />
<iframe src="https://player.vimeo.com/video/197934849" width="640" height="338" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><a href="https://vimeo.com/197934849">3D Position Masks in OSL for Shading Networks</a> from <a href="https://vimeo.com/julsvfx">Julius Ihle</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
<span style="color: #808080;">_________________________________________________</span><br />
<span style="color: #808080;"><span style="font-size: small;"> If this post has helped you in any way you can express your gratefulness by using the <em>Donate </em>Button below to buy me a coffee! :)</span></span><br />
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=VH5RW3YDWDJSQ" target="_blank" rel="nofollow"><img class="lazyload" data-original="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" alt="" /></a></p>
<div class="moz-text-html" lang="x-unicode">
<div><span style="font-size: small;"><span style="color: #808080;">3M5xNSV7g2NzVpHMqzYKhgoKJZ8CWa644m</span></span><br />
<img class="lazyload alignleft size-full wp-image-2576" data-original="http://julius-ihle.de/wp-content/uploads/2018/03/bc_ldgr_qrcode.png" alt="bc_ldgr_qrcode" width="128" height="128" /></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=2266</wfw:commentRss>
		<slash:comments>4</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>Simple PrimVar Helper Script (updated)</title>
		<link>http://julius-ihle.de/?p=101</link>
		<comments>http://julius-ihle.de/?p=101#comments</comments>
		<pubDate>Sat, 14 Sep 2013 15:09:04 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[primitive variables]]></category>
		<category><![CDATA[primvars]]></category>
		<category><![CDATA[prman]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[renderman]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=101</guid>
		<description><![CDATA[Primitive Variables are a really cool way to get variation in Renderman Shading Networks. As it requires adding Attributes to your Shape Nodes within Maya&#8230;<p><a href="http://julius-ihle.de/?p=101" 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=101"><img class="lazyload alignleft wp-image-2184" data-original="http://julius-ihle.de/wp-content/uploads/2013/09/primvar_helper.jpg" alt="primvar_helper" width="800" height="333" /></a></p>
<p>Primitive Variables are a really cool way to get variation in Renderman Shading Networks. As it requires adding Attributes to your Shape Nodes within Maya to control the variation it can be quite time consuming to set it up. So I was trying an attempt to build an interface that helps a bit with the set up.<span id="more-101"></span>The GUI let&#8217;s you choose a name, the PrimVar type and min/max values of which it will randomly pick floating point numbers within that range. It is also possible to just use integers with the according checkbox. The GUI is far from being pretty or well organized, but it does the job. :)</p>
<p>&nbsp;</p>
<p>As I am a bit short on time however I just had the time to properly make use of Float PrimVars as that&#8217;s what I need for a current project I&#8217;m doing. As with all my scripts they are not written very well, but should be kind of readable. So feel free to modify it as needed. I hope I will find the time soon to make the other types work properly.<br />
So for example using 3 PrimVars with just one shader on all objects results in loads of variation&#8230; Which is always a good thing :)</p>
<p>&nbsp;</p>
<p>Additionally as you can see there is also an &#8220;Object ID&#8221; part in the GUI. It let&#8217;s you add integer PrimVars with increasing values for each object. At the same time it will add an AOV with the same name like the primvar (of course this custom AOV has to be set up in Slim beforehand).<br />
An alternative approach to making Object ID&#8217;s would be having distinct floating point values for each object. So the value that get&#8217;s assigned by the script corresponds to the value that is being rendered within the Object ID AOV. For example object 3, that has the Object ID primvar value of 3 assigned has a value of 3,3,3,3 for RGBA. The good part is that it is very easy to set up, but one may run into aliasing issues when dealing with very thin geometry for example. To make use of this technique I also prepared a <strong><span style="text-decoration: underline;"><a href="http://53035544.de.strato-hosting.eu/data/ObjectID.gizmo">Nuke Gizmo </a></span></strong>that handles these kind of Object ID&#8217;s and has a slider to separate them.</p>
<p>Also here&#8217;s a quick demo:<br />
<iframe src="//player.vimeo.com/video/75132311" width="500" height="313" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><a href="http://vimeo.com/75132311">Simple PrimVar Helper Script</a> from <a href="http://vimeo.com/julsvfx">Julius Ihle</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<p>So hopefully I will find some time to complete the script, but for now if anyone&#8217;s interested feel free to grab it from <strong><span style="text-decoration: underline;"><a title="HERE" href="http://53035544.de.strato-hosting.eu/data/primvar_helper_v002.py">HERE</a></span></strong>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=101</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Mari to Maya Workflow</title>
		<link>http://julius-ihle.de/?p=47</link>
		<comments>http://julius-ihle.de/?p=47#comments</comments>
		<pubDate>Mon, 10 Dec 2012 19:30:22 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mari]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[texture painting]]></category>
		<category><![CDATA[texturing]]></category>
		<category><![CDATA[udim]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=47</guid>
		<description><![CDATA[Getting textures from Mari to Maya is pretty straight forward. Once you understand the Workflow it’s pretty fast. But what if you have a complex&#8230;<p><a href="http://julius-ihle.de/?p=47" 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=47"><img class="lazyload alignleft wp-image-2195" data-original="http://julius-ihle.de/wp-content/uploads/2012/12/mari2maya.jpg" alt="mari2maya" width="800" height="333" /></a></p>
<p>Getting textures from Mari to Maya is pretty straight forward. Once you understand the Workflow it’s pretty fast. But what if you have a complex model, or even multiple models, each with multiple channels and lot’s of UV-Patches? It can be VERY time-consuming setting up each and every texture by hand. <span id="more-47"></span></p>
<p>Luckily there is already a script on <a title="Creative Crash" href="http://www.creativecrash.com/maya/script/mari2maya" target="_blank">Creative Crash</a> which does just that. However this doesn’t seem to work for some people, including me. I’m not techy enough to narrow the problem down and I could use a refresh of my scripting “skills” so I tried to make a similar script myself using Python.<br />
I came up with something that works on everything I tested. However it does have a somewhat humble workflow due to my inability to script properly, so you have to do a few extra steps. :) So what does it do?<br />
It’s basically doing a couple of things: It renames all the file nodes according to the name of the input file. On each connected place2dtexture node it then uses the name of the input file nodes, therefore setting the translation to put each patch in the right spot. For this to work, the files need to have the $UDIM flag at the very end of the file name when exporting the textures from Mari. After setting the default color to black on each file node it then connects them to a layered texture so they can be added up. At this stage you can connect that layeredTexture to your shader.</p>
<p>You use it this way:<br />
-select the textures you want to have connected for one channel (e.g. diffuse, spec, etc.)<br />
-graph those textures in the hypershade so that you see all the textures and their corresponding place2dtextures<br />
-select all the file and placement nodes in the work area<br />
-execute the script</p>
<p>So far it worked on a few scenes I tested. If you encounter problems, don’t hesitate to ask me! In any case you should first try to get the other script from Kushal Goenka which I linked in the top of this article. His one is more straight forward, my version of this script is mainly for people who cannot use the other script.<br />
<a title="DOWNLOAD HERE" href="http://53035544.de.strato-hosting.eu/data/mymari2maya.py" target="_blank"> DOWNLOAD HERE</a><br />
I hope somebody will find this helpfull! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=47</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maya Marking Menu Glitch</title>
		<link>http://julius-ihle.de/?p=16</link>
		<comments>http://julius-ihle.de/?p=16#comments</comments>
		<pubDate>Sun, 18 Nov 2012 20:18:35 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[dual monitors]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[jumping]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[marking menu]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=16</guid>
		<description><![CDATA[So I recently got a new Harddrive and set up my System pretty much the same way like before. However I faced a bug in&#8230;<p><a href="http://julius-ihle.de/?p=16" 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=16"><img class="lazyload alignleft wp-image-2197" data-original="http://julius-ihle.de/wp-content/uploads/2012/11/marking_menu_glitch.jpg" alt="marking_menu_glitch" width="800" height="333" /></a></p>
<p style="text-align: justify;">So I recently got a new Harddrive and set up my System pretty much the same way like before. However I faced a bug in all recent Maya Versions which made it impossible to reach submenus in the Marking Menus in Maya. After endless fiddling I stumbled across the reason:<span id="more-16"></span></p>
<p style="text-align: justify;"><iframe src="//www.youtube.com/embed/1Xi--6_Zmmc" width="420" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe><br />
This glitch seems to happen on all recent Maya versions, all Linux distros and all nvidia driver versions if you have a dual-monitor set up where both displays have different resolutions. If the “Position” is set to “Absolute” rather than a fixed parameter this glitch happens. I know specific settings… But maybe someone might find this usefull…<br />
Now that this one’s out of the way – rock on!</p>
]]></content:encoded>
			<wfw:commentRss>http://julius-ihle.de/?feed=rss2&#038;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
