<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.golaem.com/crowdblog">
  <channel>
    <title>Golaem Crowd Blog</title>
    <link>http://www.golaem.com/crowdblog</link>
    <description />
    <language>en</language>
          <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GolaemCrowdBlog" /><feedburner:info uri="golaemcrowdblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
    <title>Tutorial #6: Population Tool on editable meshes </title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/YBEoVz6vADU/tutorial-6-population-tool-editable-meshes</link>
    <description>&lt;p&gt;This tutorial details a new feature available on Golaem Crowd 1.4, released yesterday (&lt;a href="/content/news/golaem-ships-golaem-crowd-14-including-mental-ray-procedural-rendering"&gt;see here&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;It explains how to use the Golaem Crowd population tool in order to place your characters using an arbitrary polygon shape. Watch how the polygon tool is able to handle modification of the polygon on the fly!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/tutorial-6-population-tool-editable-meshes" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/YBEoVz6vADU" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/tutorial-6-population-tool-editable-meshes#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/population-tool">population tool</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/tutorial">tutorial</category>
 <pubDate>Fri, 16 Mar 2012 15:18:24 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">197 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/tutorial-6-population-tool-editable-meshes</feedburner:origLink></item>
  <item>
    <title>How to Split / Combine Skinned Meshes in Maya</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/N_fw4LL_Qso/how-split-combine-skinned-meshes-maya</link>
    <description>&lt;p&gt;I&amp;rsquo;ve been using Maya quite a lot those previous 18 months and I must admit that I really appreciate it. Once you master its main philosophy &amp;amp; concepts, working with it can be pretty fast forward: I learnt on-the-job how to handle particles, shaders, animation&amp;hellip; and always found my way out when needed to achieve more complex stuff.&lt;/p&gt;
&lt;p&gt;Although, there is still a part of Maya that I can&amp;rsquo;t handle: modeling. Is it only me or modeling in Maya in just a pain?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/how-split-combine-skinned-meshes-maya" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/N_fw4LL_Qso" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/how-split-combine-skinned-meshes-maya#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/maya">maya</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/mesh">mesh</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/skinning">skinning</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/tips-and-tricks">Tips and tricks</category>
 <enclosure url="http://www.golaem.com/sites/default/files/1-duplicate.png" length="163183" type="image/png" />
 <pubDate>Thu, 08 Mar 2012 14:10:38 +0000</pubDate>
 <dc:creator>nicolas.chaverou</dc:creator>
 <guid isPermaLink="false">194 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/how-split-combine-skinned-meshes-maya</feedburner:origLink></item>
  <item>
    <title>Interview with Mike Romey, Pipeline Supervisor at Zoic Studios</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/98huaMDG7sM/interview-mike-romey-pipeline-supervisor-zoic-studios</link>
    <description>&lt;p&gt;&lt;a href="http://www.zoicstudios.com"&gt;&lt;em&gt;&lt;img alt="" src="http://www.golaem.com/sites/default/files/images/partners/zoic_logo.png" style="margin-top: 15px; margin-bottom: 15px; float: left; width: 140px; height: 103px; " /&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zoic Studios is an award-winning digital studio involved in producing high-end visual effects and animation for feature films, episodic television, commercials, video games and interactive media. Spanning from visual effects, to live action production and specialty shooting, Zoic Studios&amp;rsquo; imprint can be seen on V, CSI: Crime Scene Investigations, Fringe, or True Blood.&amp;nbsp; Zoic Studios has offices in Los Angeles and Vancouver.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/content/products/golaem-crowd/user-testimonials"&gt;Read Zoic Studios Pipeline Supervisor&amp;#39;s interview&lt;/a&gt;&amp;nbsp;to learn how Zoic Studios&amp;nbsp;speed up their productions&amp;nbsp;and meet our clients visual and cost expectations with Golaem Crowd!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/interview-mike-romey-pipeline-supervisor-zoic-studios" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/98huaMDG7sM" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/interview-mike-romey-pipeline-supervisor-zoic-studios#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/testimonial">testimonial</category>
 <pubDate>Thu, 16 Feb 2012 17:23:43 +0000</pubDate>
 <dc:creator>alexandre.pillon</dc:creator>
 <guid isPermaLink="false">193 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/interview-mike-romey-pipeline-supervisor-zoic-studios</feedburner:origLink></item>
  <item>
    <title>Read and Write Mental Ray User Data</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/30f1OOcBYGs/read-and-write-mental-ray-user-data</link>
    <description>&lt;p&gt;During the time I worked on the integration of Golaem Crowd with Mental Ray as a shader plugin, I had two recurrent thoughts :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		When I was on the geometry shader, it was something like : &lt;em&gt;&amp;ldquo;damn this Developper Manual rocks: all is well documented, there are some inspiring samples, some tips&amp;hellip; This is a real pleasure to develop stuff for this rendering engine&amp;hellip;&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;
		Then, I had to work on the material shader and it was more something like :&lt;em&gt; &amp;ldquo;#@%! how the hell am I suppose to do that !!? This is a real nightmare to developp stuff for this rendering engine...&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How to write/read userdata? How to dynamically create a material and call it (if like me, you would expect that &lt;span style="font-family:courier new,courier,monospace;"&gt;mi_call_material&lt;/span&gt; would do that, do not even think about it)? Add some silent crashing function calls and weird behaviors to the whole and you almost got it. Now, I better understand why Shader Writer is a real job: it requires a lot of patience, tenacity, courage and puzzle solving skills. Those guys are heroes&amp;hellip;&lt;br /&gt;
	&lt;br /&gt;
	What about internet and forums? Well, too many often for my poor nerves, I felt in this classic situation:&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;
	&lt;strong&gt;Wisdom of the ancients&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Wisdom Of The Ancients" src="http://imgs.xkcd.com/comics/wisdom_of_the_ancients.png" style="width: 485px; height: 270px;" /&gt;&lt;br /&gt;
	Source: &lt;a href="http://xkcd.com/979/" target="_blank"&gt;http://xkcd.com/979/&lt;/a&gt;&lt;br /&gt;
	&lt;br /&gt;
	Thus, as I now consider myself as an ancient, I feel this need to share my knowledge with the next generations of Mental Ray sorcerer apprentices. Please sons, spead the good word around you and never let another soul wander in the darkness again&amp;hellip;&lt;br /&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;
	&lt;strong&gt;MRay Implementation&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In this post, I&amp;rsquo;ll answer my first question : How to store user data in an object and read/write it in a shader ? In mental ray, arbitrary user data can be attached to any element in the scene, or stand by itself, for usage by a shader. User data can be attached to instances, objects, lights, instance groups&amp;hellip; to extend the scene entity with extra data or attributes.&lt;br /&gt;
	&lt;br /&gt;
	Why would you use them? Well, it could be efficient for varying the look of large numbers of object instances, adding simulation data usable by parallel jobs running in mental ray or sharing huge data between several shaders (e.g. data which could not get through the shading network)&amp;hellip;&lt;br /&gt;
	&lt;br /&gt;
	In my example, I considered two plugins :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;span style="font-family:courier new,courier,monospace;"&gt;myPluginOne &lt;/span&gt;writes data of type &lt;span style="font-family:courier new,courier,monospace;"&gt;myStructData &lt;/span&gt;in the hit object (miObject);&lt;/li&gt;
	&lt;li&gt;
		&amp;nbsp;&lt;span style="font-family:courier new,courier,monospace;"&gt;myPluginTwo &lt;/span&gt;reads this data and displays it.&lt;/li&gt;
&lt;/ul&gt;
&lt;table align="center" style="width: 600px;border: 1px solid #999999;"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style="padding:20px;"&gt;
				&lt;p&gt;&lt;span style="font-family:courier new,courier,monospace;"&gt;&lt;span style="color:#008000;"&gt;//-------------------------------------------------------------------------&lt;br /&gt;
					// myStructData &amp;ndash; data struct to share&lt;br /&gt;
					//-------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
					&lt;span style="color:#0000ff;"&gt;struct &lt;/span&gt;myStructData&lt;br /&gt;
					{&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;importantData;&lt;br /&gt;
					};&lt;br /&gt;
					&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
					&lt;span style="color:#008000;"&gt;//-------------------------------------------------------------------------&lt;br /&gt;
					// myPluginOne &amp;ndash; writes user data of type myStructData in the hit object&lt;br /&gt;
					//-------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
					miBoolean&lt;br /&gt;
					myPluginOne(miColor* result, miState* state, &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;* paras)&lt;br /&gt;
					{&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#008000;"&gt;// get the hit object (which stores the userdata)&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp; miTag objectTag;&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(mi_query(miQ_INST_ITEM, state, state-&amp;gt;instance, &amp;amp;objectTag))&lt;br /&gt;
					&amp;nbsp; {&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; miObject* object((miObject*)mi_db_access(objectTag));&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000;"&gt; // allocate your data struct&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // NOTE: it is important to dynamically allocate your struct data, else&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
					&lt;span style="font-family: courier new,courier,monospace;"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // mi_api_data_byte_copy will crash. As far as I can understand without&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // seeing the actual code, it is because it is deallocating the pointer&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // it receives upon exit.&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;data_size (&lt;span style="color:#0000ff;"&gt;sizeof&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;struct &lt;/span&gt;myStructData));&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;struct &lt;/span&gt;myStructData* myData (((myStructData*)mi_mem_allocate(data_size)));&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000;"&gt; // fill it&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; myData-&amp;gt;importantData = 42;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
					&lt;span style="color:#008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // build a MRay data block&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;&lt;span style="font-family: courier new,courier,monospace;"&gt;the first param of &lt;/span&gt;&lt;span style="font-family: courier new,courier,monospace;"&gt;mi_api_data_begin &lt;/span&gt;&lt;span style="font-family: courier new,courier,monospace;"&gt;corresponds to the name of the&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // block. If an already existing name is used, mi_api_data_byte_copy will&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; // override its content&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
					&lt;span style="font-family: courier new,courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mi_api_data_begin(mi_mem_strdup(&lt;span style="color:#a52a2a;"&gt;&amp;quot;myDataBlockName&amp;quot;&lt;/span&gt;), 0, (&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;*)data_size);&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; mi_api_data_byte_copy(data_size, (miUchar*)myData);&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; miTag userdataTag(mi_api_data_end());&lt;/span&gt;&lt;br /&gt;
					&lt;span style="font-family: courier new,courier,monospace;"&gt;&lt;span style="color:#008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // append with the existing data (just in case)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
					&lt;span style="font-family: courier new,courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; miTag appendUserdataTag(mi_api_data_append(userdataTag, object-&amp;gt;userdata));&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;// add it to the shader userdata block&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; object-&amp;gt;userdata = appendUserdataTag;&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return &lt;/span&gt;miTRUE;&lt;br /&gt;
					&amp;nbsp; }&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return &lt;/span&gt;miFALSE;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					&lt;span style="color:#008000;"&gt;//-------------------------------------------------------------------------&lt;br /&gt;
					// myPluginTwo &amp;ndash; reads user data of type myStructData in the hit object&lt;br /&gt;
					//-------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
					miBoolean&lt;br /&gt;
					myPluginTwo(miColor* result, miState* state, &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;* paras)&lt;br /&gt;
					{&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#008000;"&gt;// get the hit object (which stores the userdata)&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp; miTag objectTag, userdataTag;&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(mi_query(miQ_INST_ITEM, state, state-&amp;gt;instance, &amp;amp;objectTag) &amp;amp;&amp;amp;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mi_query(miQ_OBJ_DATA, NULL, objectTag, &amp;amp;userdataTag))&lt;br /&gt;
					&amp;nbsp; {&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008000;"&gt;// get &amp;amp; check userdata&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;userdataSize(0);&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;struct &lt;/span&gt;myStructData* myData(NULL);&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(mi_query(miQ_DATA_PARAM_SIZE, state, userdataTag, &amp;amp;userdataSize) &amp;amp;&amp;amp;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mi_query(miQ_DATA_PARAM, state, userdataTag, &amp;amp;myData) &amp;amp;&amp;amp;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (userdataSize == &lt;span style="color:#0000ff;"&gt;sizeof&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;struct &lt;/span&gt;myStructData)))&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000;"&gt; // here you go&lt;/span&gt;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;What&amp;#39;s the answer ? &amp;quot; &amp;lt;&amp;lt; myData-&amp;gt;importantData;&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return &lt;/span&gt;miTRUE;&lt;br /&gt;
					&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
					&amp;nbsp; }&lt;br /&gt;
					&lt;br /&gt;
					&amp;nbsp; &lt;span style="color:#0000ff;"&gt;return &lt;/span&gt;miFALSE;&lt;br /&gt;
					}&lt;/span&gt;&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As always, any question, improvement suggestion, bug report is welcome and will help me to access perfection and all-wisdom. Finally I&amp;rsquo;d like to thank the LAMRUG (Los Angeles Mental Ray User Group) which &lt;a href="http://www.lamrug.org/" target="_blank"&gt;website&lt;/a&gt; is a bible and whose owners are prophets!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/read-and-write-mental-ray-user-data" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/30f1OOcBYGs" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/read-and-write-mental-ray-user-data#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/mental-ray">mental ray</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/rendering">rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/shaders">shaders</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/tech-talks">tech talks</category>
 <pubDate>Mon, 13 Feb 2012 23:22:53 +0000</pubDate>
 <dc:creator>nicolas.chaverou</dc:creator>
 <guid isPermaLink="false">189 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/read-and-write-mental-ray-user-data</feedburner:origLink></item>
  <item>
    <title>Golaem Crowd Procedural Rendering &amp; Pipeline</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/pOd7822L4aY/golaem-crowd-procedural-rendering-pipeline</link>
    <description>&lt;p&gt;&lt;em&gt;Prologue: for readability reasons, this blog post will be mainly illustrated with examples and code samples specific to Renderman-like renderers. If some of you would like details about other renderers, be my guest to add a comment.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-pipeline" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/pOd7822L4aY" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-pipeline#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/mental-ray">mental ray</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/pipeline">pipeline</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/procedural-rendering">procedural rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/renderman">renderman</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/rib">RIB</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/vray">vray</category>
 <enclosure url="http://www.golaem.com/sites/default/files/workflowSphere.png" length="63258" type="image/png" />
 <pubDate>Mon, 30 Jan 2012 19:00:25 +0000</pubDate>
 <dc:creator>nicolas.chaverou</dc:creator>
 <guid isPermaLink="false">187 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-pipeline</feedburner:origLink></item>
  <item>
    <title>Render your crowds on the Cloud</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/qfGFAOTl_Xk/render-your-crowds-cloud</link>
    <description>&lt;IMG SRC="http://www.golaem.com/sites/default/files/teapotRace.jpg" style="float:left;margin-right:10px;margin-bottom:10px;margin-top:5px;" /&gt;

&lt;P&gt;&lt;A HREF="http://renderman.pixar.com/" target="_blank"‎&gt;Pixar&lt;/a&gt; announced today the availability of their new cloud rendering service called "RenderMan® On Demand™." (see their &lt;A HREF="https://www.renderman-on-demand.com/"&gt;press release&lt;/a&gt;). Developed in collaboration with pioneering cloud services provider &lt;A HREF="http://www.greenbutton.net/" target="_blank"‎&gt;GreenButton&lt;/a&gt;, this service is now available on Microsoft's Windows® Azure with Linux availability following later in 2012.&lt;/p&gt;

&lt;P&gt;The good news is that, as we were lucky enough to beta-test it, Golaem Crowd is readily available with this service! See our complete &lt;A HREF="http://www.golaem.com/content/crowdblog/how-cloud-saved-our-crowd"&gt;use case&lt;/a&gt; showing how easy and powerful it is.&lt;/p&gt;

&lt;P&gt;Quoted in Pixar's press release, Nicolas Chaverou, Golaem Crowd Product Manager, confirms how convenient and powerful RenderMan® On Demand™ is: 
&lt;I&gt;"Working within a tight deadline has always been difficult especially when rendering animation at the very last minute. In spite of the time difference, the process was very straightforward, asset upload and distribution on the Cloud, and 54 minutes of Cloud Rendering later it was in a wrap instead of the 20 days it would have otherwise required. Magic! In addition, GreenButton provided great support including feedback about improving our pipeline."&lt;/i&gt;&lt;/p&gt;&lt;P&gt;

&lt;/p&gt;&lt;P&gt;Last but not least, the video we made to demonstrate the service was chosen by CG Channel (&lt;A HREF="http://www.cgchannel.com/2012/01/pixar-launches-renderman-on-demand-online-service/"  target="_blank"&gt;here&lt;/a&gt;) and fxguide (&lt;A HREF="http://www.fxguide.com/quicktakes/now-you-can-renderman-on-demand/" target="_blank"&gt;here&lt;/a&gt;) to illustrate their article about Pixar annoucement . Thanks guys!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/render-your-crowds-cloud" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/qfGFAOTl_Xk" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/render-your-crowds-cloud#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/cloud">cloud</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/greenbutton">greenbutton</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/partners">partners</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/rendering">rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/renderman">renderman</category>
 <enclosure url="http://www.golaem.com/sites/default/files/teapotRace.jpg" length="24032" type="image/jpeg" />
 <pubDate>Fri, 20 Jan 2012 13:52:59 +0000</pubDate>
 <dc:creator>alexandre.pillon</dc:creator>
 <guid isPermaLink="false">186 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/render-your-crowds-cloud</feedburner:origLink></item>
  <item>
    <title>Tutorial #5: The Population Tool</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/roMNE2MsHmM/tutorial-5-population-tool</link>
    <description>&lt;P&gt;The famous Golaem video tutorials are back, and this week's new tutorial is about the population tool. You will learn how to use it in order to place your characters easily with automatic handling of terrain height and obstacles, and how to customize everything from particles radius to placement noise.&lt;/p&gt;

&lt;P&gt;
&lt;object style="display:block;margin-right:auto;margin-left:auto;" width="560" height="315"&gt;&lt;param name="movie" value="http://www.youtube.com/v/znRHR5hkGtg?version=3&amp;amp;hl=en_US&amp;amp;hd=1" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/znRHR5hkGtg?version=3&amp;amp;hl=en_US&amp;amp;hd=1" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/tutorial-5-population-tool" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/roMNE2MsHmM" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/tutorial-5-population-tool#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/population-tool">population tool</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/tutorial">tutorial</category>
 <pubDate>Thu, 19 Jan 2012 16:56:44 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">185 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/tutorial-5-population-tool</feedburner:origLink></item>
  <item>
    <title>How the Cloud saved our Crowd</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/__qYNj5yQto/how-cloud-saved-our-crowd</link>
    <description>&lt;p&gt;Working within a tight deadline has always been a bad idea, especially when dealing with rendering: even if your demo is ready decades before your D-Day, you cannot be safe until you&amp;#39;ve made some rendering tests... and not even talking about crowd to render... So when we realized that each image of our 40sec crowd demo for &lt;i&gt;Siggraph Asia&lt;/i&gt; would require 30 minutes of computation, that we only had one node available for rendering and that there were only 10 days before us, we thought something like &lt;i&gt;&amp;quot;oh oh, it&amp;#39;s looking pretty bad&amp;quot;&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Well, don&amp;#39;t misunderstand me, as Golaem Crowd relies on &lt;a href="/content/crowdblog/golaem-crowd-procedural-rendering-part2" target="_blank"&gt;procedural rendering&lt;/a&gt;, generating the crowd geometry at render time is really fast and efficient. But you know, rendering engines have always lots to do and increasing the amount of geometry to render, has consequences. Here&amp;#39;s an illustration of the apportioning of the rendering time for a frame of our crowd demo (2000 characters, 1080p, motion blur...):&lt;/p&gt;
&lt;center&gt;
	&lt;img src="http://www.golaem.com/sites/default/files/renderman_procedural.png" /&gt;&lt;/center&gt;
&lt;p&gt;Fortunately for us and for the sake of &lt;i&gt;Siggraph Asia&lt;/i&gt;, we have some great partners. While we were preparing ourselves a slipknot, the guys from Pixar Renderman had a brilliant idea: what about sending our demo on the beta &lt;a href="http://renderman.pixar.com/" target="_blank"&gt;Pixar Renderman&lt;/a&gt; cloud rendering solution (powered by the great guys at &lt;a href="http://www.greenbutton.net/" target="_blank"&gt;Green Button&lt;/a&gt; using &lt;a href="http://www.windowsazure.com/en-us/" target="_blank"&gt;Windows Azure&lt;/a&gt;)?&lt;/p&gt;
&lt;p&gt;54minutes of Cloud Rendering later, it was in a wrap: magic!&lt;/p&gt;
&lt;p&gt;&lt;object height="315" style="display:block;margin-right:auto;margin-left:auto;" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8PXHaRVlX9A?version=3&amp;amp;hl=en_US&amp;amp;hd=1" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="315" src="http://www.youtube.com/v/8PXHaRVlX9A?version=3&amp;amp;hl=en_US&amp;amp;hd=1" type="application/x-shockwave-flash" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;On top of that, we were lucky enough to be invited to tell about our epic story and share our experience at the &lt;i&gt;SIGGRAPH Asia 2011 Renderman User Group Meeting&lt;/i&gt; (thanks Dylan!). Here are the slides (with some funny pictures and more information about GreenButton Cloud &amp;amp; process). Enjoy it:&lt;/p&gt;
&lt;div id="__ss_10591872" style="width:560px;display:block;margin-left:auto;margin-right:auto;"&gt;
	&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;iframe frameborder="0" height="468" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10591872?rel=0" width="560"&gt;&lt;/iframe&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/how-cloud-saved-our-crowd" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/__qYNj5yQto" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/how-cloud-saved-our-crowd#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/cloud">cloud</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/greenbutton">greenbutton</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/partners">partners</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/rendering">rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/renderman">renderman</category>
 <enclosure url="http://www.golaem.com/sites/default/files/renderman_procedural.png" length="25050" type="image/png" />
 <pubDate>Thu, 15 Dec 2011 10:01:51 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">180 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/how-cloud-saved-our-crowd</feedburner:origLink></item>
  <item>
    <title>Tutorial #4: The NavMesh Creator Tool</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/hf_ICWq7CC0/tutorial-4-navmesh-creator-tool</link>
    <description>&lt;p&gt;This week&amp;#39;s tutorial explains how to create a Navigation Mesh with the NavMesh Creator Tool, focusing on important parameters. The Golaem Crowd NavMesh is a specific internal representations of your Maya terrains, used for navigation and pathfinding of particles and the adaptation of characters to the ground.&lt;/p&gt;
&lt;p&gt;&lt;object height="315" style="display:block;margin-right:auto;margin-left:auto;" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4V-lNP52GE8?version=3&amp;amp;hl=en_US&amp;amp;hd=1" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="315" src="http://www.youtube.com/v/4V-lNP52GE8?version=3&amp;amp;hl=en_US&amp;amp;hd=1" type="application/x-shockwave-flash" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/tutorial-4-navmesh-creator-tool" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/hf_ICWq7CC0" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/tutorial-4-navmesh-creator-tool#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/navmesh">navmesh</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/tutorial">tutorial</category>
 <pubDate>Mon, 12 Dec 2011 15:49:30 +0000</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">178 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/tutorial-4-navmesh-creator-tool</feedburner:origLink></item>
  <item>
    <title>Golaem Crowd Procedural Rendering - Part2</title>
    <link>http://feedproxy.google.com/~r/GolaemCrowdBlog/~3/YmGur6RhuWI/golaem-crowd-procedural-rendering-part2</link>
    <description>&lt;br /&gt;
Previously in &lt;a href="/content/crowdblog/golaem-crowd-procedural-rendering-%E2%80%93-part1" target="_blank"&gt;Golaem Crowd Procedural Rendering&lt;/a&gt;…&lt;br /&gt;
- John: Mike, we all gonna die! We have two 1000 characters crowd shots to render by 6pm!&lt;br /&gt;
- Mike: Don’t worry John, there is necessary an appropriate export options in Golaem Crowd, we’ll get out of here…&lt;br /&gt;
- John: Should I use the &lt;a href="/content/crowdblog/golaem-crowd-procedural-rendering-%E2%80%93-part1" target="_blank"&gt;FBX export&lt;/a&gt;?&lt;br /&gt;
- Mike: No, it’s a job for Procedural Rendering!&lt;br /&gt;
&lt;p&gt;&lt;a href="http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-part2" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/GolaemCrowdBlog/~4/YmGur6RhuWI" height="1" width="1"/&gt;</description>
     <comments>http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-part2#comments</comments>
 <category domain="http://www.golaem.com/category/crowdblogposttags/guerilla-render">guerilla render</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/mental-ray">mental ray</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/partio">partio</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/procedural-rendering">procedural rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/rendering">rendering</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/renderman">renderman</category>
 <category domain="http://www.golaem.com/category/crowdblogposttags/vray">vray</category>
 <enclosure url="http://www.golaem.com/sites/default/files/procWorkflow.jpg" length="80802" type="image/jpeg" />
 <pubDate>Tue, 29 Nov 2011 14:03:04 +0000</pubDate>
 <dc:creator>nicolas.chaverou</dc:creator>
 <guid isPermaLink="false">175 at http://www.golaem.com</guid>
  <feedburner:origLink>http://www.golaem.com/content/crowdblog/golaem-crowd-procedural-rendering-part2</feedburner:origLink></item>
  </channel>
</rss>

