<?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>darkvertex.com</title>
	<atom:link href="http://darkvertex.com/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://darkvertex.com/wp</link>
	<description>Bringing CG to life, one rig at a time...</description>
	<lastBuildDate>Mon, 01 Mar 2010 20:12:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://darkvertex.com/wp/?pushpress=hub'/>
		<item>
		<title>Softimage: RefModel Deltas&#8217; Hygiene in Production</title>
		<link>http://darkvertex.com/wp/2010/02/21/clean-softimage-deltas/</link>
		<comments>http://darkvertex.com/wp/2010/02/21/clean-softimage-deltas/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 20:38:27 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=185</guid>
		<description><![CDATA[I used to think refmodels were buggy, annoying and out to get me. After some exploration, they exhibit a couple patterns of fixable issues. Let&#8217;s bring them to light, shall we?
Here&#8217;s some of my observations with them in the context of artists animating a referenced rig in production:


StoredExpressions doesn&#8217;t always store expressions. They actually show [...]]]></description>
			<content:encoded><![CDATA[<p>I used to think refmodels were buggy, annoying and out to get me. After some exploration, they exhibit a couple patterns of fixable issues. Let&#8217;s bring them to light, shall we?</p>
<p>Here&#8217;s some of my observations with them in the context of artists animating a referenced rig in production:<br />
<span id="more-185"></span></p>
<ul>
<li><strong>StoredExpressions</strong> doesn&#8217;t always store expressions. They actually show up in StoredPositions almost every time you touch something with an expression. They often also break / stop evaluating when this happens. (They often get stored even when you disable storing of expressions in your Delta, but it&#8217;s hard to repro.)<br />
&nbsp;</li>
<li><strong>StoredPositions</strong> remembers transforms by the mere act of selecting and having translate/rotate/scale tool active. While not exactly a bug, it easily causes problems if you edit centers later on, because the transforms get remembered and so it causes a wacky offset.<br />
Stuff can exist in both StoredPositions and StoredFCurves but it shouldn&#8217;t. If it&#8217;s keyed/animated, keys take priority, which means you got redundant junk in StoredPositions. XSI won&#8217;t remove the StoredPositions entry when setting a key (which makes a StoredFCurves entry.)<br />
&nbsp;</li>
<li><strong>StoredPositions</strong> will (from time to time) remember changes to a referenced material&#8217;s parameters. This combines with the annoyance of updating a material later and having old values mysteriously enforced on it because they were in StoredPositions and shared the same names. (Maybe a better name is &#8220;StoredValues&#8221;, since it stores more than <em>positions</em>.)<br />
&nbsp;</li>
<li>Generally rigs don&#8217;t come preanimated so there&#8217;s no point for &#8220;<strong>StoredRemoveAnimations</strong>&#8221; to exist. It gets created whenever you remove keys from something in the rig.<br />
&nbsp;</li>
<li><strong>StoredConstraints</strong> remembers constraint relations by explicit naming. Sometimes these don&#8217;t update when the objects name changes, and sometimes they do.<br />
So say if you constrain an arm of the referenced character rig to a null you just made, THEN rename the null, there&#8217;s a very high chance when you save and reopen the constraint won&#8217;t be connected, since it will be expecting the original null name. The good news is you can open the Delta in an Explorer, doubleclick the StoredConstraints subproperty and rename the object names in each row to whatever are the correct ones.<br />
&nbsp;</li>
<li>Whenever you edit contents of a Delta by hand and want to see the updated result, you must rightclick on the referenced model in an Explorer and &#8220;<em>Update Referenced Model</em>.&#8221;<br />
&nbsp;</li>
<li>You need a Delta per model&#8230; and in the case of having a rig with one or more models inside it, this rule still applies.<br />
&nbsp;</li>
<li>Just because a Delta sits below a model that doesn&#8217;t necessarily mean that is the model it&#8217;s working on. It&#8217;s actually working on whatever its &#8220;Target&#8221; parameter specifies.<br />
&nbsp;</li>
<li>If &#8220;<em>Record</em>&#8221; isn&#8217;t <strong>ON</strong> (in the Delta&#8217;s PPG) before you make changes, they don&#8217;t get saved. End of story. &#8212; Turning it on after doing changes won&#8217;t save your ass. (Good thing it&#8217;s on by default, eh?)<br />
&nbsp;</li>
<li>If you have a convoluted/complex rig that crashes when you do &#8220;<em>Update Reference Model</em>&#8221; or when simply offloading, but works fine otherwise&#8230; if you need to update the refmodel path, you can do this without opening your scene by editing the relevant scntoc file and then when you open your scene it&#8217;ll be path you wanted. <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
&nbsp;</li>
<li>When you duplicate a material from a referenced model, it duplicates fine EXCEPT for the image clips/sources, which stay referenced and when you reopen the scene, they will have dissapeared.<br />
&nbsp;</li>
<li>Using <strong>Animation Layers</strong> with referenced models is <s><strong>not to be trusted</strong>.</s> [*<strong>update</strong>*: Steven Caron from Blur Studios has noted that as of Soft 2010 SP1, animation layers work fine with referenced models. Beware if you are using a previous version.]<br />
If you use them, always open the scene you just saved in a new XSI without closing the first one so you can check that when it opens all the animation is still there and works properly. (I haven&#8217;t confirmed, but I believe I read on the mailing list that you can collapse animation layers before you save and then it&#8217;s okay.)<br />
&nbsp;</li>
<li>Someone on the Softimage mailing list mentioned once that only the first Delta for a particular model remembers Mixer stuff like actionclips and such, regardless of what you set. Good to bare in mind.</li>
</ul>
<p>At work I made two relatively simple scripts that help us with refmodel woes. I&#8217;d like to share them with you:</p>
<p>&nbsp;</p>
<hr />
<strong>&#8220;Import Referenced Rig&#8221;:</strong><br />
If you do File-&gt;Import-&gt;Referenced Model and begin working without doing anything, it&#8217;s set to remember *anything* and *everything*. It&#8217;ll break in no time.</p>
<p>This really simple script imports a refmodel, make a fresh empty delta for it (and extra Deltas for any models in it) and sets these defaults automatically:</p>
<ul>
<li>Static Pos and Other Parameters ON</li>
<li>FCurves ON</li>
<li>Expressions OFF</li>
<li>Constraints ON</li>
<li>Animation Mixer ON</li>
<li>Group Relations ON<br />
(this stores partitions relationships so it&#8217;s very important!)</li>
<li>Model Instances OFF<br />
(could be left ON if you need it)</li>
<li>External Connections ON<br />
(this remembers stuff like constraining something in the refmodel to an external object)</li>
<li>New Properties OFF</li>
<li>Clusters OFF</li>
<li>Cluster Properties OFF</li>
<li>Operators OFF</li>
</ul>
<p>then in Mixer Modifications:</p>
<ul>
<li>Animation ON</li>
<li>Shapes OFF</li>
<li>Audio ON</li>
<li>Cache ON</li>
</ul>
<p>These are the ideal settings for using a referenced model to move/animate it, put it in partitions/groups/layers and render.</p>
<p><a href="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2010/02/AF_ImportRefModelForAnimation.py">Download the <strong><em>AF_ImportRefModelForAnimation.py</em></strong> Python script here.</a> Make it into a button or incorporate it into your workflow tools if you have any.</p>
<p>&nbsp;</p>
<hr />
<p><strong>&#8220;Clean Delta&#8221;:</strong><br />
It deletes stuff from a Delta that shouldn&#8217;t be there if you just wanted to animate and render a referenced rig or model. See the code for more specifics.</p>
<p><a href="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2010/02/AF_DeltaCleaner.py">Download the <strong><em>AF_DeltaCleaner.py</em></strong> Python script here</a> and run it from a button with refmodels selected. I&#8217;ve left plenty of code comments to make sense of what it does. I urge you to read them.</p>
<hr />
&nbsp;</p>
<p>I hope these scripts assist you in having a more pleasant experience with referenced models. They&#8217;re actually quite wonderful after you learn their quirks.</p>
<p>If anyone has anything else to say about deltas, modifications, suggestions, code improvements, constructive critique, cheese and monkeys, etc. please leave a comment. Thank you. <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2010/02/21/clean-softimage-deltas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Softimage: Automatic Symmetry Mapping Template</title>
		<link>http://darkvertex.com/wp/2010/01/18/auto-symmetry-mapping-template/</link>
		<comments>http://darkvertex.com/wp/2010/01/18/auto-symmetry-mapping-template/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:41:16 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=151</guid>
		<description><![CDATA[If you do rigging in Softimage you probably know when trying to Mirror Weights it only pays attention to the last created Symmetry Mapping Template for that model. There&#8217;s no interface to append to or join mapping templates. It gets annoying having to recreate them and verify that Soft guessed all the correct symmetrical equivalents, [...]]]></description>
			<content:encoded><![CDATA[<p>If you do rigging in Softimage you probably know when trying to <em>Mirror Weights</em> it only pays attention to the last created Symmetry Mapping Template for that model. There&#8217;s no interface to append to or join mapping templates. It gets annoying having to recreate them and verify that Soft guessed all the correct symmetrical equivalents, so&#8230;</p>
<p><span id="more-151"></span><br />
The following Python script iterates through your selected enveloped objects, creates SymmetryMaps if one doesn&#8217;t exist, and then goes through their envelope deformers and appends them to the SymmetryMappingTemplate for that model based on the naming convention of prefixing &#8220;L_&#8221; for left-side and &#8220;R_&#8221; for right-side objects.</p>
<p>It assumes the following: (and maybe in the future I&#8217;ll make the code smarter&#8230;)<br />
- Your selected objects all have envelopes.<br />
- Your left-side objects begin with &#8220;L_&#8221; and the right-side with &#8220;R_&#8221;.<br />
- All your selected objects belong to the same Model.<br />
- That you don&#8217;t have more than one SymmetryMappingTemplate under your model. (It will append to the first one found under the model, and create one if one isn&#8217;t found.) I recommend not having one to start with.</p>
<p>Make yourself a button with this:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">xsi = Application
lm = xsi.<span style="color: black;">LogMessage</span>
<span style="color: #ff7700;font-weight:bold;">from</span> win32com.<span style="color: black;">client</span> <span style="color: #ff7700;font-weight:bold;">import</span> constants <span style="color: #ff7700;font-weight:bold;">as</span> c
<span style="color: #ff7700;font-weight:bold;">import</span> win32com.<span style="color: black;">client</span>
&nbsp;
objects = win32com.<span style="color: black;">client</span>.<span style="color: black;">Dispatch</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;XSI.Collection&quot;</span> <span style="color: black;">&#41;</span>
objects.<span style="color: black;">AddItems</span><span style="color: black;">&#40;</span>xsi.<span style="color: black;">Selection</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Iterate through selection</span>
<span style="color: #ff7700;font-weight:bold;">for</span> envObj <span style="color: #ff7700;font-weight:bold;">in</span> objects:
	lm<span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;Iterating through: &quot;</span>+envObj.<span style="color: black;">FullName</span>, c.<span style="color: black;">siVerbose</span> <span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;"># Create a SymmetryMappingTemplate if needed.</span>
	oSymmetryMapTemplate = xsi.<span style="color: black;">Dictionary</span>.<span style="color: black;">GetObject</span><span style="color: black;">&#40;</span> envObj.<span style="color: black;">Model</span>.<span style="color: black;">Name</span>+<span style="color: #483d8b;">&quot;.SymmetryMappingTemplate&quot;</span>, <span style="color: #008000;">False</span> <span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> oSymmetryMapTemplate:
		oSymmetryMapTemplate = xsi.<span style="color: black;">CreateSymmetryMappingTemplate</span><span style="color: black;">&#40;</span>envObj, <span style="color: #008000;">False</span>, <span style="color: #ff4500;">0</span>, <span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
		lm<span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;Symmetry Mapping Template not found; created one.&quot;</span>, c.<span style="color: black;">siVerbose</span> <span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
	<span style="color: #808080; font-style: italic;"># Create a SymmetryMap if it doesn't exist.</span>
	sMapCls = envObj.<span style="color: black;">ActivePrimitive</span>.<span style="color: black;">Geometry</span>.<span style="color: black;">Clusters</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;SymmetryMapCls&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
	found = <span style="color: #008000;">False</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> sMapCls:
		sMap_props = sMapCls.<span style="color: black;">LocalProperties</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> eachProp <span style="color: #ff7700;font-weight:bold;">in</span> sMap_props:
			<span style="color: #ff7700;font-weight:bold;">if</span> eachProp.<span style="color: black;">Type</span> == <span style="color: #483d8b;">&quot;map&quot;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #ff7700;font-weight:bold;">not</span> found:
				sMap = eachProp
				found = <span style="color: #008000;">True</span>
				lm<span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;Found SymmetryMap: &quot;</span>+sMap.<span style="color: black;">FullName</span>, c.<span style="color: black;">siVerbose</span> <span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> found:
		lm<span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;SymmetryMap not found; created one.&quot;</span>, c.<span style="color: black;">siVerbose</span> <span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;">#sMap = xsi.CreateSymmetryMap(&quot;&quot;, envObj, &quot;Symmetry_Map&quot;)(0)</span>
		sMap = xsi.<span style="color: black;">CreateSymmetryMap</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span>, envObj, <span style="color: #483d8b;">&quot;&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
	<span style="color: #808080; font-style: italic;"># Add envelope deformers to template by name:</span>
	i = xsi.<span style="color: black;">GetNumMappingRules</span><span style="color: black;">&#40;</span> oSymmetryMapTemplate <span style="color: black;">&#41;</span> + <span style="color: #ff4500;">1</span>
	oppositeNaming = <span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;L_&quot;</span>:<span style="color: #483d8b;">&quot;R_&quot;</span>, <span style="color: #483d8b;">&quot;R_&quot;</span>:<span style="color: #483d8b;">&quot;L_&quot;</span><span style="color: black;">&#125;</span>
	envelope = envObj.<span style="color: black;">Envelopes</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
	deformers = envelope.<span style="color: black;">Deformers</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> eachDef <span style="color: #ff7700;font-weight:bold;">in</span> deformers:
		name_A = eachDef.<span style="color: black;">Name</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">if</span> name_A<span style="color: black;">&#91;</span>:<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> <span style="color: #ff7700;font-weight:bold;">in</span> oppositeNaming.<span style="color: black;">keys</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
			name_B = name_A.<span style="color: black;">replace</span><span style="color: black;">&#40;</span>name_A<span style="color: black;">&#91;</span>:<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>, oppositeNaming.<span style="color: black;">get</span><span style="color: black;">&#40;</span>name_A<span style="color: black;">&#91;</span>:<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
&nbsp;
			xsi.<span style="color: black;">AddMappingRule</span><span style="color: black;">&#40;</span> oSymmetryMapTemplate, name_A, name_B, i<span style="color: black;">&#41;</span>
			lm<span style="color: black;">&#40;</span> <span style="color: #483d8b;">&quot;Adding Mapping Rule #&quot;</span>+<span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;: &quot;</span>+name_A+<span style="color: #483d8b;">&quot; &lt;--&gt; &quot;</span>+name_B, c.<span style="color: black;">siVerbose</span> <span style="color: black;">&#41;</span>
			i += <span style="color: #ff4500;">1</span>
&nbsp;
xsi.<span style="color: black;">SelectObj</span><span style="color: black;">&#40;</span>objects<span style="color: black;">&#41;</span></pre></div></div>

<p>I might update the code in the future to support multiple models and check if an entry in the template has been added already, but for now this above will have to do.</p>
<p>Hope it&#8217;s useful to somebody! <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2010/01/18/auto-symmetry-mapping-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendertree Compound: Shadow AO</title>
		<link>http://darkvertex.com/wp/2009/12/24/shadow-ao-rtcompound/</link>
		<comments>http://darkvertex.com/wp/2009/12/24/shadow-ao-rtcompound/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 02:18:08 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[compounds]]></category>
		<category><![CDATA[softimage]]></category>
		<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=94</guid>
		<description><![CDATA[Ever noticed that Ambient Occlusion doesn&#8217;t happen in the real world in lit areas? It&#8217;s more of a darkness thing&#8230; so why apply it everywhere?
With this Rendertree compound you have AO in darkness and that&#8217;s it. Simple! 



Now&#8230;.. can you spot the differences between these images below?
Diffuse pass, boring looking, no AO:

BAD &#8212; Sloppy AO [...]]]></description>
			<content:encoded><![CDATA[<p>Ever noticed that Ambient Occlusion doesn&#8217;t happen in the real world in lit areas? It&#8217;s more of a darkness thing&#8230; so why apply it everywhere?</p>
<p><a href="http://s3.darkvertex.com/tools/ShadowAO_ExampleSceneAndCompound.zip">With this Rendertree compound</a> you have AO in darkness and that&#8217;s it. Simple! <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://s3.darkvertex.com/tools/ShadowAO_ExampleSceneAndCompound.zip"><img src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/ShadowAO__Good_Comp.png" alt="Notice how there's no AO in lit areas" width="640" height="303" /></p>
<p><img title="Shadow AO compound" src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/ShadowAO_RTcompound_screenshot.png" alt="Shadow AO compound" width="509" height="430" /></a><br />
<span id="more-94"></span></p>
<p>Now&#8230;.. can you spot the differences between these images below?</p>
<p>Diffuse pass, boring looking, no AO:<br />
<img src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/ShadowAO__Color_Pass.png" alt="" width="640" height="303" /></p>
<p><strong><span style="color: #ff0000;">BAD</span></strong> &#8212; Sloppy AO that&#8217;s been applied everywhere: (notice how dirty it looks towards the center light)<br />
<img src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/ShadowAO__Bad_Comp.png" alt="" width="640" height="303" /></p>
<p><span style="color: #00ff00;">GOOD</span> &#8212; Shadow-aware AO, only exists where it should&#8230; in darkness:<br />
<img src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/ShadowAO__Good_Comp.png" alt="" width="640" height="303" /></p>
<p><em>Credit where credit is due; this method was originally </em><a href="http://www.grabiller.com/site/download/AOInShadow.JPG" rel="shadowbox[post-94];player=img;"><em>pointed out</em></a><em> by Guy Rabiller many years ago, back when our software was called a 3 letter word.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2009/12/24/shadow-ao-rtcompound/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Softimage: A Self-Contained CurveLength Operator</title>
		<link>http://darkvertex.com/wp/2009/12/17/selfcontained-curvelength-operator/</link>
		<comments>http://darkvertex.com/wp/2009/12/17/selfcontained-curvelength-operator/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 22:26:04 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=96</guid>
		<description><![CDATA[Sometimes you need to know the length of a curve for some setups; for a while I sometimes used an addon called jsCurveLength.
However, the way it&#8217;s designed relies on the existance of the addon to evaluate. Without it, your rig is broken. I&#8217;ve made a version which is self-contained, so when you export your rig [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you need to know the length of a curve for some setups; for a while I sometimes used an addon called <a href="http://www.xsibase.com/forum/index.php?board=11;action=display;threadid=35052">jsCurveLength</a>.</p>
<p>However, the way it&#8217;s designed relies on the existance of the addon to evaluate. Without it, your rig is broken. I&#8217;ve made a version which is self-contained, so when you export your rig you don&#8217;t need to tell people to install any addon.<span id="more-96"></span></p>
<p>Select your curve(s) and run this code from either a button or the <em>Script Editor</em>. Here&#8217;s the JavaScript:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Self-Contained CurveLength Op -- http://darkvertex.com/</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> CurveLengthOp_Update<span style="color: #009900;">&#40;</span> In_UpdateContext<span style="color: #339933;">,</span> Out<span style="color: #339933;">,</span> Incrvlist <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	Out.<span style="color: #660066;">Value</span> <span style="color: #339933;">=</span> Incrvlist.<span style="color: #660066;">Value</span>.<span style="color: #660066;">Geometry</span>.<span style="color: #660066;">Curves</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">Length</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> ApplyCurveLengthProp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	oEnum <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Enumerator<span style="color: #009900;">&#40;</span> Application.<span style="color: #660066;">Selection</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">;!</span>oEnum.<span style="color: #660066;">atEnd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>oEnum.<span style="color: #660066;">moveNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> sel <span style="color: #339933;">=</span> oEnum.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>sel.<span style="color: #660066;">Type</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;crvlist&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> oProp <span style="color: #339933;">=</span> sel.<span style="color: #660066;">AddProperty</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;Custom_parameter_list&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;CurveLength&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> p <span style="color: #339933;">=</span> oProp.<span style="color: #660066;">AddParameter2</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;CurveLength&quot;</span><span style="color: #339933;">,</span>siDouble<span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,-</span><span style="color: #CC0000;">8000</span><span style="color: #339933;">,</span><span style="color: #CC0000;">8000</span><span style="color: #339933;">,-</span><span style="color: #CC0000;">8000</span><span style="color: #339933;">,</span><span style="color: #CC0000;">8000</span><span style="color: #339933;">,</span>siClassifUnknown<span style="color: #339933;">,</span>siPersistable <span style="color: #339933;">|</span> siAnimatable<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Length&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> crvList <span style="color: #339933;">=</span> sel.<span style="color: #660066;">ActivePrimitive</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> newOp <span style="color: #339933;">=</span> AddScriptedOp<span style="color: #009900;">&#40;</span> p<span style="color: #339933;">,</span> CurveLengthOp_Update.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> crvList<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;CurveLengthOp&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;JScript&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			newOp.<span style="color: #660066;">Debug</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
			newOp.<span style="color: #660066;">AlwaysEvaluate</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			newOp.<span style="color: #660066;">Connect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			LogMessage<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Added CurveLengthOp to: &quot;</span><span style="color: #339933;">+</span>sel.<span style="color: #660066;">FullName</span><span style="color: #339933;">,</span> siVerbose<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
ApplyCurveLengthProp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2009/12/17/selfcontained-curvelength-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Softimage Tip: ExtrudeOp Transforms</title>
		<link>http://darkvertex.com/wp/2009/12/03/softimage-extrude-transforms/</link>
		<comments>http://darkvertex.com/wp/2009/12/03/softimage-extrude-transforms/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 06:19:10 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=86</guid>
		<description><![CDATA[A lot of people are unaware of the possibilities of the ExtrudeOp operator.  See below&#8230;
 
Try this yourself:

Get a sphere. (My screenshot example was a half-sphere.)
Select all polys. (Press Y to enter poly mode then Ctrl+A to select all.)
Press Ctrl+D to Extrude.
In an Explorer open your object&#8217;s operator stack, find the ExtrudeOp and open its PPG.
Turn off Merge, [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of people are unaware of the possibilities of the ExtrudeOp operator.  See below&#8230;<br />
<div id="attachment_87" class="wp-caption alignnone" style="width: 310px"><a rel="shadowbox[Mixed];width=1176;height=713" href="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/xsi_extrudes_great.jpg"><img class="size-medium wp-image-87 " title="xsi_extrudeop_transforms_trick" src="http://wpfiles.darkvertex.com/wp/wp-content/uploads/2009/12/xsi_extrudes_great-300x181.jpg" alt="Fiddling with the ExtrudeOp options" width="300" height="181" /></a><p class="wp-caption-text">Fiddling with the ExtrudeOp options</p></div></p>
<p><span id="more-86"></span> <br />
Try this yourself:</p>
<ol>
<li>Get a sphere. (My screenshot example was a half-sphere.)</li>
<li>Select all polys. (Press <strong>Y</strong> to enter poly mode then <strong>Ctrl+A</strong> to select all.)</li>
<li>Press <strong>Ctrl+D</strong> to <em>Extrude</em>.</li>
<li>In an <em>Explorer</em> open your object&#8217;s operator stack, find the <em><strong>ExtrudeOp</strong></em> and open its PPG.</li>
<li><strong>Turn off <em>Merge</em></strong>, then fiddle with <strong><em>Length</em></strong>, <strong><em>Inset Amount</em></strong> and <strong><em>Subdivs</em></strong>.</li>
<li>Then in the <em>Transform</em> tab, play with the sliders there.<br />
You can get some very interesting (and often abstract) results! <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2009/12/03/softimage-extrude-transforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: ReCentering with Components</title>
		<link>http://darkvertex.com/wp/2009/04/22/recentering-with-components/</link>
		<comments>http://darkvertex.com/wp/2009/04/22/recentering-with-components/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 18:30:06 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=9</guid>
		<description><![CDATA[

[CLICK TO SEE VIDEO]

FILES: DOWNLOAD TUTORIAL (22Mb SWF, play it with Adobe&#8217;s standalone Flash Player) and grab the example scenefile to try this yourself!
BREAKDOWN:
1. Set an OK center position with &#34;Move Center to Bounding Box&#34; / &#34;Move Center to Vertices&#34;.
2. Enter &#34;Center&#34; mode. (top right)
3. Right-click on &#34;Ref&#34; button (below Local) and choose &#34;Pick Polygon/Edge/Point [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="shadowbox[Mixed];width=640;height=498" href="http://cdn.darkvertex.com/tutorialfiles/recentering/recentering_tutorial_stream.swf"><br />
<img src="http://s3.darkvertex.com/tutorialfiles/recentering/recentering_tutorial_thumb.png" alt="Click to play video" /><br />
[<strong>CLICK TO SEE VIDEO</strong>]</a><br />
<span id="more-9"></span><br />
<strong>FILES</strong>: <a href="http://cdn.darkvertex.com/tutorialfiles/recentering/recentering_tutorial_highQuality.swf" rel="shadowbox[post-9];width=640;height=385;">DOWNLOAD TUTORIAL</a> (22Mb SWF, play it with Adobe&#8217;s <a href="http://s3.darkvertex.com/inc/Adobe.Flash.Player.exe">standalone Flash Player</a>) and grab <a href="http://s3.darkvertex.com/tutorialfiles/recentering/recenteringTutorial_start.scn">the example scenefile</a> to try this yourself!</p>
<p><strong>BREAKDOWN</strong>:<br />
<strong>1.</strong> Set an OK center position with &quot;<em>Move Center to Bounding Box</em>&quot; / &quot;<em>Move Center to Vertices</em>&quot;.<br />
<strong>2.</strong> Enter &quot;<em>Center</em>&quot; mode. (top right)<br />
<strong>3.</strong> Right-click on &quot;<em>Ref</em>&quot; button (below <em>Local</em>) and choose &quot;<em>Pick Polygon/Edge/Point Reference</em>&quot;.<br />
Click an object to select it and highlight the desired components.<br />
<strong>4.</strong> While still in both &quot;<em>Center</em>&quot; and &quot;<em>Ref</em>&quot; modes, reset rotation to 0,0,0 then go back to &quot;<em>Object</em>&quot; mode (top right), go &quot;<em>Local</em>&quot; mode and reset rotation to 0,0,0 again. &#8212; That&#8217;s it! <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>FORUM THREADS</strong>: [<a href="http://www.xsibase.com/forum/index.php?board=6;action=display;threadid=39429">xsibase</a>] [<a href="http://www.xsiforum.com/forum/index.php/topic,6736.0.html">xsiforum.com</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2009/04/22/recentering-with-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tool: XSI Docs Self-Translation Patch</title>
		<link>http://darkvertex.com/wp/2009/01/23/xsi-docs-self-translator/</link>
		<comments>http://darkvertex.com/wp/2009/01/23/xsi-docs-self-translator/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 18:30:22 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=7</guid>
		<description><![CDATA[34 languages supported!

[CLICK TO SEE DEMO VIDEO]


FILES:
1. First get the html XSI Docs (xsidocs.zip) here&#160;[mirror], extract it somewhere,
2. DOWNLOAD PATCHER SCRIPT [v1.1] (VBScript), run it and follow on-screen instructions.

FORUM THREADS: [xsibase] [xsiforum.com] [softimage.ru]
WHAT IT DOES:
Inserts a &#60;script&#62; tag into every htm file in the docs folder so that when you click on any paragraph, it [...]]]></description>
			<content:encoded><![CDATA[<p><strong>34 languages supported!</strong><br />
<a rel="shadowbox[Mixed];width=640;height=498" href="http://s3.darkvertex.com/tools/xsidocs_translator/spanishdemo.swf"><br />
[<strong>CLICK TO SEE DEMO VIDEO</strong>]<br />
<img src="http://s3.darkvertex.com/tools/xsidocs_translator/thumb.jpg" alt="Click to play video" /></a><br />
<span id="more-7"></span><br />
<strong>FILES</strong>:<br />
1. First get the html XSI Docs (xsidocs.zip) <a href="http://softimage.wiki.avid.com/xsidocs/xsidocs.zip">here</a>&nbsp;[<a href="http://cdn.darkvertex.com/tools/xsidocs_translator/xsidocs.zip">mirror</a>], extract it somewhere,<br />
2. <a href="http://s3.darkvertex.com/tools/xsidocs_translator/1.1/xsidocs_translator_patch.zip">DOWNLOAD PATCHER SCRIPT [<em>v1.1</em>]</a> (VBScript), run it and follow on-screen instructions.</p>
<p>
<strong>FORUM THREADS</strong>: [<a href="http://www.xsibase.com/forum/index.php?board=29;action=display;threadid=38669">xsibase</a>] [<a href="http://www.xsiforum.com/forum/index.php/topic,6486.0.html">xsiforum.com</a>] [<a href="http://softimage.ru/forums/?showtopic=5310">softimage.ru</a>]</p>
<p><strong>WHAT IT DOES</strong>:<br />
Inserts a &lt;script&gt; tag into every htm file in the docs folder so that when you click on any paragraph, it will be <em>automagically translated</em> to your chosen native language. (The video above shows a Spanish demo.) Language is set when you run the patching script.</p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2009/01/23/xsi-docs-self-translator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commercial: Telus Dominoes</title>
		<link>http://darkvertex.com/wp/2008/11/14/telus-dominoes-commercial/</link>
		<comments>http://darkvertex.com/wp/2008/11/14/telus-dominoes-commercial/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 23:34:12 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[commercials]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=80</guid>
		<description><![CDATA[This commercial is 100% CG (minus the live-action meerkats) and was made in Softimage XSI 7.

I was responsible for creating the ICE compound to position phone instances on a curve and simulate the domino effect.
]]></description>
			<content:encoded><![CDATA[<p>This commercial is 100% CG (minus the live-action meerkats) and was made in Softimage XSI 7.</p>
<p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2235697&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=FF7700&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2235697&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=FF7700&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object></p>
<p>I was responsible for creating the ICE compound to position phone instances on a curve and simulate the domino effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2008/11/14/telus-dominoes-commercial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How: SSS Skin with Refractive Transparency</title>
		<link>http://darkvertex.com/wp/2008/06/25/sss-with-refraction/</link>
		<comments>http://darkvertex.com/wp/2008/06/25/sss-with-refraction/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 22:47:16 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=55</guid>
		<description><![CDATA[ 
** Download Example Scene (XSI 6.02+) ** &#8212; Raw Rotation  &#38; with post-blur [QT MP4]

Why?
The fast skinshader (mentalray) material that comes with XSI off the bat is pretty awesome, but it has one downfall which is the lack of a transparency input.
How?
A Refraction node combined with  Binary Alchemy&#8217;s wonderful SSS shader, from [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/ssswithalpha_proof.jpg" width=500 /> </p>
<p><a href="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/ssswithalpha_example.scn">** Download Example Scene (XSI 6.02+) **</a> &#8212; <a href="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/SSS_with_True.Refracting.Transparency.mov" rel="shadowbox[post-55];width=640;height=385;">Raw Rotation </a> &amp; <a href="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/SSS_with_True.Refracting.Transparency_and_Post.Blur.mov" rel="shadowbox[post-55];width=640;height=385;">with post-blur</a> [QT MP4]</p>
<p><span id="more-55"></span></p>
<h2>Why?</h2>
<p>The fast skinshader (mentalray) material that comes with XSI off the bat is pretty awesome, but it has one downfall which is <strong>the lack of a transparency input</strong>.</p>
<h2>How?</h2>
<p>A <em>Refraction</em> node combined with  <a href="http://www.binaryalchemy.de/index_dev.htm">Binary Alchemy&#8217;s</a> wonderful <strong>SSS shader</strong>, from their (freeware) &quot;<em>Essentials</em>&quot; shader collection, available for download on their site. </p>
<p>BA&#8217;s SSS shader doesn&#8217;t do transparency or refractions off the bat, and it won&#8217;t let you plug in a material, so that&#8217;s not an option. However, a Refraction node (or Transparency node, though that would look wrong) can be plugged into its &quot;<em>Replace Color</em>&quot; input no problem. Plug your transparency map to the weight input and you&#8217;re set. </p>
<p>The final rendertree looks like the following:<br />
<img src="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/rendertree.gif" /> </p>
<h2>But why would you need skin to be transparent? Humans aren&#8217;t transparent, you crazy nut!</h2>
<p><strong>True</strong>, however&#8230; what about fish? Certain fish can be almost completely transparent and most are at least partially so.<br />
Not only that, but in the areas that they are, they refract light, too. Behold some evidence below:<br />
<img src="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/transparentfish.jpg" /> </p>
<h2>What is the refractive index of transparent skin?</h2>
<p>That&#8217;s a good question&#8230;. and <strong>I&#8217;ve no idea</strong>. (If anyone knows, get in touch.) I&#8217;d guess it&#8217;s something around that of some sort of plastic or silicone.<br />
(In my example scenefile I used refraction of 1.2 just to see if it was working and by no means whatsoever is that the correct refractive index for skin.)</p>
<h2>Ok&#8230; it&#8217;s transparent, but shouldn&#8217;t it be a bit blurry too?</h2>
<p>Absolutely! And that&#8217;s where the magic of post-production can kick in. One way to do it is to have a pass of your transparency as black on white, and use that to selectively blur the transparent areas to give the illusion of blurry refraction. [Another way, potentially slower to render, is to use an Architectural node instead of the Refraction one to get blurry refractions off the bat. <span class="ni">-- Thanks ghonma for the tip.</span>]</p>
<p>I&#8217;ve provided my simple approach to doing the effect in post using XSI&#8217;s own FXtree:<br />
<img src="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/fxtree.gif" /><a href="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/SSS_with_True.Refracting.Transparency_and_Post.Blur.mov" rel="shadowbox[post-55];width=640;height=385;"><img src="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/ssswithalpha-and-post.jpg" /></a><br />
(Click on the picture to the right to download a QT .mov of the animated rotation after post-production.)</p>
<p>If you see any mistakes or feel the need to correct any of the methods described above, let me know so I can make this document more accurate. <img src='http://darkvertex.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2008/06/25/sss-with-refraction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/SSS_with_True.Refracting.Transparency_and_Post.Blur.mov" length="5745067" type="video/quicktime" />
<enclosure url="http://s3.darkvertex.com/tutorialfiles/ssswithalpha/SSS_with_True.Refracting.Transparency.mov" length="5893269" type="video/quicktime" />
		</item>
		<item>
		<title>Tutorial: Faster Displacement by Optimizing</title>
		<link>http://darkvertex.com/wp/2008/01/18/tutorial-faster-displacement/</link>
		<comments>http://darkvertex.com/wp/2008/01/18/tutorial-faster-displacement/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 18:29:42 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[softimage]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://darkvertex.com/wp/?p=5</guid>
		<description><![CDATA[

[SEE VIDEO]

FILES: DOWNLOAD TUTORIAL (36Mb SWF, play it with standalone Flash Player)
Get the OBJ &#038; TIFF from here.&#160;&#160;[If the official link dies, get it here.]
FORUM THREADS: [xsibase] [cgtalk] [xsiforum.com] [indocg.com] [xsiforum.de]
NOTE:Sometimes, enabling &#8220;Sample Displacement Before Rendering&#8221; under the Optimization tab in the Renderer Options may drastically speed up your render even more.
Bare in mind disabling [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="shadowbox[Mixed];width=1024;height=786" href="http://s3.darkvertex.com/tutorialfiles/fasterdisplacement/faster.displacement_10mins.swf"><br />
<img src="http://s3.darkvertex.com/tutorialfiles/fasterdisplacement/thumb.jpg" alt="Click to play video" /><br />
[<strong>SEE VIDEO</strong>]</a><br />
<span id="more-5"></span><br />
<strong>FILES</strong>: <a href="http://s3.darkvertex.com/tutorialfiles/fasterdisplacement/faster.displacement_10mins.swf" rel="shadowbox[post-5];width=640;height=385;">DOWNLOAD TUTORIAL</a> (36Mb SWF, play it with <a href="http://s3.darkvertex.com/inc/Adobe.Flash.Player.exe">standalone Flash Player</a>)<br />
Get the OBJ &#038; TIFF from <a href="http://209.132.96.164/zmodels/humanhead3.zip">here.</a>&nbsp;&nbsp;[If the official link dies, get it <a href="http://s3.darkvertex.com/tutorialfiles/fasterdisplacement/humanhead3_OBJwithTIFF.zip">here.</a>]</p>
<p><strong>FORUM THREADS</strong>: [<a href="http://www.xsibase.com/forum/index.php?board=6;action=display;threadid=34543">xsibase</a>] [<a href="http://forums.cgsociety.org/showthread.php?t=585884">cgtalk</a>] [<a href="http://www.xsiforum.com/forum/index.php/topic,5061.0.html">xsiforum.com</a>] [<a href="http://www.indocg.com/forum/viewtopic.php?id=6143">indocg.com</a>] [<a href="http://www.xsiforum.de/thread.php?threadid=4542">xsiforum.de</a>]</p>
<p><strong>NOTE</strong>:<br />Sometimes, enabling &#8220;<i>Sample Displacement Before Rendering</i>&#8221; under the <i>Optimization</i> tab in the <i>Renderer Options</i> may drastically speed up your render even more.<br />
Bare in mind disabling it means mentalray doesn&#8217;t get accurate bounding boxes for the displaced geo, which means BSP calculations can be affected.<br />
This will not affect render quality though, only overall render times.</p>
<p>
*<strong><em>UPDATE</em></strong>* [<em>03/01/10</em>] This tutorial was made in XSI 6 and you should know that the &#8220;<strong>sib_interp_linear</strong>&#8221; node is the &#8220;<strong>ChangeRange</strong>&#8221; node in present versions.</p>
]]></content:encoded>
			<wfw:commentRss>http://darkvertex.com/wp/2008/01/18/tutorial-faster-displacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
