<?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; arnold</title>
	<atom:link href="http://julius-ihle.de/?feed=rss2&#038;tag=arnold" 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>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>Smoothing dotty Specular Highlights in Motionblur</title>
		<link>http://julius-ihle.de/?p=2228</link>
		<comments>http://julius-ihle.de/?p=2228#comments</comments>
		<pubDate>Tue, 20 Sep 2016 20:06:21 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[arnold]]></category>
		<category><![CDATA[fireflies]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[mblur]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[path tracer]]></category>
		<category><![CDATA[raytracing]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[renderman]]></category>
		<category><![CDATA[Sampling]]></category>
		<category><![CDATA[shading]]></category>
		<category><![CDATA[vfx]]></category>
		<category><![CDATA[visual effects]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=2228</guid>
		<description><![CDATA[One of the worst things to sample for any brute-force ray tracer are specular highlights / reflections with a low roughness in motion blur. Even&#8230;<p><a href="http://julius-ihle.de/?p=2228" 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=2228"><img class="lazyload alignleft wp-image-2229" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/mblurroughness.png" alt="mblurroughness" width="800" height="333" /></a></p>
<p>One of the worst things to sample for any brute-force ray tracer are specular highlights / reflections with a low roughness in motion blur. Even worse so on fine displacements or bump. And EVEN more worse with lots of small highlights. When all of these things come together sampling these highlights in motionblur is going to become really hard and with conventional methods you will end up having to rely on extemely high AA samples and even then the highlight-streaks will most likely still be dotty&#8230; And you won&#8217;t make any friends if they have to paint these streaks smooth in Comp :) So during the crunch time of a recent project I was brain storming with some of my collegues how this could potentially be fixed without needing too much samples and I&#8217;ve been working on implementing that idea which seems to work quite nicely.</p>
<p><span id="more-2228"></span></p>
<div id="attachment_2233" style="width: 810px" class="wp-caption aligncenter"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/vlcsnap-2016-09-20-22h38m54s198.png" target="_blank"><img class="lazyload wp-image-2233" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/vlcsnap-2016-09-20-22h38m54s198.png" alt="vlcsnap-2016-09-20-22h38m54s198" width="800" height="453" /></a><p class="wp-caption-text">If you try to sample this speedy fella in an environment like that with this look you will inevitably end up with streaky specs.</p></div>
<p style="text-align: left;">So how do you fix it without changing the look? Let&#8217;s say you have a simple scene like the following:</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/01_base_nomblur.png"><img class="lazyload aligncenter size-full wp-image-2234" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/01_base_nomblur.png" alt="01_base_nomblur" width="1679" height="579" /></a></p>
<p style="text-align: left;">In this case I&#8217;m using Arnold, but the base concept is the same with any renderer. Low roughness on the specs + bumpy surface + lots of harsh highlights result in something like this when you turn on motionblur:</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/02_mblur_base.png"><img class="lazyload aligncenter size-full wp-image-2235" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/02_mblur_base.png" alt="02_mblur_base" width="1679" height="580" /></a></p>
<p style="text-align: left;">This one already has 12 AA samples + 2 light samples. It won&#8217;t get much smoother just cranking up the samples, but trust me it will render longer :) One way to smooth the streaks out however would be to<strong> increase the roughness</strong> and <strong>decrease the bump / displacement</strong>.</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/02_mblurrough.png"><img class="lazyload aligncenter size-full wp-image-2236" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/02_mblurrough.png" alt="02_mblurrough" width="1679" height="555" /></a></p>
<p style="text-align: left;">That looks way better. However the problem with this is that these adjustments will affect the look a lot and the asset will look very different in non-motionblurred frames. So let&#8217;s make it work only when the character is in motionblur.<br />
Most renderers offer some sort of a node that allows you to extract the motion vectors from a moving object, which basically define what distance each point on an object travels from one frame to another in XYZ.<br />
<a href="http://julius-ihle.de/wp-content/uploads/2016/09/03_mvector_base_annotated.png"><img class="lazyload aligncenter size-full wp-image-2241" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/03_mvector_base_annotated.png" alt="03_mvector_base_annotated" width="1679" height="578" /></a></p>
<p style="text-align: left;">As you can see we get quite big values for this frame just outputting the raw motion vectors. It&#8217;s very important that they are in a raw format and not normalized, because otherwise you won&#8217;t have the actual movement distance but just something normalized (positive values between 0-1) to make it better visible.<br />
Now these negative values won&#8217;t help us much. Eventually we want to be able to use this infortmation as a mask to switch between rough/blurry (for motion blur areas) and sharp reflections (for non-motionblurred areas).<br />
So let&#8217;s make sure these values are always absolute.</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/04_abs_mvector1.png"><img class="lazyload aligncenter size-full wp-image-2242" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/04_abs_mvector1.png" alt="04_abs_mvector" width="1679" height="576" /></a></p>
<p style="text-align: left;">This way no matter what the motionvector outputs, they will always be positive. Now we need to convert this to a float to make it useable as a mask. In this case a simple RGB to luminance won&#8217;t quite cut it as you will have a weighted average of the movement in X,Y and Z. You can use a max or a sum of all the three channels to always make sure you grab the biggest motion.</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/05_rgbtofloat.png"><img class="lazyload aligncenter size-full wp-image-2239" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/05_rgbtofloat.png" alt="05_rgbtofloat" width="1679" height="578" /></a></p>
<p style="text-align: left;">The only thing left to do is to bring the whole thing into a suitable normalized range to be able to use it as a mask. How you are remapping it, depends on at which point you want to completely switch from one roughness to the other. If you have your usual range/remap node you can specify with the input max at which point the value of the resulting mask should be 1. If I&#8217;d set it to 30 for example, as soon as the motionvector reaches a value of 30 it will result in a white mask and it will smoothly blend to 0 for areas/frames with no motion. We can use this mask then to mix between 2 roughness and bump values or textures. This way we retain the look of the original asset and have nice and smooth motion blur.<br />
Here&#8217;s a before and after frame with this method. Both have the same sampling settings</p>
<p style="text-align: left;"><a href="http://julius-ihle.de/wp-content/uploads/2016/09/06_mix_result.png"><img class="lazyload aligncenter size-full wp-image-2240" data-original="http://julius-ihle.de/wp-content/uploads/2016/09/06_mix_result.png" alt="06_mix_result" width="1679" height="578" /></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=2228</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>More Katana Macros/Tools</title>
		<link>http://julius-ihle.de/?p=492</link>
		<comments>http://julius-ihle.de/?p=492#comments</comments>
		<pubDate>Sat, 28 Feb 2015 10:12:44 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[arnold]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[gobo]]></category>
		<category><![CDATA[katana]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[lookdev]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[renderman]]></category>
		<category><![CDATA[slidemap]]></category>
		<category><![CDATA[vfx]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=492</guid>
		<description><![CDATA[During the last year I luckily had some time to spend on digging a bit deeper into Katana. From working on assets and shots I&#8230;<p><a href="http://julius-ihle.de/?p=492" 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=492"><img class="lazyload alignleft wp-image-493" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/katana_dev.jpg" alt="katana_dev" width="800" height="333" /></a></p>
<p style="text-align: justify;">During the last year I luckily had some time to spend on digging a bit deeper into Katana. From working on assets and shots I experienced some moments where I thought it&#8217;d be great to have some basic tools to help get the job done just a little bit quicker. So whenever I had a bit of spare time I was developing some Macros/Gizmos/Tools to help artists on some common problems.<span id="more-492"></span></p>
<p><iframe src="//player.vimeo.com/video/120869259" width="500" height="281" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><a href="https://vimeo.com/120869259">Katana Macro/Tool Dev</a> from <a href="https://vimeo.com/julsvfx">Julius Ihle</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<p>&nbsp;</p>
<p>One of the tools is a macro that helps managing multiple lights. Based on a CEL you can freely modify exposed shading and transform parameters. This especially comes in handy in scenes with bigger environments that have to be lit with multiple light sources. It also features some randomization controls for lightcolor and rotation &amp; scale.</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/lmanager.png"><img class="lazyload aligncenter  wp-image-494" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/lmanager.png" alt="lmanager" width="479" height="580" /></a></p>
<p>&nbsp;</p>
<p>Next up we occasionally had some shots that required very accurate light cookies/gobos based on the plate. On recent shows we for example had some shots of characters walking through the woods with quite direct lighting which caused very complex noticeable shadows from the tree&#8217;s branches and leaves. In some scenes one could get away with putting just some random lightcookies as projectors (slidemaps) on the lights, but others needed a more accurate solution. This is a macro I have been working on which automates the whole process:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/cookiemaker.png"><img class="lazyload aligncenter  wp-image-495" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/cookiemaker.png" alt="cookiemaker" width="480" height="413" /></a>It basically works this way: You project the plate through the render camera onto the set geometry and render that result back through the light source which will should give you a proper light gobo. Now, there are usually a few things to consider, like the camera&#8217;s focal length, pre/post transformations of the plate to match the light&#8217;s scale and so on which all depends on the way the slidemap is implemented into the shader. On this one no one had to worry about it, because it&#8217;s all handled automatically :) The only drawback is that the generation of the resulting cookie involves a 2-step rendering process (projection on geo and post-tweaks) which makes it not as interactive as it could be, but luckily those renders go through really quick at least.</p>
<p>Here&#8217;s a quick run through on a previous set up which is based on the same technique, but a bit more manual and goes through Nuke. This should also work with really any setup that requires building accurate light cookies.<br />
Say this is your light setup (in this case in Katana, but could be Maya, Houdini, or whatever):</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/katana_lightsetup.png"><img class="lazyload aligncenter  wp-image-496" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/katana_lightsetup.png" alt="katana_lightsetup" width="754" height="547" /></a><br />
You replicate the same thing in Nuke importing the same camera and set geometry. You project the plate through the rendercam onto the set geometry and copy over the light transformations from your 3D package into a new camera, which you then render through:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/nuke_lightsetup.png"><img class="lazyload aligncenter  wp-image-497" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/nuke_lightsetup.png" alt="nuke_lightsetup" width="999" height="382" /></a><br />
The tricky part is getting the correct settings for focal length, etc. on your camera that resembles the light, which involves a bit trial and error. You can then just desaturate the map and grade, paint and do all the fancy comp stuff to make it do what you want and then use it on your lights:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/katana_cookie_arealight2.jpg"><img class="lazyload   wp-image-498 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/katana_cookie_arealight2.jpg" alt="katana_cookie_arealight2" width="498" height="280" /></a> <a href="http://julius-ihle.de/wp-content/uploads/2015/02/plate_720.jpg"><img class="lazyload   wp-image-499 aligncenter" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/plate_720.jpg" alt="plate_720" width="500" height="281" /></a></p>
<p>When the guys from FX do their magic and blow things up into thousands of pieces that&#8217;s always awesome. Anyone in comp is usually happy if you provide them ID&#8217;s for just about anything so, provided the FX cache contains separate geometry pieces or face-sets that&#8217;s pretty straight forward with this ID randomizer:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/idassgner.png"><img class="lazyload aligncenter size-full wp-image-500" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/idassgner.png" alt="idassgner" width="508" height="329" /></a><br />
When Lookdev&#8217;ing assets it always helps to ensure some consistency between the renders. While we had templates that managed chrome- and greyballs and rendercameras, we didn&#8217;t have a setup for the turntable itself&#8230; Well, now we have:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2015/02/turntable.png"><img class="lazyload aligncenter size-full wp-image-501" data-original="http://julius-ihle.de/wp-content/uploads/2015/02/turntable.png" alt="turntable" width="723" height="296" /></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=492</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Texture Conversion in the GUI for Arnold &amp; PRMan</title>
		<link>http://julius-ihle.de/?p=460</link>
		<comments>http://julius-ihle.de/?p=460#comments</comments>
		<pubDate>Sun, 28 Dec 2014 11:24:20 +0000</pubDate>
		<dc:creator><![CDATA[Julius]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[arnold]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maketx]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[renderman]]></category>
		<category><![CDATA[txmake]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[vfx]]></category>

		<guid isPermaLink="false">http://julius-ihle.de/?p=460</guid>
		<description><![CDATA[In the process of trying to streamline things a bit more in my day-to-day workflow I have recently been working on a hand-full of small&#8230;<p><a href="http://julius-ihle.de/?p=460" 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=460"><img class="lazyload alignleft wp-image-461" data-original="http://julius-ihle.de/wp-content/uploads/2014/12/tex_gui.jpg" alt="tex_gui" width="800" height="333" /></a></p>
<p>In the process of trying to streamline things a bit more in my day-to-day workflow I have recently been working on a hand-full of small helper tools. One of them is a small set of scripts that handle the conversion of a selection of files to Arnold &amp; RenderMan&#8217;s native .tx/.tex files from the filebrowser&#8230; because people like the GUI, right? :)<span id="more-460"></span><br />
Unfortunately for anyone out there on Windows or OS X they won&#8217;t be of much use I&#8217;m afraid. If you are on Linux and using Gnome or KDE as your Desktop environment (others may work, too) this might come in handy. The file conversion is being handled on a selection of files through the standard right-click context menu:</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_gnome_contextmenu_crop2.png"><img class="lazyload   wp-image-472  alignleft" data-original="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_gnome_contextmenu_crop2.png" alt="" width="275" height="331" /></a></p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_service_screenshot_crop2.png"><img class="lazyload   aligncenter wp-image-473 " data-original="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_service_screenshot_crop2.png" alt="" width="319" height="330" /></a></p>
<p>&nbsp;</p>
<p>Upon clicking you will be presented with a little pop-up menu that allows you to enter additional options for the conversion if needed. Anything that&#8217;s noted in the -help docs of the respective commands should work in the dialog boxes. Upon specifying your options there&#8217;s time to grab another cup of coffee&#8230; The progress bar will let you know when it&#8217;s done :)</p>
<p><a href="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_gnome_arnoldOptions_crop.png"><img class="lazyload alignleft wp-image-465 size-full" data-original="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_gnome_arnoldOptions_crop-e1419764694894.png" alt="txmake_gnome_arnoldOptions_crop" width="287" height="150" /></a><a href="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_kde_progress.png"><img class="lazyload aligncenter size-full wp-image-466" data-original="http://julius-ihle.de/wp-content/uploads/2014/12/txmake_kde_progress.png" alt="txmake_kde_progress" width="310" height="128" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>By default it is assumed that the bin folders of Arnold and RPS are part of your $PATH environment variable, but if you need to change it the code should be fairly easy to read (although it looks a bit messy because it&#8217;s 1 line :) ) and can be modified to suit your needs. The dialogs are using KDialog and zenity (for KDE and Gnome respectively), but those should come by default depending on what desktop you are using.</p>
<p>To use them on KDE put the attached .desktop files in ~/.kde/share/kde4/services/ or /usr/share/kde4/services/ (for all users).<br />
For Gnome you need to install nautilus-actions and import the attached .schemas files. Once that&#8217;s done just restart nautilus/dolphin or log out and log back in again.</p>
<p>Tested on my laptop with CentOS 7 (KDE 4.10.5) and my trusty old CentOS 5 testbox (Gnome 2.16.0). <del>Unfortunately I don&#8217;t have my main workstation around to test it on CentOS 6, but it should work there as well.</del><br />
//Edit: Now also tested &amp; confirmed working on CentOS 6.</p>
<p><span style="text-decoration: underline;"><a href="http://53035544.de.strato-hosting.eu/data/Arnold_MakeTx.desktop" target="_blank">Arnold .tx Converter for KDE</a></span><br />
<span style="text-decoration: underline;"> <a href="http://53035544.de.strato-hosting.eu/data/Arnold_MakeTx_Gnome.schemas" target="_blank"> Arnold .tx Converter for Gnome</a></span><br />
<span style="text-decoration: underline;"> <a href="http://53035544.de.strato-hosting.eu/data/PRMan_txmake.desktop" target="_blank"> PRMan .tex Converter for KDE</a></span><br />
<span style="text-decoration: underline;"> <a href="http://53035544.de.strato-hosting.eu/data/PRMan_TXMake_Gnome.schemas" target="_blank"> PRMan .tex Converter for Gnome</a></span></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=460</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
