Dorian Fevrier's blog - Mot-clé - vrayJe m’appelle FEVRIER Dorian, je suis infographiste 3D passionné par mon métier, l’informatique en général, l’internet, la programmation et l’évolution de tout ce petit monde. Vous trouverez sur ce blog des tutoriaux, mes coups de cœurs, avis, etc.2024-01-02T23:48:05+01:00FEVRIER Dorianurn:md5:695d9c73474c33ce3dab043823509c4bDotclear11 Second Club Mars 2013urn:md5:8f8c5c69c764482debe77824365b62102013-04-23T18:24:00+02:002020-07-23T08:57:31+02:00NarannInfographie 3D - Boulot11secondclubenfrlightingmayavray<iframe src="https://player.vimeo.com/video/64650552" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
<h3>Français</h3>
<p>Camille Campion a gagné le <a href="http://www.11secondclub.com/competitions/march13/winner" hreflang="en">11 Second Club du mois de Mars</a>! :bravo:</p>
<p>C'est moi qui me suis chargé de son lighting. C'était surtout un bon gros prétexte pour bosser le soir sur VRay et rendre de l'anim full CG. :hehe:</p>
<p>Les délais étaient tendus (un mois pour tout faire), heureusement que Camille anime rapidement (il ne le dit nulle part parce qu'il est modeste mais il a animé ça en 15 jours!). Les ressources étaient assez limitées (C'est ça... Quand on a l'habitude de bosser avec des render farms, ça fait tout drôle de revenir sur son PC maison. :baffed: ).</p>
<p>Le rigg utilisé fut <a href="http://www.animschool.com/DownloadOffer.aspx" hreflang="en">Malcom</a> (j'en profite pour dire que ce rigg voit ses assignations faites "par face" ce qui est assez gênant au moment du lighting).</p>
<p>Au niveau lighting:</p>
<ul>
<li>Une grosse area light blanche sur la vitre.</li>
<li>Une grosse area light orange dans le bar.</li>
<li>Quelques IES au plafond.</li>
</ul>
<p>Si vous avez regardé <a href="http://www.11secondclub.com/competitions/march13/winner" hreflang="en">la version du 11 Second Club</a>, vous remarquerez que la version de ce billet est plus "orange". En fait, Camille m'a aidé à calculer les images sur sa machine et le profil IES (peu d'utilité à utiliser une IES la dessus, j'en conviens) a été oublié. Donc les quelques lumières IES de la scène ne rendaient rien... :dtcFuckSmile:</p>
<p>Les IES étant subtiles et le temps manquant, on a continué la dessus pour la version 11 Second Club. :smileFou:</p>
<p>Merci à <a href="http://deex.info/wordpress2/" hreflang="en">Damien Bataille</a> pour ses conseils avisés.</p>
<p>Le compo à été fait sous Nuke.</p>
<h3>English</h3>
<p>Camille Campion won the <a href="http://www.11secondclub.com/competitions/march13/winner" hreflang="en">11 Second Club of March</a>! :bravo:</p>
<p>I've been in charge of its lighting. It was mainly a by opportunity to work with VRay and render full CG animation. :hehe:</p>
<p>Deadline was short (a month for everything). Fortunately, Camille is a very quick animator (he don't say this anywhere because it's an humble guy but he animate this in 15 days!). Hardware was also very limited (When you're used to deal with renderfarms, it's weird to go back on your home PC. :baffed: ).</p>
<p>The rigg used was <a href="http://www.animschool.com/DownloadOffer.aspx" hreflang="en">Malcom</a> (I want to say that rigg has its material assignments done "by face" which is quite annoying during lighting).</p>
<p>Lighting</p>
<ul>
<li>A big white area light on the window.</li>
<li>A big orange area light in the bar.</li>
<li>Some IES on the ceil.</li>
</ul>
<p>If you've watch <a href="http://www.11secondclub.com/competitions/march13/winner" hreflang="en">the 11 Second Club version</a>, you will notice the version of this post is more "orange". Acutally, Camille help me to render images on its computer and the IES profile (not so usefull on a such shot, I agree) has been lost. So, the few IES light was actually blacks... :dtcFuckSmile:</p>
<p>As IES effect was subtle and we don't have much time, we continue that way for the 11 Second Club version. :smileFou:</p>
<p>Thanks to <a href="http://deex.info/wordpress2/" hreflang="en">Damien Bataille</a> for its good advices.</p>
<p>Compositing has been made in Nuke.</p>VRay User Attributes (English Translation)urn:md5:f058c64e76d2cee538cad90e272c3b632013-02-17T22:33:00+01:002014-02-25T16:24:34+01:00NarannInfographie 3D - Boulotenmayashaderuser attributesvrayvrmesh<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_tn.png" alt="user_attr_vray_tn.png" style="float:left; margin: 0 1em 1em 0;" title="user_attr_vray_tn.png, fév. 2013" height="150" width="150" />Here is a tutorial I wanted to do for quite some time. :dentcasse:</p>
<p>For a long time now, VRay can use per object attributes to control some values. It can go far but often, this values are used in shaders. The general idea is to apply a single and unique shader to a big number of object, but that each object had some "special" attributes with value in them that will be applied to the shader. If you remember, <a href="https://www.fevrierdorian.com/blog/post/2011/04/16/Mental-ray-3.9-Les-User-Data-Shaders-ou-Shader-Package">I presented (french)</a> a similar feature for mental ray (User Data).</p>
<p>But before doing that, this tutorial will explain how to export/import vrmesh then redo shader assignments directly within the vrmesh! As you can see, we have a lot to do! :bravo:</p> <h3>vrmeshs (aka proxy)</h3>
<h4>What?</h4>
<p>Briefly: You know the principle of texture tiling? (No? <a href="https://www.fevrierdorian.com/blog/post/2009/01/14/Le-mappage-en-m%C3%A9moire-des-textures-dans-Mental-Ray-expliqu%C3%A9-%28Memory-mapped-textures%29.">Hop! Hop! Hop! (french)</a> :Nannan: ) Well, principle is the same, but for geometry: Vrmesh are "ready to raycast" meshes. Geometry is stored in a grid (voxel).</p>
<p>So you only load necessary "box" to render. Your vrmesh can be huge, only the elements necessary for the calculation will be loaded/unloaded on the fly. As well as tiled maps, this increase your disk IO but gives you great flexibility.</p>
<p>Don't be afraid because of the size, vrmesh are done for! :D</p>
<h4>Practice</h4>
<p>Let's do simple, here is a scene with to 24 frame animation cycles:</p>
<p><a href="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_001.png" title="user_attr_vray_001.png"><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/.user_attr_vray_001_m.jpg" alt="user_attr_vray_001.png" style="display:block; margin:0 auto;" title="user_attr_vray_001.png, fév. 2013" height="346" width="560" /></a></p>
<center><i>You can't see it but they are walking! :onSeFendLaPoire:</i></center>
<p>At this step, principle is to assign, to each "shader group", an ordinary shader (lambert is fine). Name is the importante part because it will be stored in the vrmesh with it assigned faces:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_002.png" alt="user_attr_vray_002.png" style="display:block; margin:0 auto;" title="user_attr_vray_002.png, fév. 2013" height="159" width="549" /></p>
<center><i>"lambert5" should have been "arms" but I've completely missed it. :baffed:</i></center>
<p>Even though this is not required, try to keep coherence in names between all your objects. So, if you have characters crowd to export. Assign them all shaders "arm", "corp", "head", "Hair", "tenuHaut", "tenuBas", etc ... With a bit of script, you will save time later.</p>
<p>Select mesh group you want to export:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_003.png" alt="user_attr_vray_003.png" style="display:block; margin:0 auto;" title="user_attr_vray_003.png, fév. 2013" height="92" width="253" /></p>
<p>Then go in <em>Create/V-Ray/Create proxy</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_004.png" alt="user_attr_vray_004.png" style="display:block; margin:0 auto;" title="user_attr_vray_004.png, fév. 2013" height="489" width="420" /></p>
<p>You will have a <del>horrible</del> quite sober interface:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_005.png" alt="user_attr_vray_005.png" style="display:block; margin:0 auto;" title="user_attr_vray_005.png, fév. 2013" height="582" width="576" /></p>
<p>Select <em>Export animation</em>. If your mesh is animated and you plan to use motion blur on your final render, select <em>Export velocity</em>. The two values will create the interval to calculate direction vectors to be stored in the vertices. VRay will calculate the motion blur geometry from this informations. Be careful on this interval. You can expect some (bad) surprises. If you don't go with motion blur, deselect this option. This will store less information in the geometry.</p>
<p>In my case I also select <em>Use playback range</em> but advise accordingly to your case. :reflechi:</p>
<p>With <em>Face in preview</em>, Chaos Group provide us what look like a small and trivial feature but very interesting in practice: The idea is to save <em>n</em> face indices that will be displayed in the viewport later.</p>
<p>When doing proxy, mainly to lighten a scene, we often have to manage large bouding box. Depending on the pipeline, you may even have a proxy made by another department. Here, Chaos Group guys had a very interesting reflection: "Why not make a cool proxy corresponding to the real geometry?". The bet is entirely successful, you will see that later. :)</p>
<p>If you want to import directly the newly created proxy, you can select <em>Automatically create proxies</em>.</p>
<p>For the rest, I strongly advise you to read the <a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm#export_gui" hreflang="en">documentation</a>.</p>
<p>Once that's done, click on <em>Create Proxy</em>!</p>
<p>Proceed this steps for every characters you want to export.</p>
<center>:longBar:</center>
<p>To import all this:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_006.png" alt="user_attr_vray_006.png" style="display:block; margin:0 auto;" title="user_attr_vray_006.png, fév. 2013" height="109" width="431" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_007.png" alt="user_attr_vray_007.png" style="display:block; margin:0 auto;" title="user_attr_vray_007.png, fév. 2013" height="201" width="333" /></p>
<p>Tadaaaa:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_008.png" alt="user_attr_vray_008.png" style="display:block; margin:0 auto;" title="user_attr_vray_008.png, fév. 2013" height="398" width="349" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_009.png" alt="user_attr_vray_009.png" style="display:block; margin:0 auto;" title="user_attr_vray_009.png, fév. 2013" height="446" width="538" /></p>
<p>And now our 100 faces per object. Slap it right? :aupoil:</p>
<p>Seriously, you can import hundreds of them, your viewport does not flinch. In addition, these proxies correspond to the final model. This approximation should less bother you than a low model or worse, a bounding box.</p>
<p>Now let's look at this options:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_010.png" alt="user_attr_vray_010.png" style="display:block; margin:0 auto;" title="user_attr_vray_010.png, fév. 2013" height="711" width="522" /></p>
<p>If we select <em>Bounding box</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_011.png" alt="user_attr_vray_011.png" style="display:block; margin:0 auto;" title="user_attr_vray_011.png, fév. 2013" height="389" width="418" /></p>
<center><i>For nostalgic. :trollface:</i></center>
<p>If you are not satisfied with the approximation, Chaos Group has got you covered: <em>Show whole mesh</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_012.png" alt="user_attr_vray_012.png" style="display:block; margin:0 auto;" title="user_attr_vray_012.png, fév. 2013" height="309" width="257" /></p>
<p>Other options are more specific. I will not go into detail. If you're interested: <a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm#parameters" hreflang="en">:RTFM:</a>.</p>
<p>Just notice animation speed is customisable (anim is possible too! :gniarkgniark: ) and that in our case (and most cases) it's <em> Loop</em>.</p>
<p>Go tabs on the right. VRay has already connected a shader and...</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_013.png" alt="user_attr_vray_013.png" style="display:block; margin:0 auto;" title="user_attr_vray_013.png, fév. 2013" height="419" width="520" /></p>
<p>Oh miracle! Our slots are there! :laClasse:</p>
<p>You will just have to drag and drop shaders to use.</p>
<p>Note that trying too hard to be nice, VRay create a shader for each imported vrmesh. But if you import twice the same vrmesh, you will have two similar shaders. Don't hesitate to remove one and apply a single shader for each vrmesh "source".</p>
<p>Now let's get serious! :enerve:</p>
<h3>User Attributes</h3>
<p>Select the <em>transform</em> node of one vrmesh you have and add <em>User attributes</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_014.png" alt="user_attr_vray_014.png" style="display:block; margin:0 auto;" title="user_attr_vray_014.png, fév. 2013" height="171" width="439" /></p>
<p>In these <em>User attributes</em> (lost at the bottom of your <em>Attribute Editor</em>) add the following:</p>
<pre class="bash bash"><span style="color: #007800;">casquetteColor</span>=<span style="color: #000000;">1</span>,<span style="color: #000000;">1</span>,<span style="color: #000000;">0</span>;</pre>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_015.png" alt="user_attr_vray_015.png" style="display:block; margin:0 auto;" title="user_attr_vray_015.png, fév. 2013" height="82" width="522" /></p>
<p>There, you should begin to understand. :siffle:</p>
<p>On the second, create a similar value:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_016.png" alt="user_attr_vray_016.png" style="display:block; margin:0 auto;" title="user_attr_vray_016.png, fév. 2013" height="77" width="517" /></p>
<p>Now create a shader, a <em>blinn</em> in my example (Yes, I know it's bad). Give it a clear name (it will quickly become a mess in your connections so it's up to you :redface: ):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_017.png" alt="user_attr_vray_017.png" style="display:block; margin:0 auto;" title="user_attr_vray_017.png, fév. 2013" height="119" width="224" /></p>
<p>Add a <em>VRayUserColor</em> node then enter your attribute value:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_018.png" alt="user_attr_vray_018.png" style="display:block; margin:0 auto;" title="user_attr_vray_018.png, fév. 2013" height="134" width="394" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_019.png" alt="user_attr_vray_019.png" style="display:block; margin:0 auto;" title="user_attr_vray_019.png, fév. 2013" height="289" width="517" /></p>
<p>Set the default color you want. It will be the color used if <em>User Attribute</em> is not present/valid.</p>
<p>You have some syntax examples just below the node (another good idea).</p>
<p>Connect this node to the <em>color</em> attribute of your shader (it's a shame the <em>default color</em> is not used in the hypershade, it would be a nicer than a black hole).</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_020.png" alt="user_attr_vray_020.png" style="display:block; margin:0 auto;" title="user_attr_vray_020.png, fév. 2013" height="139" width="395" /></p>
<p>Connect your shader to both <em>VRayMeshMaterial</em>, in the "casquette" slot:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_022.png" alt="user_attr_vray_022.png" style="display:block; margin:0 auto;" title="user_attr_vray_022.png, fév. 2013" height="333" width="515" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_021.png" alt="user_attr_vray_021.png" style="display:block; margin:0 auto;" title="user_attr_vray_021.png, fév. 2013" height="223" width="367" /></p>
<p>Then render:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_023.png" alt="user_attr_vray_023.png" style="display:block; margin:0 auto;" title="user_attr_vray_023.png, fév. 2013" height="433" width="597" /></p>
<center><i><a href="http://www.youtube.com/watch?v=8RLPG88u3lM">Victory song</a> (to listen with :smileFou: )</i></center>
<p>Do the same for all shaders (except "corp" that we keep for after :jdicajdirien: ):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_024.png" alt="user_attr_vray_024.png" style="display:block; margin:0 auto;" title="user_attr_vray_024.png, fév. 2013" height="144" width="502" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_025.png" alt="user_attr_vray_025.png" style="display:block; margin:0 auto;" title="user_attr_vray_025.png, fév. 2013" height="426" width="564" /></p>
<p>Well, those are for colors. You can do the same with <em>VRayUserScalar</em> and floatting point value.</p>
<p>Now we start the body ("corp"):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_026.png" alt="user_attr_vray_026.png" style="display:block; margin:0 auto;" title="user_attr_vray_026.png, fév. 2013" height="189" width="357" /></p>
<center><i>Just a file node.</i></center>
<p>Supposing you have four textures:</p>
<ul>
<li>checker_default.png</li>
<li>checker_four.png</li>
<li>checker_etc.png</li>
</ul>
<p>The only variable in your texture is located at the end (and, why not, in the path).</p>
<p>Put this in your file path:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_027.png" alt="user_attr_vray_027.png" style="display:block; margin:0 auto;" title="user_attr_vray_027.png, fév. 2013" height="64" width="354" /></p>
<p>Then apply this variable to your different <em>User Attributes</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_028.png" alt="user_attr_vray_028.png" style="display:block; margin:0 auto;" title="user_attr_vray_028.png, fév. 2013" height="61" width="506" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_029.png" alt="user_attr_vray_029.png" style="display:block; margin:0 auto;" title="user_attr_vray_029.png, fév. 2013" height="69" width="518" /></p>
<p>Render!</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_030.png" alt="user_attr_vray_030.png" style="display:block; margin:0 auto;" title="user_attr_vray_030.png, fév. 2013" height="428" width="567" /></p>
<center><i><a href="http://www.youtube.com/watch?v=8RLPG88u3lM">Once again?</a></i></center>
<p>And if we have no limit:
<img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_031.png" alt="user_attr_vray_031.png" style="display:block; margin:0 auto;" title="user_attr_vray_031.png, fév. 2013" height="520" width="681" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_032.png" alt="user_attr_vray_032.png" style="display:block; margin:0 auto;" title="user_attr_vray_032.png, fév. 2013" height="417" width="579" /></p>
<p>If you often do crowds, you should seriously consider this solution.</p>
<h3>Notice</h3>
<p>I think, as mental ray <em>User Data</em>, it's a bit cumbersome to deal with. But if you or your colleague is scripter, it is not too difficult to put it up on a production.</p>
<p>I breath the poppy it may (this is unconfirmed so take with a grain of salt) Deex (whom I thank for making me discover VRay) integrates a simple way to deal with them in <a href="http://arsenal.deex.info/" hreflang="en">Arsenal</a> (but dont be too hasty :sourit: ).</p>
<h3>Conclusion</h3>
<p>I hope this tutorial will help you in your productions.</p>
<p>See you!</p>
<p>Dorian</p>
<center>:marioCours:</center>
Les User Attributes de VRayurn:md5:212f5e2b8e46bf1b868a9437b8f0afe42013-02-17T21:36:00+01:002020-12-08T10:29:10+01:00NarannInfographie 3D - Boulotfrmayaproxyuser attributesvrayvrmesh<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_tn.png" alt="user_attr_vray_tn.png" style="float:left; margin: 0 1em 1em 0;" title="user_attr_vray_tn.png, fév. 2013" />Voici un tuto que je voulais faire depuis pas mal de temps. :dentcasse:</p>
<p>VRay propose, depuis un bon moment maintenant, d’utiliser des attributs par objet pour contrôler certaines valeurs. Ça peut aller assez loin mais bien souvent, ce sont les shaders qui en profite. L’idée est d’appliquer un seul et unique shader à un grand nombre d’objet, mais que chaque objet ait des attributs « spéciaux » avec une valeur bien particulière qui se verront appliquer sur les attributs du shader. Si vous vous rappelez bien, je <a href="https://www.fevrierdorian.com/blog/post/2011/04/16/Mental-ray-3.9-Les-User-Data-Shaders-ou-Shader-Package">vous avais présenté</a> une feature similaire sous mental ray (Les User Data).</p>
<p>Mais avant même de faire ça, ce tuto va vous expliquer comment exporter puis importer des vrmesh et refaire des assignations de shader à l’intérieur des-dits vrmesh ! Bref, un gros programme ! :bravo:</p> <h3>Les vrmesh (ou proxy)</h3>
<h4>C’est quoi ?</h4>
<p>Pour faire très brièvement : Vous connaissez le principe du tiling des textures ? (Non ? <a href="https://www.fevrierdorian.com/blog/post/2009/01/14/Le-mappage-en-m%C3%A9moire-des-textures-dans-Mental-Ray-expliqu%C3%A9-%28Memory-mapped-textures%29.">Hop ! Hop ! Hop !</a> Et plus vite que ça ! :nannan: ) Et bien le principe est le même, mais pour de la géométrie : Les vrmesh sont des mesh « prêt à être raycasté ». La géométrie y est stockée dans une grille (voxel).</p>
<p>Ainsi, vous ne chargerez que « la boite » nécessaire au rendu. Votre vrmesh peut faire une taille astronomique, seuls les éléments nécessaires au calcul seront chargés/déchargés à la volée. Au même titre que les maps tilé, ceci a pour effet d’augmenter les IO sur vos disques, mais vous donne une énorme flexibilité.</p>
<p>N’ayez donc pas peur de la taille, les vrmesh sont faits pour ! :D</p>
<h4>Pratique</h4>
<p>On va faire simple, voici une scène avec deux cycles d’animation de 24 frames :</p>
<p><a href="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_001.png" title="user_attr_vray_001.png"><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/.user_attr_vray_001_m.jpg" alt="user_attr_vray_001.png" style="display:table; margin:0 auto;" title="user_attr_vray_001.png, fév. 2013" /></a></p>
<center><i>Ça ne se voit pas mais ces deux bonhommes marchent ! :onSeFendLaPoire:</i></center>
<p>À cette étape, le principe est d’assigner à chaque « groupe de shader », un shader quelconque. C’est le nom qui importe, car c’est ce nom-là qui sera stocké dans le vrmesh :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_002.png" alt="user_attr_vray_002.png" style="display:table; margin:0 auto;" title="user_attr_vray_002.png, fév. 2013" /></p>
<center><i>« lambert5 » ça aurait dû être « bras » mais je suis complètement passé à côté. :baffed:</i></center>
<p>Même si ce n’est pas obligatoire, essayez de garder une cohérence dans les noms entre tous vos objets. Ainsi, si vous avez des personnages de foule à exporter. Assignez-leur à tous les shaders "bras", "corp", "tete", "cheuveux", "tenuHaut", "tenuBas", etc. Avec un peu de script, vous gagnerez du temps plus tard.</p>
<p>Sélectionnez le groupe de mesh que vous souhaitez exporter :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_003.png" alt="user_attr_vray_003.png" style="display:table; margin:0 auto;" title="user_attr_vray_003.png, fév. 2013" /></p>
<p>Puis allez dans <em>Create/V-Ray/Create proxy</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_004.png" alt="user_attr_vray_004.png" style="display:table; margin:0 auto;" title="user_attr_vray_004.png, fév. 2013" /></p>
<p>Vous arrivez devant une interface <del>horrible</del> sobre :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_005.png" alt="user_attr_vray_005.png" style="display:table; margin:0 auto;" title="user_attr_vray_005.png, fév. 2013" /></p>
<p>Cochez <em>Export animation</em>. Si votre mesh est animé et que vous envisagez d’utiliser du motion blur sur votre rendu final, cochez aussi <em>Export velocity</em>. Les deux valeurs vont créer l’intervalle qui permettra de calculer le vecteur de direction à stocker dans les vertex. C’est à partir de ça que VRay calculera le motion blur de la géométrie. Soyez vigilant sur cet intervalle. On peut avoir des (mauvaises) surprises. Si vous ne comptez pas rendre avec du motion blur, décochez cette option, ce sera des informations en moins à stocker dans la géométrie.</p>
<p>Dans mon cas j’ai aussi coché <em>Use playback range</em> mais avisez en fonction. :reflechi:</p>
<p>Avec <em>Face in preview</em>, Chaos Group nous gratifie une fois de plus d’une petite feature à priori anodine mais très intéressante en pratique : Le principe est de sauver les index de <em>n</em> face qui seront affiché dans le viewport plus tard.</p>
<p>Quand on fait des proxy, principalement pour alléger sa scène, on se retrouve souvent à devoir gérer des grosses bouding box à la place. Si le pipeline le permet, vous aurez peut-être même un proxy fait par un autre département (on ne compte même pas de temps nécessaire). La, les bonhommes de Chaos Group ont eux la réflexion très intéressante : « Pourquoi pas faire un proxy sympa, qui correspond à quelque chose mais vraiment allégé? ». Le pari est entièrement réussi, vous verrez ça plus tard. :)</p>
<p>Si vous souhaitez réimporter directement le proxy nouvellement créé, vous pouvez, si vous le voulez cliquer sur <em>Automatically create proxies</em>.</p>
<p>Pour le reste, je vous conseille vivement de regarder <a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm#export_gui" hreflang="en">la doc</a>.</p>
<p>Une fois que c’est fait, on clique sur <em>Create Proxy</em>!</p>
<p>Faites ça pour tous les personnages que vous avez à exporter.</p>
<center>:longBar:</center>
<p>Pour importer tout ça :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_006.png" alt="user_attr_vray_006.png" style="display:table; margin:0 auto;" title="user_attr_vray_006.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_007.png" alt="user_attr_vray_007.png" style="display:table; margin:0 auto;" title="user_attr_vray_007.png, fév. 2013" /></p>
<p>Tadaaaa:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_008.png" alt="user_attr_vray_008.png" style="display:table; margin:0 auto;" title="user_attr_vray_008.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_009.png" alt="user_attr_vray_009.png" style="display:table; margin:0 auto;" title="user_attr_vray_009.png, fév. 2013" /></p>
<p>Et voilà nos 100 faces par objet. Ça claque hein ? :aupoil:</p>
<p>Plus sérieusement, vous pouvez en mettre des centaines, votre viewport ne bronchera pas. De plus, ces proxys correspondent au modèle final. L’approximation vous gênera beaucoup moins qu’un model low ou pire, une bounding box.</p>
<p>Mais allons zyeuter les options:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_010.png" alt="user_attr_vray_010.png" style="display:table; margin:0 auto;" title="user_attr_vray_010.png, fév. 2013" /></p>
<p>Si on coche <em>Bounding box</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_011.png" alt="user_attr_vray_011.png" style="display:table; margin:0 auto;" title="user_attr_vray_011.png, fév. 2013" /></p>
<center><i>Pour les nostalgiques. :trollface:</i></center>
<p>Si vous n’êtes pas satisfait de l’approximation, Chaos Group a pensé à vous : <em>Show whole mesh</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_012.png" alt="user_attr_vray_012.png" style="display:table; margin:0 auto;" title="user_attr_vray_012.png, fév. 2013" /></p>
<p>Les autres options sont plus spécifiques. Je ne rentre pas plus dans les détails. Si ça vous intéresse : <a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm#parameters" hreflang="en">:RTFM:</a>.</p>
<p>Notez juste que la vitesse de l’animation est configurable (animable aussi ! :gniarkgniark: ) et que dans notre cas (et la plupart des cas) elle est cyclique (<em>Loop</em>).</p>
<p>Allez dans les onglets plus à droite. VRay nous a déjà connecté un shader et…</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_013.png" alt="user_attr_vray_013.png" style="display:table; margin:0 auto;" title="user_attr_vray_013.png, fév. 2013" /></p>
<p>Oh miracle ! Nos slots sont là! :laClasse:</p>
<p>Vous n’aurez plus qu’à drag and droper les shaders à utiliser.</p>
<p>Notez qu’à trop vouloir être gentil, VRay nous créé un shader pour chaque vrmesh importé. Sauf que si vous importez deux fois le même vrmesh, vous aurez deux shaders qui font là même chose. N’hésitez pas à en virer un et à appliquer un seul shader par type de vrmesh.</p>
<p>Maintenant passons aux choses sérieuses! :enerve:</p>
<h3>Les User Attributes</h3>
<p>Sélectionnez le node de <em>transform</em> d’un des vrmesh et ajoutez-y des <em>User attributes</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_014.png" alt="user_attr_vray_014.png" style="display:table; margin:0 auto;" title="user_attr_vray_014.png, fév. 2013" /></p>
<p>Dans ces <em>User attributes</em> (paumé tout en bas de votre <em>Attribute Editor</em>) ajoutez la chose suivante :</p>
<pre>[bash]
casquetteColor=1,1,0;
</pre>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_015.png" alt="user_attr_vray_015.png" style="display:table; margin:0 auto;" title="user_attr_vray_015.png, fév. 2013" /></p>
<p>Là normalement vous commencez à comprendre. :siffle:</p>
<p>Sur le second, créez une valeur similaire :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_016.png" alt="user_attr_vray_016.png" style="display:table; margin:0 auto;" title="user_attr_vray_016.png, fév. 2013" /></p>
<p>Maintenant créez un shader, un <em>blinn</em> dans mon exemple (Oui, je sais, c’est mal). Donnez-lui un nom clair (ça va vite devenir le foutoir dans vos connexions donc c’est vous qui voyez :redface: ):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_017.png" alt="user_attr_vray_017.png" style="display:table; margin:0 auto;" title="user_attr_vray_017.png, fév. 2013" /></p>
<p>Ajoutez un node <em>VRayUserColor</em> et entrez la valeur de votre attribut :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_018.png" alt="user_attr_vray_018.png" style="display:table; margin:0 auto;" title="user_attr_vray_018.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_019.png" alt="user_attr_vray_019.png" style="display:table; margin:0 auto;" title="user_attr_vray_019.png, fév. 2013" /></p>
<p>Mettez la couleur par défaut qui vous convient. Ce sera la couleur utilisée si le <em>User Attribute</em> n’est pas présent/valide.</p>
<p>Vous avez des exemples de syntax juste en dessous du node (encore une bonne idée).</p>
<p>Connectez ce node à la <em>color</em> de votre shader (dommage que Maya n’utilise pas la <em>default color</em> dans l’hypershade, ça serait toujours plus sympa qu’un truc tout noir.</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_020.png" alt="user_attr_vray_020.png" style="display:table; margin:0 auto;" title="user_attr_vray_020.png, fév. 2013" /></p>
<p>Connectez votre shader aux deux <em>VRayMeshMaterial</em>, dans le slot... "casquette":</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_022.png" alt="user_attr_vray_022.png" style="display:table; margin:0 auto;" title="user_attr_vray_022.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_021.png" alt="user_attr_vray_021.png" style="display:table; margin:0 auto;" title="user_attr_vray_021.png, fév. 2013" /></p>
<p>Puis rendez :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_023.png" alt="user_attr_vray_023.png" style="display:table; margin:0 auto;" title="user_attr_vray_023.png, fév. 2013" /></p>
<center><i><a href="http://www.youtube.com/watch?v=8RLPG88u3lM">La musique de victoire</a> (à écouter avec :smileFou: )</i></center>
<p>Faîtes pareil pour tous les shaders (sauf le corps qu’on se garde pour après :jdicajdirien: ):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_024.png" alt="user_attr_vray_024.png" style="display:table; margin:0 auto;" title="user_attr_vray_024.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_025.png" alt="user_attr_vray_025.png" style="display:table; margin:0 auto;" title="user_attr_vray_025.png, fév. 2013" /></p>
<p>Bon, voilà pour les couleurs. Vous pouvez faire de même avec les <em>VRayUserScalar</em> et les attributs à virgule.</p>
<p>Maintenant attaquons-nous au corp:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_026.png" alt="user_attr_vray_026.png" style="display:table; margin:0 auto;" title="user_attr_vray_026.png, fév. 2013" /></p>
<center><i>Juste un node de file.</i></center>
<p>Imaginons que vous ayez quatre textures :</p>
<ul>
<li>checker_default.png</li>
<li>checker_four.png</li>
<li>checker_etc.png</li>
</ul>
<p>La seule variable dans votre texture se situe à la fin (et, pourquoi pas, dans le chemin).</p>
<p>Mettez donc ça dans votre chemin de fichier :</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_027.png" alt="user_attr_vray_027.png" style="display:table; margin:0 auto;" title="user_attr_vray_027.png, fév. 2013" /></p>
<p>Et appliquez la variable à vos différents <em>User Attributes</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_028.png" alt="user_attr_vray_028.png" style="display:table; margin:0 auto;" title="user_attr_vray_028.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_029.png" alt="user_attr_vray_029.png" style="display:table; margin:0 auto;" title="user_attr_vray_029.png, fév. 2013" /></p>
<p>Rendez !</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_030.png" alt="user_attr_vray_030.png" style="display:table; margin:0 auto;" title="user_attr_vray_030.png, fév. 2013" /></p>
<center><i><a href="http://www.youtube.com/watch?v=8RLPG88u3lM">On se la remet ?</a></i></center>
<p>Et si on s’enflamme un peu :
<img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_031.png" alt="user_attr_vray_031.png" style="display:table; margin:0 auto;" title="user_attr_vray_031.png, fév. 2013" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_02_17_Les_User_Attributes_de_VRay/user_attr_vray_032.png" alt="user_attr_vray_032.png" style="display:table; margin:0 auto;" title="user_attr_vray_032.png, fév. 2013" /></p>
<p>Si vous êtes amené à faire souvent (ou pas) des foules, vous devriez sérieusement envisager cette solution.</p>
<h3>Petites notes</h3>
<p>Mine de rien, et comme les <em>User Data</em> de mental ray, c’est un peu laborieux à mettre en place. Mais si vous ou un collègue sait scripter, il n’est pas trop difficile de mettre ça en place sur une production.</p>
<p>On me souffle à l’oreillette qu’il se peut (c’est non confirmé donc à prendre avec des pincettes) que Deex (que je remercie pour m’avoir fait découvrir VRay) intègre ça à <a href="http://arsenal.deex.info/" hreflang="en">Arsenal</a>. On peut donc espérer un truc simple (mais soyez pas trop pressé :sourit: ).</p>
<h3>Conclusion</h3>
<p>J’espère que ce tuto assez costaud vous aidera dans vos productions.</p>
<p>A bientôt !</p>
<p>Dorian</p>
<center>:marioCours:</center>
Deex VRay Arsenal, a small tool that saves a lot of time (English Traduction)urn:md5:288cc3302d771adb7dbd6338560954522013-02-07T10:03:00+01:002013-07-26T18:00:39+02:00NarannInfographie 3D - Boulotarsenaldeexenmayapasserender layerrenduvray<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_tn.png" alt="VRay_Arsenal_tn.png" style="float:left; margin: 0 1em 1em 0;" title="VRay_Arsenal_tn.png, janv. 2013" height="150" width="150" />It's been a while since I heard Damien (aka <a href="http://deex.info/" hreflang="en">Deex</a>) talk about his tool. I even had the opportunity to be on the same production when he thought the main line. When he told me that his tool was finally done, I could not help but ask him a license to test it out. :sourit:</p>
<p>The idea of this post is to present the main features of Arsenal. You will see that despite an approach that may seem a little too user friendly, this tool is a true production tool that make the job quite easier.</p>
<p>Let's go! :sauteJoie:</p> <blockquote><p>Notice: Before we start, I invite you to check <em>Use V-Ray VFB</em> in the <em>VRay Common</em> tab of the <em>Render Settings</em> panel:</p></blockquote>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_012_useVRay_frameBuffer.png" alt="VRay_Arsenal_012_useVRay_frameBuffer.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_012_useVRay_frameBuffer.png, janv. 2013" height="369" width="428" /></p>
<p>This will give you access to a kind of special VRay <em>Render View</em> that allows you (in addition to a lot of things) to directly visualize passes (top left).</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_011_frameBuffer.png" alt="VRay_Arsenal_011_frameBuffer.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_011_frameBuffer.png, janv. 2013" height="137" width="331" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_sampleImage.png" alt="VRay_Arsenal_sampleImage.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_sampleImage.png, janv. 2013" height="319" width="301" /></p>
<center><i>My test imaget: A HDR from <a href="http://www.hdrlabs.com/sibl/archive.html">sIBL</a>, and a lot of talent! :smileFou:</i></center>
<h3>Installation</h3>
<p>I thought <a href="http://arsenal.deex.info/wordpress/documentation/installation/" hreflang="en">installation</a> was "special" in some part. This is not what we are used to see in common scripts.</p>
<p>First, you must install PyQt which most of the time is not an easy task (especially on Windows). Fortunately, an "easy" installer is available on the website. It's pretty cool!</p>
<p>The tool installation has been, designed to simplify the production integration (using environment variables), but can be quite daunting for people who are not necessarily used to play with their <em>Maya.env</em> file. Especially since I'm sure he would have been possible to have a "old school" install (scripts in the <em>script</em> folder, the shelves in the <em>shelves</em> folder, etc ... ), but this wouldn't have been so clean and it would have been a bit more complicated to deal with every update then with the current way, you just need to replace one folder. :laClasse:</p>
<h3>The main window</h3>
<p>When you launch it, you've got this:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_001.png" alt="VRay_Arsenal_001.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_001.png, janv. 2013" height="933" width="536" /></p>
<p>We will talk about tabs bellow.</p>
<p>There is a <em>spin</em> button. Once ticked, Arsenal will "stay at the top". Else, it behave like a Maya window.</p>
<p>There also is a <em>close</em> button at the bottom I would not insult you explain the purpose. :reflexionIntense:</p>
<p>There is three tabs we will see in the order:</p>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-a-small-tool-that-saves-a-lot-of-time#pass">Pass</a>, which regroup Maya <em>Render Layers</em> and the VRay pass system. Their both combined use is common.</li>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-a-small-tool-that-saves-a-lot-of-time#quality">Quality</a>, which is a very usefull feature: A slider, from 0 to 99 to increase or decrease render quality using a gradual modification of your render settings.</li>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-a-small-tool-that-saves-a-lot-of-time#toolbox">ToolBox</a>, which regroup a lot of tiny tools that save a lot of time.</li>
</ul>
<h3>L'onglet <em>Pass</em> <a name="pass"></a></h3>
<p>On the top part, it's just Maya <em>Render Layer</em> (unjustly named "Pass" in the three buttons on the left). Click on one of these <em>Render Layer</em> select it the same way Maya does. It's just a time saver. For renderers that don't need complex passes you should not need them.</p>
<p>Notice you can do a <em>Set global to on</em> directly on your <em>RenderLayers</em> from this window (see the <a href="http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Rendering_nodes_Render_Layer_render_attributes.htm,topicNumber=d30e656262" hreflang="en">Maya doc</a>).</p>
<p>Let's go now through the most interesting part. :popcorn:</p>
<h4>Properties control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_onglet_propertiesControl.png" alt="VRay_Arsenal_onglet_propertiesControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_onglet_propertiesControl.png, janv. 2013" height="607" width="473" /></p>
<p>This system is extremly fast to prepare your passes.</p>
<p>It's quite (quite) simple:</p>
<ul>
<li>You select an object/group, you do a <strong>Add</strong> and presto!</li>
<li>You want to remove an object/group? <strong>Remove</strong>!</li>
<li>You want to see objets having a particular property? <strong>Select</strong>!</li>
</ul>
<p>It's at once clear and also much faster than the "conventional" method aimed to manage these properties in grainy way on the groups/objects. Here, the system is reversed: You handle objects based on their property.</p>
<p>I find it much clearer. :redface:</p>
<p>Here is an quick explaination of the differentes <em>propertties</em>. For more details, refer to the <a href="http://arsenal.deex.info/wordpress/documentation/" hreflang="en">official documentation</a>.</p>
<h5>Black hole</h5>
<p>Objects having this <em>property</em> will not be shown in the render (their will be black) and their alpha will be empty.</p>
<p><strong>Receive shadow</strong>: <strong>Black hole</strong> objects having this <em>property</em> will recieve shadows and store it in their alpha (example: a ground).</p>
<h5>GI</h5>
<ul>
<li><strong>Generate off</strong>: Object with this <em>property</em> will not be used during the global illumination step (exmple: separate <strong>GI</strong> between characters and the set).</li>
<li><strong>Receive off</strong>: Object with this <em>property</em> will not recieve any indirect illumination.</li>
</ul>
<h5>Visibility</h5>
<ul>
<li><strong>Primary off</strong>: Object with this <em>property</em> will not be visible in primary rays (their will be visible in reflections/refractions/GI).</li>
<li><strong>Reflection off</strong>: Object with this <em>property</em> will not be visible in reflection rays (can be used to provide complex object to be reflected if it doesn't bring something to the final render).</li>
<li><strong>Refraction off</strong>: Object with this <em>property</em> will not be visible in refraction rays.</li>
</ul>
<h5>Shadows</h5>
<p><strong>Cast off</strong>: Les objets ayant cette <em>property</em> ne projetteront pas d'ombres.
<strong>Cast off</strong>: Object with this <em>property</em> will not project shadows.</p>
<h4>On fly control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_002_onFlyControl.png" alt="VRay_Arsenal_002_onFlyControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_002_onFlyControl.png, janv. 2013" height="447" width="475" /></p>
<p>I'm not a big fan of terminologies used in this tab (even if it is VRay one). I'll try to be clear. :gne:</p>
<h5>Light select</h5>
<p>Here we will try to render passes by light or for every lights. This <em>passes</em> will be named as <em>nameOfYourLightShape_normal</em>, <em>nameOfYourLightShape_diffuse</em>, etc...</p>
<ul>
<li><strong>Manual</strong>: If you want to render "contributions" for given lights only, it is here that you will.
<ul>
<li><strong>Normal</strong>: And this is where it lends quite confusing: Here, <em>Normal</em> is not the normal from a vector direction sense but normal within the meaning "classic". It is therefore a pass containing all the direct illumination of one light. That's all. Note that this is the terminology used in VRay...</li>
<li><strong>Diffuse</strong>: A direct lighting <em>Pass</em> of a light, with only diffuse informations.</li>
<li><strong>Raw</strong>: A <em>pass</em> that contain "raw" direct lighting informations of the light.</li>
<li><strong>Specular</strong>: A specular <em>pass</em> of the given light.</li>
</ul></li>
<li><strong>Automatic</strong>: Say that if you intend to render all the passes for all lights in the scene, go directly there. You can also combine <strong>Automatic</strong> mode for a specific pass with <strong>Manual</strong> mode for another specific pass.
<ul>
<li><strong>Specular</strong>: Render all specular <em>passes</em> for every light in the scene.</li>
<li><strong>Raw</strong>: Same as <strong>Specular</strong> but for the <strong>Raw</strong>.</li>
<li><strong>Diffuse</strong>: Same but for the <strong>Diffuse</strong> pass.</li>
<li><strong>Normal</strong>: Same but for the <strong>Normal</strong> pass.</li>
</ul></li>
</ul>
<h5>Arsenal settings</h5>
<p>Here are my favorite options. Even if you can't really guess what they are at first. :siffle:</p>
<ul>
<li><strong>VrayMtl Lambert</strong>: Tick this case will transform to <em>VrayMtl Lambert</em>, on the fly and during the render, every materials of your scene, which is really usefull to check your global lighting. The point where this way differ from the <em>material override</em> with <em>RenderLayer</em>, it's materials will still have their displacement/bump/normal if their have one.</li>
<li><strong>Material ID on fly</strong>: Tick this case will generate <em>Material ID</em> on the fly, when the render start, using material names (without namespaces) as "seed". So, you will always have the same <em>Material ID</em> color as your material has the same name. Of course, you must have a <em>Material ID</em> in your <em>Render Element</em>. Note this feature is compatible with <em>VRayblendMaterial</em>: If you blend many materials (with mask) in a <em>VRayblendMaterial</em>, each material will have it own ID in the pass.</li>
<li><strong>Proxy Objects ID on fly</strong>: Same as <em>Material ID</em> but this time with VRay proxy.</li>
</ul>
<h4>Matte control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_003_matteControl.png" alt="VRay_Arsenal_003_matteControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_003_matteControl.png, janv. 2013" height="252" width="473" /></p>
<p>This one I also love it as it's simple! :dentcasse:</p>
<p>Principe is to generate "mask" passes. You know? RGB mask:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_013_passMask.png" alt="VRay_Arsenal_013_passMask.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_013_passMask.png, janv. 2013" height="369" width="324" /></p>
<p>Roughly:</p>
<ul>
<li>You click <strong>Create new</strong>.</li>
<li>You give a name to you mask pass (<strong>Mask name</strong>). If you don't give a name to your mask pass, it will be removed. :mitraille:</li>
<li>You select a/some objects/groups.</li>
<li>You click <strong>add in red</strong> (or green/blue).</li>
<li>You render and you have you mask pass!</li>
<li>You can do this again for another pass.</li>
</ul>
<p>It's as simple I don't even know what to add! :redface:</p>
<p>Oh yes! This system bypasses a VRay limitation. Example:</p>
<ul>
<li>You have a object_A with ID 1.</li>
<li>A object_D with ID 2.</li>
<li>This two objects are in a group with ID 3.</li>
<li>Create a <em>Multi Matte</em> <em>Render Element</em> and set <em>Red object ID</em> to 3.</li>
<li>Render and look at your multimatte pass.</li>
</ul>
<p>It is black! Why? Because as VRay notice objects in group have an object ID, it doesn't show them in the pass.</p>
<p>With the Arsenal system, if you want to have a red group, it will be red!</p>
<h4>FastControl</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_004_fastControl.png" alt="VRay_Arsenal_004_fastControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_004_fastControl.png, janv. 2013" height="183" width="474" /></p>
<p>This tab just gather main VRay options to quickly activate/desactivate them.</p>
<h3><em>Quality</em> tab <a name="quality"></a></h3>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_005_qualityTab.png" alt="VRay_Arsenal_005_qualityTab.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_005_qualityTab.png, janv. 2013" height="773" width="492" /></p>
<center><i>A big slider which change of color! :D</i></center>
<p>Here we are in the area that peoples who are not really render guru should enjoy. And yet, you will see it can definitely pleased peoples who are used to change their settings manually. :dentcasse:</p>
<p>The first thing to do to activate all of this is to click on <strong>Save actual settings</strong> which will save your current settings, and on <strong>Optimize</strong> to setup different expressions. From this point, you can start to change the main slider to vary render quality.</p>
<h4>Preset Type</h4>
<p><em>Preset Type</em> are more about slider configuration than "preset". There is two <em>Preset Type</em>:</p>
<ul>
<li><em>deeX_interior</em></li>
<li><em>deeX_exterior</em></li>
</ul>
<p>This two choices represent a majority of lighting case.</p>
<p>Presets are simple texte file that can be found in:</p>
<pre class="bash bash">C:\Users\Narann\Documents\maya\deeXVRayArsenal\<span style="color: #000000;">2013</span>\win64\scripts\presets</pre>
<p>This files, with very simple syntax, are used to drive ranges (min and max) of VRay attributes which will be then modified by your slider. If I don't talk nonsense, the relationship between the slider and settings it drive is <a href="https://en.wikipedia.org/wiki/Logarithm" hreflang="en">logarithmic</a> to avoid settings burn render times when you start to increase too much the slider. :grenadelauncher:</p>
<p>If the opportunity to create it own presets will probably doesn't interest occasional lighters, being able to set these <em>min</em> and <em>max</em> parameters manually can be very interesting for VRay gurus having their little habits. :papi:</p>
<p>Moreover, it would have been great to see this tool independent of VRay to drive, for example, Mental Ray. :baffed:</p>
<blockquote><p>If you want to prevent Arsenal modifications on a specific attribute, just lock it.</p></blockquote>
<h4>Offset quality</h4>
<p>Here we have a very good idea. Principe is to apply an offset to the slider for some parameters.</p>
<p>For example, my slider is suppose to be <em>50</em>. I think sampling is a bit sensitive and increases the rendering time too quickly. However, I am satisfied with the rest... So, I just check the <strong>Image sampler</strong> then type <em>-10</em> for the settings of the sampler applies as if my overall slider was <em>40</em>! Brillant! :youplaBoum:</p>
<h4>Optimize material(s)</h4>
<p>Another interesting idea: You determine two extrem subdivision values (sampling), click <strong>Optimize material(s)</strong> button and Arsenal will determine the value to use based on <strong>Glossiness</strong> value of the material. More it's gloss, more you need samples.</p>
<p>Notice the checkbox right to <strong>LayerMode</strong>. If you check it before clicking <strong>Optimize material(s)</strong> button and you are in a <em>RenderLayer</em> (other than <em>masterLayer</em>) attributes will changed only on the current <em>RenderLayer</em>.</p>
<h4>Optimize light(s)</h4>
<p>I'm not sure this button is very useful. For now it only set every VRayLights Subdiv parameter to 5...</p>
<h3><em>ToolBox</em> tab <a name="toolbox"></a></h3>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_006_toolBoxTab.png" alt="VRay_Arsenal_006_toolBoxTab.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_006_toolBoxTab.png, janv. 2013" height="707" width="494" /></p>
<p>Here you will find small very specific tools.</p>
<h4>Proxy</h4>
<p><a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm" hreflang="en">VRayProxy</a> are a marvel. We used them on <a href="https://www.fevrierdorian.com/blog/post/2013/02/07/url=http://www.imdb.com/title/tt1701210/" title="url=http://www.imdb.com/title/tt1701210/">url=http://www.imdb.com/title/tt170...</a>Day Of The Falcon<a href="https://www.fevrierdorian.com/url" title="/url">/url</a> to make horse animation cycles shifting speed.</p>
<h5>Multi proxy importer</h5>
<p>This button allows you to import multiple VRayProxy because, as surprising as it may seem, it is not possible to do this in standard... You need to import VRayProxy one by one...</p>
<h5>Shader auto connect</h5>
<p>When you export a VRayProxy, the "assignation slots" are created. Principle is to store, inside the proxy, shader assignations for reassign your shaders later.</p>
<p>Once VRayProxy reimported into your scene, you can apply a <a href="http://www.spot3d.com/vray/help/maya/150R1/vraymeshmtl_params.htm" hreflang="en">VRayMeshMaterial</a> (FYI, it's already created when you import). This material will show different slots assignments for your proxy to connect your own shaders.</p>
<p><strong>Shader auto connect</strong> button can automatically reconnect shaders based on their names, which avoids having to do it yourself. On proxy with tens or hundreds of assignments, it is rather convenient...</p>
<h5>Ignore namespace</h5>
<p>This box allows you to ignore shader namespaces of your scene when reassigning to the proxies. In principle, this allows you to have these shaders in external references (with a namespace) without have problems for reconnect using their names.</p>
<h4>ID</h4>
<p>Once again, here we have tools to quickly assign IDs to materials and objects.</p>
<p>Goal is then to release this IDs as passes to give to your compositing friends.</p>
<h4>Material ID</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_008_materialID.png" alt="VRay_Arsenal_008_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_008_materialID.png, janv. 2013" height="431" width="383" /></p>
<ul>
<li><strong>Add on</strong>: Used to apply <em>Material ID</em> attributes to selected materials/all materials/all shading engine.</li>
<li><strong>Set on</strong>: Apply a unique ID to <em>Material ID</em> attributes for the selected materials/all materials/all shading engine. This number is generated randomly using the material name. This method has double side: If you change the name of the material them you click again on <em>Set on</em>, it ID color will change likewise. Notice <strong>Material ID on fly</strong> checkbox from <em>Pass</em>/<em>On fly control</em> do the same thing directly on the fly! :)</li>
<li><strong>Remove on</strong>: Supprime les attributs de <em>Material ID</em> des materials sélectionnés/tous les materials/tous les shading engine.</li>
<li><strong>Remove on</strong>: Remove <em>Material ID</em> attributes from selected materials/all materials/all shading engine.</li>
</ul>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_014_materialID.png" alt="VRay_Arsenal_014_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_014_materialID.png, janv. 2013" height="115" width="528" /></p>
<p>Last point, to make this work, don't forget to create a <em>Material ID</em> pass (<em>Render Element</em>):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_007_materialID.png" alt="VRay_Arsenal_007_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_007_materialID.png, janv. 2013" height="568" width="437" /></p>
<h4>Object ID</h4>
<p>Same as <em>Material ID</em> but at the objects level.</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_015_objectID.png" alt="VRay_Arsenal_015_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_015_objectID.png, janv. 2013" height="84" width="451" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_010_objectID.png" alt="VRay_Arsenal_010_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_010_objectID.png, janv. 2013" height="621" width="570" /></p>
<center><i>Notice difference with the ''Material ID'' pass.</i></center>
<p>Each object will have a differente id.</p>
<p>Once again, don't forget to create <em>Object ID</em> <em>Render Element</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_009_objectID.png" alt="VRay_Arsenal_009_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_009_objectID.png, janv. 2013" height="549" width="429" /></p>
<h4>Material control</h4>
<p>This part allows you to apply some key values on selected/all materials in one click.</p>
<ul>
<li>Reflection/Refraction Subdivs</li>
<li>Reflection/Refraction Interpolation</li>
<li>Reflection/Refraction Max depth</li>
</ul>
<p>A <strong>Trace</strong> option (Reflection/Refraction) to completly activate/desactivate raytracing would be interesting here. :dentcasse:</p>
<h4>Lights control</h4>
<p>It can't be easier: Apply a <strong>Shadow subdivs</strong> value to selected/all lights of the scene in one click.</p>
<h3>Techniquement, comment ça marche?
How it work technically?</h3>
<p>Hahaha! The particularity of this tool is to not change your scene when you generate passes (Except Maya <em>RenderLayers</em> of course), when you do some "On the fly" stuff or even Matte.</p>
<p>But then? How is it doing? :gne2:</p>
<p>Well, it uses a feature of VRay I'll dream of seeing widespread throughout render engines as it increase pipeline possibilities: The Python API <a href="http://www.spot3d.com/vray/help/maya/150R1/render_scene_access.htm" hreflang="en">VRay Scene Access</a>.</p>
<p>I quote the documentation as it's very clear:</p>
<blockquote><p>The V-Ray scene access python API allows you to modify the V-Ray scene after it is translated by the V-Ray for Maya translator, and before it is rendered and/or exported to a .vrscene file.
The scene access API allows you to expand the V-Ray for Maya translator by providing custom translation for constructs that are not recognized by V-Ray, or for modifying the scene before rendering without changing the original Maya scene.</p></blockquote>
<p>Boum! Chaos Group guys are genius! :sauteJoie:</p>
<p>Roughly, it allow you to drive the renderer before (during?) the render. So we can imagine crazy stuff like generate scenes directly in VRay, on the fly, without using heavy vrscene file. For those who have worked with Renderman, it means no more generation of heavy RIBs you use only once. Here, you can control VRay using Python!</p>
<p>I asked for a similar feature on <a href="http://forum.nvidia-arc.com/showthread.php?8097-Python-to-controle-mental-ray" hreflang="en">Nvidia ARC forum</a> (formerly Mental Image) as I thought it was a great idea but I'm not sure it changes much. :triste:</p>
<p>So, Damien's tool uses it, and that's what allows him to keep a clean Maya scene and be able to act directly at VRay level, before rendering.</p>
<h3>Conclusion</h3>
<p>For having test the thing thoroughly I can assure you it worth every penny (69€! :bravo:).</p>
<ul>
<li>Time saved preparing passes is terrible and you don't have to go through all the VRay menus.</li>
<li>The ability to control objects according their <em>properties</em> is quite natural.</li>
<li>RGB Mattes management is also easy.</li>
<li>On the fly Material/Object ID working in few clicks... You have no more excuse for not using them.</li>
<li>On the fly VRayMtlLambert deserves a section all by itself as it can be practical.</li>
<li>Quality slider preset and offsets system can go far.</li>
<li>Deex will continue to add stuff.</li>
</ul>
<p>What is missing:</p>
<ul>
<li>Ability to export you "pass set" in a text file for later import (planned!).</li>
<li>More <em>On the fly</em> options (I'm a big fan of this!)</li>
<li>A Python API as easy to use than this buttons. Like <em>arsenal.pass.propertiesControl.blackHole.add("myObject")</em>. But except me, I'm not sure any one will find this useful... :trollface:</li>
</ul>
<p>OK, I sell <del>a little</del> completely the thing but yes: It's worth it! :aupoil:</p>
<p>Beyond the fact that I invite you to jump into this tool, I hope that, if you already have it, this presentation/tutorial will allow you to go further! :)</p>
<p>See you!</p>
<center><i>:marioCours:</i></center>
Deex VRay Arsenal, un petit tool qui fait gagner beaucoup de tempsurn:md5:9bf448d41828ce5285db9e2a01c7ec402013-02-07T00:00:00+01:002013-07-26T18:00:55+02:00NarannInfographie 3D - Boulotarsenaldeexfrmayapasserender layerrenduvray<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_tn.png" alt="VRay_Arsenal_tn.png" style="float:left; margin: 0 1em 1em 0;" title="VRay_Arsenal_tn.png, janv. 2013" height="150" width="150" />Ça fait un moment que j’entends Damien (alias <a href="http://deex.info/" hreflang="en">Deex</a>) parler de son tool. J'ai même eu l'occasion d'être sur la même prod que lui quand il réfléchissait aux grandes lignes. Quand il m'a dit que son outil était enfin fini, je n'ai pas pu m’empêcher de lui demander une licence pour tester ça. :sourit:</p>
<p>L'idée de ce billet est de présenter les principales <em>features</em> d'<a href="http://arsenal.deex.info/" hreflang="en">Arsenal</a>. Vous allez voir que malgré une approche qui peut sembler un peu trop user friendly, cette outil est un vrai outil de production qui facilite pas mal le boulot.</p>
<p>C'est 'tipar mon canard! :sauteJoie:</p> <blockquote><p>Note: Avant de commencer je vous invite à cocher la case <em>Use V-Ray VFB</em> dans l'onglet <em>VRay Common</em> des <em>Render Settings</em>:</p></blockquote>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_012_useVRay_frameBuffer.png" alt="VRay_Arsenal_012_useVRay_frameBuffer.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_012_useVRay_frameBuffer.png, janv. 2013" height="369" width="428" /></p>
<p>Ceci vous donnera accès à une sorte de <em>Render View</em> spécial VRay qui permet (en plus de pas mal de choses) de visualiser directement les passes (en haut à gauche).</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_011_frameBuffer.png" alt="VRay_Arsenal_011_frameBuffer.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_011_frameBuffer.png, janv. 2013" height="137" width="331" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_sampleImage.png" alt="VRay_Arsenal_sampleImage.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_sampleImage.png, janv. 2013" height="319" width="301" /></p>
<center><i>Mon image de test: Une HDR de <a href="http://www.hdrlabs.com/sibl/archive.html">sIBL</a>, et beaucoup de talent! :smileFou:</i></center>
<h3>L'installation</h3>
<p>J'ai trouvé <a href="http://arsenal.deex.info/wordpress/documentation/installation/" hreflang="en">l'installation</a> un peu rebutante. Ce n'est pas dans ce qu'on à l'habitude de voir avec la plupart des scripts.</p>
<p>En premier lieu, il faut installer PyQt ce qui, en temps normal, n'est pas une mince affaire (en particulier sous Windows). Heureusement, un installeur "pas prise de tête" est proposé sur le site. C'est bien senti.</p>
<p>L'installation du tool à proprement parler est, quant à elle, pensé pour simplifier l’intégration en prod (via des variables d'environnements) mais peut se révéler assez rebutante pour les gens n'ayant pas forcément l'habitude de jouer avec leur <em>Maya.env</em>. D'autant que je suis sur qu'il aurait été possible de faire une installation "à l'ancienne" (les scripts dans le dossier <em>script</em>, les shelves dans le dossier <em>shelves</em>, etc...), c'est juste que ce n'est pas forcément propre et qu'à chaque MAJ ça aurait été un peu plus compliqué alors qu'avec le système actuel, il suffit de remplacer un seul dossier. :laClasse:</p>
<h3>La fenêtre de base</h3>
<p>Quand on ouvre, on a ça:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_001.png" alt="VRay_Arsenal_001.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_001.png, janv. 2013" height="933" width="536" /></p>
<p>Nous passerons les onglets en revu plus bas.</p>
<p>Il y a un bouton <em>épingler</em>. Une fois coche, Arsenal restera au devant de vos fenêtres. Sinon, il se comporte comme une fenêtre Maya.</p>
<p>Il y a aussi le bouton <em>close</em> en bas dont je ne vous ferais pas l'affront de vous expliquer l'utilité. :reflexionIntense:</p>
<p>Il y a trois onglets que nous allons voir dans l'ordre:</p>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-un-petit-tool-qui-fait-gagner-beaucoup-de-temps#pass">Pass</a>, qui regroupe les <em>Render Layer</em> de Maya et le système de passe de VRay. Leur utilisation combinées étant fréquente.</li>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-un-petit-tool-qui-fait-gagner-beaucoup-de-temps#quality">Quality</a>, qui est une feature fort pratique à l'utilisation: Un slider, de 0 a 99 pour augmenter ou diminuer la qualité du rendu via une augmentation progressive de vos paramètres de rendu.</li>
<li><a href="https://www.fevrierdorian.com/blog/post/2013/02/07/Deex-VRay-Arsenal-un-petit-tool-qui-fait-gagner-beaucoup-de-temps#toolbox">ToolBox</a>, qui regroupe pleins de petits outils qui font gagner pas mal de temps.</li>
</ul>
<h3>L'onglet <em>Pass</em> <a name="pass"></a></h3>
<p>Sur la partie haute vous avez, tout bêtement, les <em>Render Layer</em> de Maya (injustement nommé "Pass" dans les trois boutons de gauche). Cliquez sur un de ces <em>Render Layer</em> vous le sélectionne de la même façon que Maya. C'est juste pour gagner du temps. Pour des rendus ne nécessitant pas de passes complexes vous ne devriez pas en avoir besoins.</p>
<p>Notez que vous pouvez faire un <em>Set global to on</em> sur vos <em>RenderLayers</em> directement depuis cette fenêtre (voir <a href="http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Rendering_nodes_Render_Layer_render_attributes.htm,topicNumber=d30e656262" hreflang="en">doc Maya</a>).</p>
<p>Rentrons maintenant dans la partie la plus intéressante. :popcorn:</p>
<h4>Properties control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_onglet_propertiesControl.png" alt="VRay_Arsenal_onglet_propertiesControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_onglet_propertiesControl.png, janv. 2013" height="607" width="473" /></p>
<p>Ce système est extrêmement rapide pour préparer vos passes.</p>
<p>C'est très (très) simple:</p>
<ul>
<li>Vous sélectionnez un objet/groupe, vous faites <strong>Add</strong> et hop!</li>
<li>Vous voulez supprimez un objet/groupe? <strong>Remove</strong>!</li>
<li>Vous voulez voir les objets ayant une propriété particulière? <strong>Select</strong>!</li>
</ul>
<p>C'est à la fois limpide mais aussi beaucoup plus rapide que la méthode "conventionnelle" visant à gérer ces propriétés de manière granuleuse sur les groupes/objets. Ici, le système est inversé: Vous gérez les objets en fonction de leurs propriété.</p>
<p>Je trouve ça beaucoup plus clair. :redface:</p>
<p>Voici une explication rapide des différentes <em>properties</em>. Pour plus de détails, se référer à la <a href="http://arsenal.deex.info/wordpress/documentation/" hreflang="en">documentation officielle</a>.</p>
<h5>Black hole</h5>
<p>Les objets ayant cette <em>property</em> ne seront pas affiché dans le rendu (ils seront noir) et leur alpha sera vide.</p>
<p><strong>Receive shadow</strong>: Les objet <strong>Black hole</strong> ayant cette <em>property</em> recevront les ombres et les répercuteront dans leurs alphas (pour un sol par exemple).</p>
<h5>GI</h5>
<ul>
<li><strong>Generate off</strong>: Les objets ayant cette <em>property</em> ne seront pas considéré lors de la génération de l'illumination globale (pour séparer la <strong>GI</strong> entre les personnages et le décors par exemple).</li>
<li><strong>Receive off</strong>: Les objets ayant cette <em>property</em> ne recevront aucune illumination indirects.</li>
</ul>
<h5>Visibility</h5>
<ul>
<li><strong>Primary off</strong>: Les objets ayant cette <em>property</em> ne seront pas visibles sur les rayons primaires (ils seront donc visibles dans les reflections/refractions/GI).</li>
<li><strong>Reflection off</strong>: Les objets ayant cette <em>property</em> ne seront pas visibles dans les rayons de reflections (peut être pratique pour empêcher un objet complexe de se refléter si il n'apporte pas grand chose au rendu final).</li>
<li><strong>Refraction off</strong>: Les objets ayant cette <em>property</em> ne seront pas visibles dans les rayons de refractions.</li>
</ul>
<h5>Shadows</h5>
<p><strong>Cast off</strong>: Les objets ayant cette <em>property</em> ne projetteront pas d'ombres.</p>
<h4>On fly control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_002_onFlyControl.png" alt="VRay_Arsenal_002_onFlyControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_002_onFlyControl.png, janv. 2013" height="447" width="475" /></p>
<p>Je ne suis pas adepte des terminologies utilisées dans cet onglet. Je vais donc essayer d’être clair. :gne:</p>
<h5>Light select</h5>
<p>Ici on cherchera à sortir des passes par light ou pour toutes les lights. Ces <em>pass</em> seront nommé sous la forme <em>nomDeMaLightShape_normal</em>, <em>nomDeMaLightShape_diffuse</em>, etc...</p>
<ul>
<li><strong>Manual</strong>: Si vous souhaitez sortir les "contributions" uniquement pour certaines lights données, c'est ici que vous le ferez.
<ul>
<li><strong>Normal</strong>: Et c'est là ou ça prête pas mal à confusion: <em>Normal</em> ici ce n'est pas la normale au sens vecteur mais normal au sens "classique". C'est donc une passe contenant toute l'illumination direct d'une light. C'est tout. Notez que c'est la terminologie utilisé par VRay...</li>
<li><strong>Diffuse</strong>: <em>Pass</em> d'éclairage direct de la light ne contenant que les informations de diffusion.</li>
<li><strong>Raw</strong>: <em>Pass</em> contenant les informations "brut" de l'éclairage direct de la light</li>
<li><strong>Specular</strong>: <em>Pass</em> de spéculaire pour la light donnée.</li>
</ul></li>
<li><strong>Automatic</strong>: Disons que si vous avez comptez de toute façon sortir toute les passes pour toutes les lights de la scène, passez directement par là. Vous pouvez également combiner le mode <strong>Automatic</strong> pour un type de passe avec le mode <strong>Manual</strong> pour un autre type de passe.
<ul>
<li><strong>Specular</strong>: Sort toute les <em>pass</em> de spéculaire pour toute les lights de la scène.</li>
<li><strong>Raw</strong>: Idem que <strong>Specular</strong> mais pour le <strong>Raw</strong>.</li>
<li><strong>Diffuse</strong>: Idem mais pour la <strong>Diffuse</strong>.</li>
<li><strong>Normal</strong>: Idem mais pour la passe <strong>Normal</strong>.</li>
</ul></li>
</ul>
<h5>Arsenal settings</h5>
<p>Ici on a mes options préférées. Même si on ne peut pas deviner à quoi elles servent au premier abord. :siffle:</p>
<ul>
<li><strong>VrayMtl Lambert</strong>: Cocher cette case transformera, à la volé, au moment du rendu, tout les matériaux de votre scène en <em>VrayMtl Lambert</em>, ce qui est très pratique pour vérifier son éclairage globale. La ou cette option se distingue d'un <em>RenderLayer</em> avec un <em>material override</em>, c'est que les materiaux conserveront leur displacement/bump/normalmap si ils en ont.</li>
<li><strong>Material ID on fly</strong>: Cocher cette case génèrera des <em>Material ID</em> à la volé au moment du rendu en utilisant les noms des matériaux (sans les namespaces) comme "référence". Ainsi, vous obtiendrez toujours la même couleur de <em>Material ID</em> tant votre material porte le même nom. Bien entendu, il faut avoir créé un <em>Render Element</em> de type <em>Material ID</em>. Notez également que cette feature est compatible avec les VRayblendMaterial: Si vous avez blendé plusieurs materials (avec des masques) dans un VRayblendMaterial, chaque material aura son ID propre dans la pass.</li>
<li><strong>Proxy Objects ID on fly</strong>: Même principe que pour les <em>Material ID</em> mais cette fois dans le cas des proxy VRay.</li>
</ul>
<h4>Matte control</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_003_matteControl.png" alt="VRay_Arsenal_003_matteControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_003_matteControl.png, janv. 2013" height="252" width="473" /></p>
<p>Celui là aussi je l'aime bien tellement il est simple! :dentcasse:</p>
<p>Le principe est de générer des passes de "masque". Vous savez? Les masques RGB:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_013_passMask.png" alt="VRay_Arsenal_013_passMask.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_013_passMask.png, janv. 2013" height="369" width="324" /></p>
<p>En gros:</p>
<ul>
<li>Vous faites <strong>Create new</strong>.</li>
<li>Vous donnez un nom à votre passe de mask (<strong>Mask name</strong>). Si vous ne donnez pas de noms à votre passe de masque elle sera supprimée. :mitraille:</li>
<li>Vous sélectionnez un/des objets/groupes.</li>
<li>Vous faites <strong>add in red</strong> (ou green/blue).</li>
<li>Vous rendez et vous avez votre passe de mask.</li>
<li>Vous pouvez recommencer la manœuvre pour une autre passe.</li>
</ul>
<p>C'est tellement simple que je ne vois même pas quoi ajouter! :redface:</p>
<p>Ah si! Ce systeme outrepasse une limitation de VRay. Exemple:</p>
<ul>
<li>Vous avez un objet_A avec un ID 1.</li>
<li>Un objet_B avec un ID 2.</li>
<li>Ces deux objets sont dans un group avec ID 3.</li>
<li>Créez un <em>Render Element</em> <em>Multi Matte</em> et passez le <em>Red object ID</em> à 3.</li>
<li>Rendez et regardez votre passe de multimatte.</li>
</ul>
<p>Elle est noire. Pourquoi? Parce que VRay ayant remarqué que les objets dans le groupe ont un object ID, il ne les affiche pas dans la passe.</p>
<p>Avec le systeme de Arsenal, si vous demandez à ce que le groupe soit rouge, il sera rouge!</p>
<h4>FastControl</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_004_fastControl.png" alt="VRay_Arsenal_004_fastControl.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_004_fastControl.png, janv. 2013" height="183" width="474" /></p>
<p>Cet onglet rassemble juste les principales options de VRay pour les activer/désactiver rapidement.</p>
<h3>L'onglet <em>Quality</em> <a name="quality"></a></h3>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_005_qualityTab.png" alt="VRay_Arsenal_005_qualityTab.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_005_qualityTab.png, janv. 2013" height="773" width="492" /></p>
<center><i>Un gros slider qui change de couleur! :D</i></center>
<p>Ici on est clairement dans la partie qui plaira au personnes qui ne sont pas forcément des as du rendu. Et pourtant, vous allez voir qu'il peut très largement faire de l’œil à des personnes ayant l'habitude de modifier leurs paramètres à la main. :dentcasse:</p>
<p>La première chose à faire pour activer tout ça est de cliquer sur <strong>Save actual settings</strong> qui se chargera de mettre de coté vos paramètres actuels, puis sur <strong>Optimize</strong> pour mettre en place les différentes expressions. A partir de ce moment là, vous pouvez commencer à modifier le slider principale pour faire varier la qualité du rendu.</p>
<h4>Preset Type</h4>
<p>Ici, on parle plus de configuration du slider que de <em>Preset</em>. Il y a deux <em>Preset Type</em>:</p>
<ul>
<li><em>deeX_interior</em></li>
<li><em>deeX_exterior</em></li>
</ul>
<p>Ces deux choix représentent la majorité des cas de lighting.</p>
<p>Les presets en question sont de simple fichier texte que vous pouvez retrouver dans:</p>
<pre class="bash bash">C:\Users\Narann\Documents\maya\deeXVRayArsenal\<span style="color: #000000;">2013</span>\win64\scripts\presets</pre>
<p>Ces fichiers, à la syntaxe relativement simple, permettent de piloter les ranges (min et max) des attributs de VRay qui seront ensuite modifié par votre slider. Si je ne dis pas de bêtises, la relation entre le slider et les paramètres qu'il drive est <a href="http://fr.wikipedia.org/wiki/Logarithme" hreflang="fr">logarithmique</a> pour éviter que les paramètres n'explosent vos temps de rendus quand vous commencer à vous monter haut dans le slider. :grenadelauncher:</p>
<p>Si la possibilité de créer ces propres presets n’intéressera surement pas les lighters <del>du dimanche</del> occasionnels, le fait de pouvoir mettre sois même ces paramètres <em>min</em> et <em>max</em> à piloter peut être très intéressant pour les lighters à poil dûr qui ont leurs petites habitudes. :papi:</p>
<p>D’ailleurs, il aurait presque fallu que cette outil soit indépendant de VRay pour pouvoir, par exemple, piloter Mental Ray. :baffed:</p>
<blockquote><p>Si vous souhaitez empêcher la modification d'un attribut par Arsenal il suffit de le locker.</p></blockquote>
<h4>Offset quality</h4>
<p>On a ici une très bonne initiative. L'idée étant d'appliquer un offset au slider pour certains paramètres.</p>
<p>Par exemple, supposons que mon slider soit à <em>50</em>. Je trouve que le sampling est un peu sensible et augmente les temps de rendu trop rapidement. Pourtant, je suis satisfait du reste.... Qu'à cela ne tienne, il me suffit de cocher la case <strong>Image sampler</strong> puis de taper <em>-10</em> pour que les paramètres du sampler s'applique comme si mon slider globale était à <em>40</em>! :youplaBoum:</p>
<h4>Optimize material(s)</h4>
<p>Encore une initiative intéressante: Vous déterminer deux valeurs extrêmes de subdivision (sampling), cliquez sur le bouton <strong>Optimize material(s)</strong> et Arsenal va déterminer la valeur à utiliser en fonction de la valeur de <strong>Glossiness</strong> du material.</p>
<p>Attention toutefois, le système est un peu trop "bête". Si une texture est connecté au paramètre de glossiness, la valeur subdiv est déterminé en fonction de la valeur de l'attribut, même si elle ne correspond à rien en temps que tel. Une option telle que <em>skip connected</em> pourrait être intéressante.</p>
<p>Notez la checkbox à droite <strong>LayerMode</strong>. Si vous la cocher avant de cliquer sur le bouton <strong>Optimize material(s)</strong> et que vous êtes dans un <em>RenderLayer</em> (autre que le <em>masterLayer</em>), les attributs seront modifié uniquement sur le <em>RenderLayer</em> en cours.</p>
<h4>Optimize light(s)</h4>
<p>Pas sur que ce bouton soit très utile. Pour l'instant il ne fait que passer le paramètre de Subdiv des VRayLights de la scène à 5...</p>
<h3>L'onglet <em>ToolBox</em> <a name="toolbox"></a></h3>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_006_toolBoxTab.png" alt="VRay_Arsenal_006_toolBoxTab.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_006_toolBoxTab.png, janv. 2013" height="707" width="494" /></p>
<p>Ici vous trouverez des petits outils très spécifiques.</p>
<h4>Proxy</h4>
<p>Les <a href="http://www.spot3d.com/vray/help/maya/150R1/vrayproxy_params.htm" hreflang="en">VRayProxy</a> sont une petite merveille. On les a utilisés sur <a href="http://www.allocine.fr/film/fichefilm_gen_cfilm=178179.html" hreflang="fr">Or Noir</a> pour faire des cycles d'animation de cheval changeant de vitesse.</p>
<h5>Multi proxy importer</h5>
<p>Ce bouton permet d'importer plusieurs VRayProxy car, aussi surprenant que cela puisse paraitre, il n'est pas possible de faire cela en standard...</p>
<h5>Shader auto connect</h5>
<p>Quand vous exportez un VRayProxy, des "slots d'assignations" y sont créés. Le principe est de pouvoir conserver, à l’intérieur du proxy, les assignations de vos shaders pour les réassigner.</p>
<p>Une fois le VRayProxy réimporté dans votre scène, vous pouvez lui appliquer un <a href="http://www.spot3d.com/vray/help/maya/150R1/vraymeshmtl_params.htm" hreflang="en">VRayMeshMaterial</a> (pour info, il est déjà créé au moment de l'import). Ce material affichera les différents slots d'assignations de votre proxy pour y connecter vos propres shaders.</p>
<p>Le bouton <strong>Shader auto connect</strong> permet de reconnecter automatiquement les shaders en fonction de leur noms, ce qui évite d'avoir à le faire sois même. Sur des proxy ayant des dizaines voir des centaines d'assignations, c'est plutôt pratique...</p>
<h5>Ignore namespace</h5>
<p>Cette case permet d'ignorer les namespaces des shaders de votre scène pour les réassigner au proxys. Dans le principe, cela permet d'avoir ces shaders en référence externe (avec un namespace) sans pour autant que ça ne pose problème de les reconnecter via leur noms.</p>
<h4>ID</h4>
<p>Une fois de plus, ici nous avons des outils pour assigner très rapidement des ID aux matériaux et aux objets.</p>
<p>L’intérêt est ensuite de sortir ces ID sous forme de passe à donner à vos amis du compositing.</p>
<h4>Material ID</h4>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_008_materialID.png" alt="VRay_Arsenal_008_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_008_materialID.png, janv. 2013" height="431" width="383" /></p>
<ul>
<li><strong>Add on</strong>: Permet d'appliquer les attributs de <em>Material ID</em> aux materials sélectionnés/tout les materials/tout les shading engine.</li>
<li><strong>Set on</strong>: Applique un ID unique aux attributs de <em>Material ID</em> des materials sélectionnés/tout les materials/tout les shading engine. Ce numéro est généré aléatoirement en se servant du nom du material. Cette méthode est à double tranchant: Si vous changez le nom d'un material puis que vous recliquez sur <em>Set on</em>, la couleur de son ID changera également. Notez que la checkbox <strong>Material ID on fly</strong> de l'onglet <em>Pass</em>/<em>On fly control</em> fait la même chose directement à la volée. :)</li>
<li><strong>Remove on</strong>: Supprime les attributs de <em>Material ID</em> des materials sélectionnés/tous les materials/tous les shading engine.</li>
</ul>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_014_materialID.png" alt="VRay_Arsenal_014_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_014_materialID.png, janv. 2013" height="115" width="528" /></p>
<p>Dernier point, pour que tout cela fonctionne, n'oubliez pas de créer une pass (un <em>Render Element</em>) de <em>Material ID</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_007_materialID.png" alt="VRay_Arsenal_007_materialID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_007_materialID.png, janv. 2013" height="568" width="437" /></p>
<h4>Object ID</h4>
<p>Même principe que pour les <em>Material ID</em> mais au niveau des objets.</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_015_objectID.png" alt="VRay_Arsenal_015_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_015_objectID.png, janv. 2013" height="84" width="451" /></p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_010_objectID.png" alt="VRay_Arsenal_010_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_010_objectID.png, janv. 2013" height="621" width="570" /></p>
<center><i>Notez la différence avec la passe de ''Material ID''.</i></center>
<p>Chaque objet aura un identifiant différent.</p>
<p>Une fois de plus, n'oubliez pas de créer le <em>Render Element</em> <em>Object ID</em>:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2013_01_15_VRay_Arsenal/VRay_Arsenal_009_objectID.png" alt="VRay_Arsenal_009_objectID.png" style="display:block; margin:0 auto;" title="VRay_Arsenal_009_objectID.png, janv. 2013" height="549" width="429" /></p>
<h4>Material control</h4>
<p>Cette partie vous permet d'appliquer quelques valeurs clefs à tous les materials/aux material sélectionnés en un seul clique.</p>
<ul>
<li>Reflection/Refraction Subdivs</li>
<li>Reflection/Refraction Interpolation</li>
<li>Reflection/Refraction Max depth</li>
</ul>
<p>Une option <strong>Trace</strong> (Reflection/Refraction) pour activer/désactiver complètement le raytracing aurait put être intéressante ici. :dentcasse:</p>
<h4>Lights control</h4>
<p>On peut pas faire plus simple: Appliquer une valeur de <strong>Shadow subdivs</strong> à toutes les lights/les lights sélectionnées de la scène en un clique.</p>
<h3>Techniquement, comment ça marche?</h3>
<p>Hahaha! La particularité de cet outil est de ne pas modifier votre scène quand vous générez les passes (Sauf les <em>RenderLayers</em> de Maya bien évidement), que vous faites du "On the fly" ou même du Matte.</p>
<p>Mais alors? Comment qu'il fait? :gne2:</p>
<p>Et bien il utilise une feature de VRay que je rêverai de voir généralisé sur tout les moteurs tant elle est monstrueuse en terme de possibilités: L'API Python <a href="http://www.spot3d.com/vray/help/maya/150R1/render_scene_access.htm" hreflang="en">VRay Scene Access</a>.</p>
<p>Je quote la doc, c'est très clair:</p>
<blockquote><p>The V-Ray scene access python API allows you to modify the V-Ray scene after it is translated by the V-Ray for Maya translator, and before it is rendered and/or exported to a .vrscene file.
The scene access API allows you to expand the V-Ray for Maya translator by providing custom translation for constructs that are not recognized by V-Ray, or for modifying the scene before rendering without changing the original Maya scene.</p></blockquote>
<p>Boum! Rien que ça! :sauteJoie:</p>
<p>En gros, ça permet de piloter le moteur avant le rendu. On peut donc imaginer des trucs de dingue comme générer une scène directement dans VRay, à la volé, sans avoir recours à un fichier vrscene. Pour ceux qui ont déjà travaillé avec Renderman, ça veut dire fini la génération des RIB bien lourd qui ne servent qu'une fois. Ici, on peut piloter VRay via du Python!</p>
<p>J'ai posé la question sur <a href="http://forum.nvidia-arc.com/showthread.php?8097-Python-to-controle-mental-ray" hreflang="en">le forum de Nvidia ARC</a> (ancien Mental Image) tant je trouvais ça génial mais je ne suis pas sur que ça change grand chose. :triste:</p>
<p>Bref, l'outil de Damien utilise ça, et c'est ce qui lui permet de conserver une scène Maya propre et de pouvoir intervenir directement au niveau de VRay avant le rendu.</p>
<h3>Conclusion</h3>
<p>Pour avoir testé le truc de fond en comble je peut vous assurez qu'il vaut (très) largement son prix (69€! :bravo:).</p>
<ul>
<li>Le temps gagné à préparer ses passes est monstrueux et vous évite d'avoir à passer par toutes les fenêtres de VRay.</li>
<li>Le fait de pouvoir contrôler les objets en fonction de leurs <em>properties</em> et pas l'inverse est tout ce qu'il a de plus simple.</li>
<li>La gestion des Mattes RGB est aussi très simple.</li>
<li>Des Material/Object ID on the fly qui marchent en quelques cliques... Il ne reste aucun prétexte pour ne pas les utiliser.</li>
<li>La VRayMtlLambert on the fly meriterai une section à elle toute seule tant elle peut être pratique.</li>
<li>Le Quality slider va loin avec les preset et les offsets.</li>
</ul>
<p>Ce qu'il manque:</p>
<ul>
<li>Pouvoir exporter son "set de passe" dans un fichier texte pour l'importer plus tard (c'est prevu!).</li>
<li>Encore plus d'options <em>On the fly</em> (Je suis fan du principe).</li>
<li>Une API Python aussi simple à utiliser que les boutons. Genre <em>arsenal.pass.propertiesControl.blackHole.add("myObject")</em>. Mais à part moi je ne suis pas sûr que ça serve à grand monde! :trollface:</li>
</ul>
<p>Bon, je vends <del>un peu</del> complètement le truc mais oui: Il vaut le coup! :aupoil:</p>
<p>Au delà du fait que je vous invite à vous ruer sur cet outil, j'espère que si vous le possédez déjà, cette présentation/tuto vous permettra d'aller encore plus loin! :)</p>
<p>A bientôt!</p>
<center><i>:marioCours:</i></center>
Quoi de neuf? Wiki, TD Nuke, etc...urn:md5:baef6decdb4bd78bf47bb82e743f0b332011-12-10T11:29:00+01:002013-07-26T18:05:46+02:00NarannInfographie 3D - Boulotcoralfrmayanuketraductionvraywiki<p><img src="https://www.fevrierdorian.com/blog/public/billets/2011_12_10_quoi_de_neuf/coral_tn.png" alt="coral_tn.png" style="float:left; margin: 0 1em 1em 0;" title="coral_tn.png, déc. 2011" height="150" width="150" />Je sais que mon blog parait un peu à l'abandon... C'est pas faux! :siffle:</p>
<p>Il y a eu pas mal de changements de mon coté. Le premier c'est que je suis maintenant TD Nuke à <em>Illumination Mac Guff</em> (Compo sur <a href="http://movies.yahoo.com/feature/lorax.html" hreflang="en">The Lorax</a>).</p>
<p>Forcement, Nuke j'y avais peu touché et c’était l'occasion de voir si la partie script de soft était aussi nul qu'on le disait. :enerve:</p>
<p>De plus, j'ai pas mal bossé sur <a href="http://fevrierdorian.com/wiki/index.php?title=Accueil" hreflang="fr">mon wiki</a> (je sais, il y a quasiment personne qui sait que j'ai un wiki...). Dans ce billet je vous propose un résumé des choses que j'ai faites qui peuvent vous intéresser. :sourit:</p> <h3>Traduction articles VRay</h3>
<p>J'ai traduit deux articles très intéressants sur VRay. Il est à noté que les méthodes expliquées ici sont applicables à la plupart des moteurs de rendu raytrace. Vous ne perdrez donc pas votre temps en lisant ça. :redface:</p>
<ul>
<li><a href="http://fevrierdorian.com/wiki/index.php?title=Les_param%C3%A8tres_de_V-Ray_-_Le_Raycasting_%28Traduction%29" hreflang="fr">Les paramètres de V-Ray - Le Raycasting</a>. Traduit depuis: <a href="http://renderstuff.com/best-vray-settings-raycasting-cg-tutorial/" hreflang="en">Best V-Ray Settings – Raycasting</a> de <a href="http://renderstuff.com/" hreflang="en">RenderStuff</a>. C'est un article expliquant comment VRay (et les raytracers en général) utilisent la mémoire.</li>
<li><a href="http://fevrierdorian.com/wiki/index.php?title=V-Ray_-_Le_DMC_Sampler_d%C3%A9mystifi%C3%A9_%28Traduction%29" hreflang="fr">V-Ray - Le DMC Sampler démystifié</a>. Traduit depuis: <a href="http://interstation3d.com/tutorials/vray_dmc_sampler/demistyfing_dmc.html" hreflang="en">Demystifying V-Ray DMC Sampler</a> de <a href="http://interstation3d.com/about.html" hreflang="en">Toni Bratincevic</a>. Un article de référence expliquant les subtilités du DMC sampler de VRay par un gars de chez <a href="http://www.blur.com/" hreflang="en">Blur</a>.</li>
</ul>
<h3>Mental ray</h3>
<p>Toujours dans le rendu, j'ai traduit <a href="http://fevrierdorian.com/wiki/index.php?title=Nodes_builtin_bsdf_%28mentalray%29" hreflang="fr">quelques posts de Bitter sur le BSDF dans mental ray</a>. Je ne connaissais pas bien, c’était très intéressant et je pense que ça va devenir la norme d'ici quelques temps.</p>
<h3>Nuke</h3>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/Logo_NUKE.gif" alt="Logo_NUKE.gif" style="display:block; margin:0 auto;" title="Logo_NUKE.gif, déc. 2011" height="185" width="165" /></p>
<p>J'ai commencé une page sur <a href="http://fevrierdorian.com/wiki/index.php?title=Commandes_de_base_%28Nuke%29" hreflang="fr">les commandes de base Nuke</a>. Ça me sert de pense bête. Je vous la donne... Si ça peut vous aider... :sourit:</p>
<p>Et aussi une petite page sur comment <a href="http://fevrierdorian.com/wiki/index.php?title=Cr%C3%A9er_un_gizmo_%28Nuke%29" hreflang="fr">créer un gizmo avec des attributs</a>. C'est très basique hein... :seSentCon:</p>
<p>Je commence à me sentir à l'aise avec le compo et je pense poster quelques billets.</p>
<p>Un qui me tient à cœur c'est concernant la profondeur de champs via Z-Depth. J'ai entendu tellement de bêtises la dessus que je pense qu'un petit tour des méthodes peut être intéressant.</p>
<p>Je parlerai peut être aussi, dans un billet express, des différences fondamentales dans la façon de scripter dans Nuke et dans Maya. L'approche n'est pas tout à fait la même.</p>
<p>Bref, faut que je me libère du temps pour tout ça. :)</p>
<h3>Et surtout: coral!</h3>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/coralAppIcon.png" alt="coralAppIcon.png" style="display:block; margin:0 auto;" title="coralAppIcon.png, déc. 2011" height="168" width="256" /></p>
<p>De même, je code dans le projet <a href="http://coral-app.com/" hreflang="en">coral</a> (repo <a href="http://code.google.com/p/coral-repo/" hreflang="en">ici</a>). C'est une sorte de "mini-houdini" pour faire toute sortes de choses procédurales. L’intérêt est de pouvoir le connecter à Maya:</p>
<div class="external-media" style="margin: 1em auto; text-align: center;">
<iframe src="http://player.vimeo.com/video/29664872?title=0&byline=0&portrait=0" width="601" height="338" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</div>
<center><i>Et encore, dans cette vidéo on est loin de voir toute les possibilités du soft...</i></center>
<p>Il a été code par <a href="http://www.linkedin.com/pub/andrea-interguglielmi/4/b38/b97" hreflang="fr">Andrea Interguglielmi</a> (Un ancien de chez MPC et Animal Logic... On a vu pire comme CV... :sourit: ).</p>
<p>Personnellement je code dans la partie OpenGL que je remet un peu d'aplomb pour pouvoir faire des choses plus évolués. Les choses avances tranquillement. La correction de bug étant la priorité (le but étant de pouvoir utiliser coral en prod). Andrea a une idée assez claire de ce qu'il souhaite intégrer (deformer, contrôle de foule, etc...).</p>
<p>Je pense que coral a aussi un énorme potentiel en VFX pur (modification de géométries, effets procéduraux, etc...). C'est peut être une voie que je vais privilégier car travailler sur un vrai système de <em>shading network</em> (un point qui semble intéresser Andrea) ne me semble pas une priorité. Il faut que j'en discute avec lui pour savoir ce qu'il a derrière la tête :hihi: .</p>
<p>Voila voila! Comme vous voyez, je suis pas mal booké! :dentcasse:</p>
<p>A bientôt!</p>
<p>Dorian</p>
<center>:marioCours:</center>
My impressions about mental ray's futur (English Translation)urn:md5:993e273f90a68ceeaf2188d0c0e4ede32011-07-17T21:50:00+02:002013-07-26T18:07:31+02:00NarannInfographie 3D - Boulotenmental raynvidiavray<p><img src="https://www.fevrierdorian.com/blog/public/divers/mental_ray_its_over_tn.png" alt="mental_ray_its_over_tn.png" style="float:left; margin: 0 1em 1em 0;" title="mental_ray_its_over_tn.png, juil. 2011" height="150" width="150" />
I use mental ray since 2004 and it quickly become my favorite render engine. I attended, as a lot of you, to his slow decline over years... I have opportunity to work with Vray for a vfx feature film. The pipeline is around Vray and uses many new features highly "prod oriented" that make our lives easier.</p>
<p>It was my first experience with this engine and I must unfortunately admit it made me realize that mental ray can never back up the hill... :neutral:</p>
<p>I propose you my little impression on all of that in this post.</p> <h3>Some illusions...</h3>
<p>At first, I was pretty confident about mental ray's futur. Each new version add somme little cool features and the enemy to be defeated was that Autodesk which was unable to make a correct integration of this engine in they softwares. You had to tinker to use the latest features but you could get by. (<a href="http://forum.mentalimages.com/showthread.php?7835-Why-not!#post_32500" hreflang="en">Read</a>, the very informative history of the integration of mental ray in Maya by one of its devs).</p>
<p>I saw many active <a href="http://forums.cgsociety.org/showthread.php?t=639480" hreflang="en">threads</a> about some "heads" leaving the project or the futur of mental ray following the purchase of Nvidia.</p>
<p>Nvidia had Gelato and, peoples making the project quitting it, found themselves without any GPU rendering solution under hand, hence the acquisition of mental image to retrieve devs of mental ray and make them work with CUDA.</p>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/Nvidia_Cuda_logo.jpg" alt="Nvidia_Cuda_logo.jpg" style="display:block; margin:0 auto;" title="Nvidia_Cuda_logo.jpg, août 2010" height="303" width="500" /></p>
<p>At first, everyone thought, eyes full of stars, that mental ray went "CUDA accelerated" but just think for two seconds to realize that the problem was actually more complicated... :tuComprendRien:</p>
<p>Paolo Berto (<a href="http://forums.cgsociety.org/member.php?u=124550" hreflang="en">jupiterjazz</a>), an influent member <a href="http://www.jupiter-jazz.com/group" hreflang="en">working</a> for the jupiter jazz group (<del>a</del> THE group of vfx dev), and obviously well informed <a href="http://forums.cgsociety.org/showpost.php?p=5203466&postcount=14" hreflang="en">wrote</a> this:</p>
<blockquote><p>No, mental ray won't be ever ported on cuda, there is no intention and it simply can't. Only some parts could, and if so it will be done just for marketing reasons.</p></blockquote>
<p>A member ask him about that and <a href="http://forums.cgsociety.org/showpost.php?p=5204780&postcount=18" hreflang="en">he give</a> a little more details:</p>
<blockquote><p>So, to make things work on cuda you need to have a lot of *coherent* computations to perform: the problem of mental ray is that it is casting one ray then calling a native C shader to shade the intersection then maybe the shader casts another batch of rays and so on. Very non coherent.<br />
This is just not suited for gpu computation unless if a massive rewrite/refactoring of the pipeline is done by mental images, which will not happen soon enough (I am speaking about years).<br />
Some specific task like fast AO could be definitely done though (and also this won't happen soon).<br />
<br />
Also another problem of mental ray is that the codebase is 15 years old (and it's not a Whiskey), native C for the CPU, full of pointers mem alloc and other shit, so to use an euphemism is a fcking mess.</p></blockquote>
<p>It is quite clear:</p>
<ul>
<li>Not GPU thinked.</li>
<li>Too old.</li>
<li>"Stop dreaming!"</li>
</ul>
<p>Everyone wondered what Nvidia was going to do of a full CPU render engine that did not seem to be able to change...</p>
<p>All indulged in some speculations but until then, there was nothing let guessing what would happen.</p>
<p>My doubts really began in 2009 at the Nvidia's <a href="http://www.youtube.com/watch?v=TQsXualxLVs" hreflang="en">GPU Technology Conference</a>. I saw one of the single "old dev" of mental ray and I learned that he had worked "several years" on the thing we all expected (irony): iRay and Reality Server.</p>
<p>Maybe I was the only one but I immediately thought that putting the last "heads" (there is not many) on a project full CUDA that will be used to sell entire plants which are more for "Arch and Viz" than anim/vfx did not bode well for mental ray.</p>
<h3>...to desillusions</h3>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/mental_image_logo.png" alt="mental_image_logo.png" style="display:block; margin:0 auto;" title="mental_image_logo.png, juil. 2011" height="40" width="175" /></p>
<p>And that's what happened. Nvidia announced, <a href="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/" hreflang="en">very politely</a> it <del>dismantled</del> reorganized mental image to, I quote :</p>
<blockquote><p>integrating it into our other activities focused on software solutions for design professionals</p></blockquote>
<p>It follows:</p>
<blockquote><p>The combined group brings together mental images with related efforts in the Quadro group focused on the world’s most demanding design professionals, from feature film artists to architects and product designers.</p></blockquote>
<p>Basically, they bring closer mental picture from "Quadro Group" to "focus" on the needs of film artists... :septic:</p>
<p>Mhum... Personally, the more you avoid Quadros, CUDA and other proprietary technologies which are a misery to deploy and very expensive, the more I am satisfied ...</p>
<p>So for this time, it's completely missed... I think many big CAD companies invest in there. But a VFX studio? Seriously?</p>
<p>Nvidia left mental image alone for a while (about four years during which I kept hope), to let them keep their commitments (this is often what happens for big acquisitions) but now they resume the reindeer and <a href="https://twitter.com/#!/virtualritz/status/72603197121896448" hreflang="en">it hurts</a>:</p>
<blockquote><p>Mental images is gone. Rumor has it ~30 people were laid off, management was dispersed. The corporate bullshit version: <a href="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/" title="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/">http://blogs.nvidia.com/2011/05/nvi...</a></p></blockquote>
<p>As we are in the rumor, it seems that the mental ray team has not been dismantled (although there were some voluntary departures). But insofar Nvidia is a very opaque compagnie you can't have more informations.</p>
<p>That said, I would be in bad faith if I said that <a href="http://www.mentalimages.com/products/mental-ray/mental-ray-39.html" hreflang="en">the latest mental ray features list</a> was empty, far from it!</p>
<p>Mental ray is a very good render engine (I suspect to be faster than Vray in pure raytracing...) but the big studios do not make prods on a "good engine" but rather "an engine they considers to be the best". What mental ray is no longer.</p>
<p>If you have some times, <a href="http://forum.mentalimages.com/showthread.php?7402-Iray-For-OpenCl" hreflang="en">read this four messages's short thread</a>... It summarizes perfectly in what mental image is sinking.</p>
<p>In short, a person asks a simple argued question to iray's devs about OpenCL (it will include reference to Chaos Group). No dev will respond (it's pretty rare, they often take the time to answer, even briefly to such issues) but a person, who appears to be more a Nvidia's commercial than a dev answer a marketing pitch promoting CUDA face OpenCL:</p>
<blockquote><p>iray uses C for CUDA because it needs the highest performance and greatest capabilities available to it.</p>
<p>
While NVIDIA leads the industry in the broadest OpenCL support, the language is several years behind C in both capabilities and tools, and it advances at the speed of open standards. A CPU fallback is unnecessary for iray as it supports x86 directly - far more efficiently than a fallback could. In using C for CUDA, iray ensures you have the very latest GPU capabilities as soon as they come online, while having direct influence on its evolution.</p>
<p>
With C for CUDA, there are over 1/2billion NVIDIA GPUs that can increase iray performance. I believe you would find the %increase from AMD to be quite small as their OpenCL support is limited to their latest offerings.</p>
<p>
As for CPUs, iray runs as well on AMD as Intel, taking full advantage of multiple cores and sockets.</p>
<p>
- Phil
NVIDIA</p></blockquote>
<p>I think, for a support forum, it's stain. Especially as the defenders of CUDA on <a href="http://www.chaosgroup.com/forums/vbulletin/showthread.php?53415-Cuda-4.0&p=451532#post451532" hreflang="en">the Chaos Group forum</a> debit the same kind of nonsense to finally take a big setback from Vlado, senior member of the Chaos Group forum:</p>
<blockquote><p>- (Membre): I had a feeling CUDA is gonna kick OpenCL in the ass and it is ! I hope that OpenCL will be able to share memory too at some point... <br />
- (vlado): We do have a CUDA version of V-Ray RT that we use internally, so if we see that there are significant benefits of going this way, it is certainly something that we would do without too much hesitation.<br />
- (Membre): Wow... Release it ploxxxxxxxxx, isn't it a lot more responsive(refresh speed) then opencl btw?<br />
- (vlado): No, not really. In some of the last tests, OpenCL was a tad bit faster.</p></blockquote>
<p>So here we are: For Chaos Group, released a CUDA version of V-Ray RT is useless because it is less efficient...</p>
<p>And while we're talking about that: The arrival of Vray for Maya could had be done without too much noise... It was expected by many but not necessarily the VFX industrie at that time. Chaos Group seems to have understood that the needs of Maya users are not quite the same as 3dsMax users where Vray was considered as the rendering engine "for archviz"...</p>
<p>Who would have thought, with the release of Vray for Maya that he would serve Digital Domain to make Tron Legacy's shots:</p>
<iframe src="http://player.vimeo.com/video/20014133?title=0&byline=0&portrait=0" width="590" height="332" frameborder="0"></iframe>
<p>Indeed, this version is very "prod oriented". They did not try to "copy" their render engines from 3dsMax to Maya. They didn't try to uniform it, they adapted it. And very cleverly adapted...</p>
<h3>Conclusion</h3>
<p>In short, the purpose of this post was not to praise Vray but to explain why I can't believe in mental ray anymore...</p>
<p>The fact it's still an excellent render engine and it's integrated to Maya and 3ds Max leaves him a bright future and he will not go away at once. But I think the studios will turn away slowly, as though faithful for years, I began to do so.</p>Mes impressions sur mental ray et son futururn:md5:16a24118616e0aaefa3347ce07f05fa62011-07-17T20:50:00+02:002013-07-26T18:09:07+02:00NarannInfographie 3D - Boulotfrmental raynvidiarenduvray<p><img src="https://www.fevrierdorian.com/blog/public/divers/mental_ray_its_over_tn.png" alt="mental_ray_its_over_tn.png" style="float:left; margin: 0 1em 1em 0;" title="mental_ray_its_over_tn.png, juil. 2011" height="150" width="150" />J'utilise mental ray depuis 2004 et il est rapidement devenu mon moteur de prédilection. J'ai assisté, comme pas mal d'entre vous, à son lent déclin au fil des années... J'ai l'occasion de bosser sous Vray pour les vfx d'un long métrage. Le pipeline tourne autour de Vray et utilise un certain nombre des nouvelles features très orientées prod qui nous facilitent pas mal la vie.</p>
<p>C'était ma première expérience sur ce moteur et je dois malheureusement admettre qu'elle m'a fait prendre conscience que mental ray ne pourra jamais remonter la pente... :neutral:</p>
<p>Je vous propose ma petite impression sur tout ça dans ce billet.</p> <h3>Des illusions...</h3>
<p>Au début, j’étais plutôt confiant quand à l'avenir de mental ray. Chaque nouvelle version intégrait des petites features intéressantes et l'ennemi à abattre était Autodesk qui était incapable de faire une intégration correcte de ce moteur dans ses softs. Il fallait souvent bricoler pour pouvoir utiliser les dernières nouveautés mais on pouvait s'en sortir. (<a href="http://forum.mentalimages.com/showthread.php?7835-Why-not!#post_32500" hreflang="en">A lire</a>, l'histoire, très instructive, de l'intégration de mental ray dans Maya par un de ses devs).</p>
<p>Je voyais pas mal de <a href="http://forums.cgsociety.org/showthread.php?t=639480" hreflang="en">threads</a> animés sur CGTalk concernant le départ de telle ou telle "tête" du projet ou l'avenir de mental ray suite au rachat de Nvidia.</p>
<p>Nvidia avait Gelato et, les différentes personnes s'occupant du projet l'ayant quitté, se retrouvaient sans aucune solution de rendu GPU sous la main, d’où le rachat de mental image pour récupérer des membres du développement de mental ray et les faire travailler sur CUDA. :bete:</p>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/Nvidia_Cuda_logo.jpg" alt="Nvidia_Cuda_logo.jpg" style="display:block; margin:0 auto;" title="Nvidia_Cuda_logo.jpg, août 2010" height="303" width="500" /></p>
<p>Au début, tout le monde à pensé, les yeux pleins d'étoiles, que mental ray allé être "CUDA accelerated" mais il suffit de réfléchir deux secondes pour bien se rendre compte que le problème était en fait plus compliqué... :tuComprendRien:</p>
<p>Paolo Berto (<a href="http://forums.cgsociety.org/member.php?u=124550" hreflang="en">jupiterjazz</a>), un membre influent de CGTalk <a href="http://www.jupiter-jazz.com/group" hreflang="en">travaillant</a> notamment pour le groupe jupiter jazz (<del>un</del> LE collectif de développeurs vfx), et visiblement bien informé <a href="http://forums.cgsociety.org/showpost.php?p=5203466&postcount=14" hreflang="en">écrivait</a> ceci:</p>
<blockquote><p>No, mental ray won't be ever ported on cuda, there is no intention and it simply can't. Only some parts could, and if so it will be done just for marketing reasons.</p></blockquote>
<p>Un membre le relance et <a href="http://forums.cgsociety.org/showpost.php?p=5204780&postcount=18" hreflang="en">il rentre</a> un peu plus dans les détails:</p>
<blockquote><p>So, to make things work on cuda you need to have a lot of *coherent* computations to perform: the problem of mental ray is that it is casting one ray then calling a native C shader to shade the intersection then maybe the shader casts another batch of rays and so on. Very non coherent.<br />
This is just not suited for gpu computation unless if a massive rewrite/refactoring of the pipeline is done by mental images, which will not happen soon enough (I am speaking about years).<br />
Some specific task like fast AO could be definitely done though (and also this won't happen soon).<br />
<br />
Also another problem of mental ray is that the codebase is 15 years old (and it's not a Whiskey), native C for the CPU, full of pointers mem alloc and other shit, so to use an euphemism is a fcking mess.</p></blockquote>
<p>C'est assez clair:</p>
<ul>
<li>Pas pensé GPU.</li>
<li>Trop vieux.</li>
<li>"Arrêtez de rêver!"</li>
</ul>
<p>Tout me monde se demandait ce qu'Nvidia allait bien pouvoir foutre d'un moteur full CPU qui n'avait pas l'air de pouvoir en changer...</p>
<p>Tous se laissait aller à ces spéculations mais jusque là, rien ne permettait de deviner ce qui allait ce passer.</p>
<p>Mes doutes ont réellement commencé durant l'année 2009, lors de la <a href="http://www.youtube.com/watch?v=TQsXualxLVs" hreflang="en">GPU Technology Conference</a> de Nvidia. J'y vis l'un des seul et unique "ancien membre" de mental ray et j'y ai appris qu'il avait travaillé depuis "quelques années" sur le truc que nous attendions tous: iRay et son Reality Server. (super... :septic: )</p>
<p>Et bien j'étais peut être le seul, mais j'ai tout de suite pensé que mettre les dernières têtes sur un projet full CUDA qui servira à vendre des installations entières qui sont plus destiné à de "l'Arch and Viz" qu'à de l'anim/fx n'augurait rien de bon pour mental ray. :gne:</p>
<h3>...aux désillusions</h3>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/mental_image_logo.png" alt="mental_image_logo.png" style="display:block; margin:0 auto;" title="mental_image_logo.png, juil. 2011" height="40" width="175" /></p>
<p>Et c'est ce qui arriva. Nvidia annonça, <a href="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/" hreflang="en">très poliment</a>, qu'il <del>démantelait</del> réorganisait mental image pour, je cite:</p>
<blockquote><p>integrating it into our other activities focused on software solutions for design professionals</p></blockquote>
<p>S'en suit:</p>
<blockquote><p>The combined group brings together mental images with related efforts in the Quadro group focused on the world’s most demanding design professionals, from feature film artists to architects and product designers.</p></blockquote>
<p>En gros, ils rapprochent mental image du "Quadro Group" pour se "focuser" sur les besoins des film artists... :septic:</p>
<p>Mouai mouai... Personnellement, plus on se tient éloigné des Quadro, CUDA et autres techno proprios qui sont une misère à déployer et coutent très cher, plus je suis satisfait...</p>
<p>Donc pour le coup, c'est complètement raté... Je vois bien des grosses entreprises de CAD investir là dedans. Mais un studio de VFX? Sérieusement?</p>
<p>Nvidia à laissé mental image tranquille pendant quelques temps (quatre années environ durant lesquelles j'ai gardé espoir :pasClasse: ), sûrement pour les laisser tenir leurs engagements (c'est souvent ce qui arrive lors de grosses acquisitions) mais là ils reprennent les rennes et <a href="https://twitter.com/#!/virtualritz/status/72603197121896448" hreflang="en">ça fait mal</a>:</p>
<blockquote><p>Mental images is gone. Rumor has it ~30 people were laid off, management was dispersed. The corporate bullshit version: <a href="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/" title="http://blogs.nvidia.com/2011/05/nvidia-integrates-workstation-software-efforts/">http://blogs.nvidia.com/2011/05/nvi...</a></p></blockquote>
<p>Tant qu'on est dans la rumeur, il semble que l'équipe de mental ray n'ait pas été démantelé (mais qu'il y a eu quelques départs volontaires).</p>
<p>Après, je serais de mauvaise foi si je disais que la <a href="http://www.mentalimages.com/products/mental-ray/mental-ray-39.html" hreflang="en">dernière liste</a> des features de mental ray était vide, loin de là!</p>
<p>Mental ray est un très bon moteur (je le soupçonne d’être plus rapide que Vray en raytracing pur..) mais les gros studios ne font pas des prods sur un "très bon moteur" mais plutôt "le moteur qu'il estime être le meilleur". Et mental ray n'en fait clairement <del>pas</del> plus parti. :lanceUnePierre:</p>
<p>Si vous avez un peu de temps, <a href="http://forum.mentalimages.com/showthread.php?7402-Iray-For-OpenCl" hreflang="en">lisez ce court thread</a> de quatre messages... Il résume parfaitement le n'importe quoi dans lequel est en trains de sombrer mental image. :grenadelauncher:</p>
<p>Pour résumer, une personne pose une question simple et argumentée aux devs de iray concernant OpenCL (il fera notamment référence à Chaos Group). Pas un seul dev ne répondra (c'est assez rare, ils prennent souvent la peine de répondre, même brièvement à ce genre de questions) mais une personne qui semble être plus un commercial de Nvidia qu'un dev répondra un baratin marketing faisant la promotion de CUDA face à OpenCL:</p>
<blockquote><p>iray uses C for CUDA because it needs the highest performance and greatest capabilities available to it.</p>
<p>
While NVIDIA leads the industry in the broadest OpenCL support, the language is several years behind C in both capabilities and tools, and it advances at the speed of open standards. A CPU fallback is unnecessary for iray as it supports x86 directly - far more efficiently than a fallback could. In using C for CUDA, iray ensures you have the very latest GPU capabilities as soon as they come online, while having direct influence on its evolution.</p>
<p>
With C for CUDA, there are over 1/2billion NVIDIA GPUs that can increase iray performance. I believe you would find the %increase from AMD to be quite small as their OpenCL support is limited to their latest offerings.</p>
<p>
As for CPUs, iray runs as well on AMD as Intel, taking full advantage of multiple cores and sockets.</p>
<p>
- Phil
NVIDIA</p></blockquote>
<p>Je trouve que pour un forum de support, ça fait tache. D'autant que des défenseurs de CUDA sur le <a href="http://www.chaosgroup.com/forums/vbulletin/showthread.php?53415-Cuda-4.0&p=451532#post451532" hreflang="en">forum de Chaos Group</a> (inscription nécessaire) débitaient le même genre d’âneries pour finalement se prendre un gros revers de la part de vlado, membre principal sur le forum de Chaos Group (merci <a href="http://deex.info/wordpress2/" hreflang="en">Deex</a> pour l'info):</p>
<blockquote><p>- (Membre): I had a feeling CUDA is gonna kick OpenCL in the ass and it is ! I hope that OpenCL will be able to share memory too at some point... <br />
- (vlado): We do have a CUDA version of V-Ray RT that we use internally, so if we see that there are significant benefits of going this way, it is certainly something that we would do without too much hesitation.<br />
- (Membre): Wow... Release it ploxxxxxxxxx, isn't it a lot more responsive(refresh speed) then opencl btw?<br />
- (vlado): No, not really. In some of the last tests, OpenCL was a tad bit faster.</p></blockquote>
<p>Donc voilà, d'après Chaos Group, sortir une version CUDA de V-Ray RT n'est pas utile car il est moins performant... :pasClasse:</p>
<p>Et puisqu'on en parle: L'arrivée de Vray sous Maya aurait pu se faire sans trop de bruit... Elle était attendu par beaucoup mais on ne parlait pas nécessairement de faire du VFX à ce moment là. Chaos Group semble cependant avoir bien compris que les besoins des utilisateurs de Maya ne sont pas tout à fait les mêmes que les utilisateurs de 3dsMax ou Vray était considéré comme le moteur de rendu "pour l'archi"...</p>
<p>Qui aurait pu penser, lors de la sortie de Vray for Maya qu'il servirait Digital Domain pour sortir les plans de Tron Legacy:</p>
<iframe src="http://player.vimeo.com/video/20014133?title=0&byline=0&portrait=0" width="590" height="332" frameborder="0"></iframe>
<p>En effet, cette version est très orienté prod. Ils n'ont pas essayé de "copier" leur moteur depuis 3dsMax dans Maya. Ils l'ont adapté. Et adapté très intelligemment...</p>
<h3>Conclusion</h3>
<p>Bref, le but de ce billet n'était pas de faire l'éloge de Vray mais d'expliquer pourquoi je ne crois plus à mental ray...</p>
<p>Le fait qu'il reste un excellent moteur et qu'il soit intégré à Maya et 3dsMax lui laisse de beaux jours devant lui et il ne va pas disparaître d'un coup. Mais je pense que les studios vont s'en détourner petit à petit, comme, bien que fidèle depuis des années, j'ai commencé à le faire. :pasClasse:</p>
<p>Dorian</p>Les images EXR lentes à ouvrir en compo, la solutionurn:md5:9516d15e99cd0d9c4466e06f3f658bc22011-03-08T22:11:00+01:002013-07-26T18:11:52+02:00NarannInfographie 3D - Boulotastucebatchcompositingexrfichiersfrimf_copymental raymipmapnukeopen sourcetexturevray<p><img src="https://www.fevrierdorian.com/blog/public/billets/2011_03_08_images_exr_compo_lent/exr_logo_tn.png" alt="exr_logo_tn.png" style="float:left; margin: 0 1em 1em 0;" title="exr_logo_tn.png, mar. 2011" height="150" width="150" />Si vous avez déjà rendu des <a href="http://en.wikipedia.org/wiki/OpenEXR">images EXR</a> dans Maya (et d'autres logiciels/moteurs de rendu) vous avez peut être remarqué qu'elles peuvent être très longues à ouvrir dans votre logiciel de compo favoris (Nuke, Fusion, After Effect, etc...). La faute à la "façon" dont sont écrits les pixels dans vos images. :reflechi:</p>
<p>Avec ce billet, je vous propose une petite explication sur le comment du pourquoi ainsi que la méthode pour optimiser vos fichier EXR afin de gagner du temps lors de la phase de compo. (Merci à <a href="http://deex.info">Deex </a> pour ses informations)</p> <center>:longBar:</center>
<h3>Sommaire</h3>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#le_format_exr">Le format OpenEXR</a>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#features">Features</a></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#eux_yx_sert_a_tout_faire">Eux y(x) sert à tout faire!</a></li>
</ul></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#le_tile">Le tile</a>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#explication">Explication</a></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#le_probleme_du_tile">Le problème du tile</a></li>
</ul></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#solutions">Solutions</a>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#openimageio">OpenImageIO</a>
<ul>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#passer_un_exr_tiled_en_scanline">Passer un EXR tiled en scanline</a></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#les_compression">Les compressions</a></li>
</ul></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#batcher_le_logiciel_de_compo">Batcher le logiciel de compo</a></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#vray">Vray</a></li>
</ul></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#conclusion">Conclusion</a></li>
<li><a href="https://www.fevrierdorian.com/blog/post/2011/03/09/Les-images-EXR-lentes-a-ouvrir-en-compo-la-solution#liens_utiles">Liens utiles</a></li>
</ul>
<center>:longBar:</center>
<h3>Le format OpenEXR <a name="le_format_exr"></a></h3>
<h4>Features (yeah yeah!) <a name="features"></a></h4>
<p>Le format <a href="http://www.openexr.com/">OpenEXR</a>, qui existe depuis quelques années maintenant, s'est imposé petit à petit pour devenir le format d'image CG de référence.</p>
<p>Ses avantages sont indéniables:</p>
<ul>
<li>Open Source (sans ça il n'aurait clairement jamais décollé) :siffle: .</li>
<li>Plusieurs précisions de pixel possibles.</li>
<li>Un grand nombre de formats de compression.</li>
<li>Multichannels de différents types.</li>
<li>Images en scanline ou "tile" (c'est ce qui va nous intéresser).</li>
<li><a href="http://en.wikipedia.org/wiki/Mipmap">Mipmap ou Ripmap</a>.</li>
<li>etc... (pour plus d'informations, je vous invite à lire le pdf <a href="http://www.openexr.com/TechnicalIntroduction.pdf">Technical Introduction to OpenEXR</a>)</li>
</ul>
<p>Mais sa capacité à "tout" faire, peut le rendre complexe d'un point de vue utilisateur.</p>
<h4>Eux y(x) sert à tout faire! <a name="eux_yx_sert_a_tout_faire"></a></h4>
<small><i>J'suis mort avec rire avec mon minable jeu de mot là! :baffed:</i></small>
<p>Oui, le format EXR n'a pas pour seul objectif d'être utilisé pour des images rendues. Il peut aussi être utilisé en tant que texture. C'est précisément pour cette raison qu'il dispose de fonctionnalités tel que mipmap et "tile".</p>
<p>Je ne réexplique pas à quoi sert les mipmap, je l'ai déjà fait dans <a href="https://www.fevrierdorian.com/blog/post/2009/12/24/Les-maps-mental-ray-%28part-2.1%29%3A-Le-debug">un billet précédent</a>.</p>
<p>En revanche, je ne crois pas avoir donné de précisions sur le "tile". Je vais donc rapidement expliquer le principe.</p>
<center>:longBar:</center>
<h3>Le tile <a name="le_tile"></a></h3>
<h4>Explication <a name="explication"></a></h4>
<p>Le principe du tile est de sauver les images par petits paquets (des buckets). Si vous avez lu <a href="https://www.fevrierdorian.com/blog/post/2009/01/14/Le-mappage-en-m%C3%A9moire-des-textures-dans-Mental-Ray-expliqu%C3%A9-%28Memory-mapped-textures%29.">mes</a> <a href="https://www.fevrierdorian.com/blog/post/2009/12/13/Les-maps-mental-ray-%28part-1%29%3A-Pratique">billets</a> sur les maps mental ray vous devriez comprendre assez vite l’intérêt.</p>
<p>Le plus simple pour comprendre la raison d'être du "tile" est par l'exemple.</p>
<p>Supposons que vous fassiez des textures en 8192x8192 et que vous en ayez des centaines dans votre scène. :grenadelauncher:</p>
<p>Imaginez ensuite que dans votre scène, vous ayez un mur en gros plan qui utilise un material composé de 5-6 textures (bump, specu tout çà):</p>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2011_03_08_images_exr_compo_lent/camera_mur_exemple001.png" alt="camera_mur_exemple001.png" style="display:block; margin:0 auto;" title="camera_mur_exemple001.png, mar. 2011" height="338" width="500" /></p>
<p>Même avec les mipmaps, si votre mur est en gros plan, cela veut dire qu'il va devoir charger le niveau le plus haut de la map (8192x8192) pour chaque texture a utiliser (bump, specu...), et ce, même si on ne voit qu'une petite partie de la texture.</p>
<p>L'idée ici est de bien comprendre qu'on ne va pas les mettre dans la ram...</p>
<p>Et bien la solution est de découper l'image (ou dans le cas des mipmaps, chaque niveau des mipmaps) en petits bucket (en général 64x64) qui seront chargés indépendament du reste de l'image (ou du "niveau" dans le cas des mipmaps).</p>
<p>Dans notre exemple du mur, il ne chargera que les paquets de pixels à utiliser. Evitant ainsi de charger tout le niveau de la mipmap.</p>
<p>Cette méthode permet de s'affranchir des limites de taille des textures dans les logiciels de rendus (Vous pouvez essayer, en mental ray, de faire des maps de 80000x80000, je l'ai fait, ça marche impec! :baffed: ).</p>
<p>V-Ray, qui supporte très bien cette feature <a href="http://www.spot3d.com/vray/help/maya/150R1/tiled_exr.htm">offre une petite explication</a> aussi ainsi qu'<a href="http://www.spot3d.com/vray/help/200R1/tools_img2tiledexr.htm">un outil</a> pour convertir des images en EXR tiled.</p>
<p>Mental ray supporte également cette feature depuis longtemps. Et, avec le fichier .exr <a href="http://forum.mentalimages.com/showthread.php?t=4186">depuis Maya 8.5</a>.</p>
<p><a href="http://mayastation.typepad.com/maya-station/2009/07/imf_copy-and-exr-format.html">Maya Station</a>, un blog maintenu par certains développeurs de Maya en parle un peu.</p>
<h4>Le problème du tile <a name="le_probleme_du_tile"></a></h4>
<p>Bon, c'est cool ça mais on s'en fout, on veut calculer des images et les mettre dans un logiciel de compo et que ce soit rapide. :pasClasse:</p>
<p>Oui, sauf que le soucis est qu'il est impossible de sortir des images EXR en scanline des moteurs de rendu. La majorité écrivant dans leur buffer en tile justement (petite explication pour V-Ray <a href="http://www.vfxjobs.com/forum/showthread.php?t=23087&p=113506">ici</a>).</p>
<p>La seule solution est de repasser ses images en scanline (les pixels sont à la queue leu leu) une fois le rendu terminé.</p>
<p>Et là, malheureusement, pas de recette miracle... Il y a très peu d'outils "faciles" qui vous permettent de bien gérer la conversion des images EXR. Pourtant, les méthodes "compliqués" ne manquent pas. :baffed:</p>
<center>:longBar:</center>
<h3>Solutions <a name="solutions"></a></h3>
<p><img src="https://www.fevrierdorian.com/blog/public/billets/2011_03_08_images_exr_compo_lent/.126062425745_m.jpg" alt="126062425745.jpg" style="display:block; margin:0 auto;" title="126062425745.jpg, mar. 2011" height="434" width="560" /></p>
<h4>OpenImageIO <a name="openimageio"></a></h4>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/oiioLogo.png" alt="oiioLogo.png" style="display:block; margin:0 auto;" title="oiioLogo.png, mar. 2011" height="135" width="135" /></p>
<p>Une lib C++ codé par <a href="https://secure.wikimedia.org/wikipedia/en/wiki/OpenImageIO">Larry Gritz</a> (<a href="http://en.wikipedia.org/wiki/Blue_Moon_Rendering_Tools">un mec</a> <a href="http://www.imdb.com/name/nm0342691/">pas connu</a>...). Je vous invite à lire la page 3 du <a href="https://github.com/OpenImageIO/oiio/raw/master/src/doc/openimageio.pdf">PDF de documentation</a> qui donne toute les raisons historiques (et c'est une sacrés histoire).</p>
<p>Le site ne propose aucun "build" (fichier exécutable). Que des sources:</p>
<p><a href="https://github.com/OpenImageIO/oiio" title="https://github.com/OpenImageIO/oiio">https://github.com/OpenImageIO/oiio</a></p>
<p>Cela dit, compiler la lib ainsi que ses petits utilitaires (notamment iconvert qui permet de passer facilement un exr en scanline) est très (très) simple sous linux. Il y a pas mal de dépendances mais ce n'est pas un soucis sur l'OS du manchot!</p>
<p>On récupère les sources, make et hop! C'est bon! :aupoil:</p>
<p>Sous Windows c'est une vraie tanné. :pafOrdi: Pourtant <a href="http://openimageio.org/wiki/index.php?title=Building_OpenImageIO_on_Windows">la page d'explication</a> est clair. Mais une fois sur le terrain c'est une autre paire de manche(ot). :tux001:</p>
<p>Au début j'ai voulu faire les choses proprement en compilant le projet en 64bits. Mais il faut avouer que le nombre de dépendances n'aide pas et les binaires précompilés pour Windows ne sont disponible qu'en 32bits (notamment Boost qui n'est pas un truc particulièrement facile à compiler en 64bits sous Windows).</p>
<p>Bref, après quelques heures, j'ai compris que je n'y arriverai pas rapidement. J'ai donc laissé tombé et ai compilé en 32bits. Et ça a marché! :laClasse:</p>
<p>Je vous propose de télécharger les exécutables Win32 compilé par mes soins: <a href="https://www.fevrierdorian.com/blog/public/billets/2011_03_08_images_exr_compo_lent/OpenImageIO_bin.7z">OpenImageIO_bin.7z</a></p>
<p>N'hésitez pas à tester chacune des applications. Elles vous rendront surement de fiers services en prod.</p>
<h5>Passer un EXR tiled en scanline <a name="passer_un_exr_tiled_en_scanline"></a></h5>
<p>C'est assez simple:</p>
<pre class="bash bash">iconvert.exe <span style="color: #660033;">-v</span> <span style="color: #660033;">--scanline</span> monExrTile.exr monExrScan.exer</pre>
<p>Et voilà! :sourit:</p>
<h5>Les compressions <a name="les_compression"></a></h5>
<p>En fouillant un peu <a href="https://github.com/OpenImageIO/oiio/blob/master/src/openexr.imageio/exroutput.cpp">dans le code</a> (que je trouve très clair au passage) et <a href="https://github.com/OpenImageIO/oiio/raw/master/src/doc/openimageio.pdf">dans la doc</a> (qui ne semble pas complétement à jour), page 84, on peut trouver les paramètres de compressions suivants:</p>
<ul>
<li><em>none</em>: Aucune compression.</li>
<li><em>zip</em>: Compression zlib, par blocs de 16 scanlines.</li>
<li><em>zips</em>: Compression zlib, par blocs d'une seule scanline.</li>
<li><em>rle</em>: Compression "Run Length Encoding"</li>
<li><em>piz</em>: Piz-based wavelet compression.</li>
<li><em>pxr24</em>: Compression (avec perte) en 24bit flottant.</li>
<li><em>b44</em>: Compression (avec perte) par blocs de 4x4 pixels. Taux de compression fixe.</li>
<li><em>b44a</em>: Compression (avec perte) par blocs de 4x4 pixels. Les blocs ayant peu de variations sont mieux compressés.</li>
</ul>
<p>Ainsi, il suffit d'utiliser:</p>
<pre class="bash bash">iconvert.exe <span style="color: #660033;">-v</span> <span style="color: #660033;">--compression</span> zips <span style="color: #660033;">--scanline</span> monExrTile.exr monExrScan.exr</pre>
<p>Pour avoir un exr en scanline et compressé. :)</p>
<p>Je n'ai pas testé avec des exr multicouche mais je pense qu'il doit le gérer.</p>
<p>Cette solution est pour moi la meilleur. :marioCours:</p>
<h4>Batcher le logiciel de compo <a name="batcher_le_logiciel_de_compo"></a></h4>
<p>La plupart des logiciels de compo (Nuke, Fusion, etc...) sont capable d'exporter correctement des EXR avec plusieurs channels et une compression correcte, en scanline.</p>
<p>Il n'y a pas de secret, il faut tester et voir si tout ce qu'on souhaite garder est bien présent dans le fichier. Une fois que vous avez une méthode qui tient la route, gardez là! :D</p>
<p>Si vous vous débrouillez bien, vous pouvez scripter chacun de ces softs pour qu'il réenregistre automatiquement vos images exportées de votre moteur de rendu en des EXR scanline. Ainsi vous pouvez lancer la conversion de tout les EXR d'un dossier en ligne de commande directement après la sortie des images. Bien qu'un peu lourde à mettre en place, c'est une solution très efficace et assez utilisé en prod. :sourit:</p>
<p>La grosse contrainte est qu'elle nécessite une licence de votre logiciel de compo par batch (ça fait chère la licence du "converter").</p>
<h4>Vray <a name="vray"></a></h4>
<p><img src="https://www.fevrierdorian.com/blog/public/logos/vray_logo.gif" alt="vray_logo.gif" style="display:block; margin:0 auto;" title="vray_logo.gif, mar. 2011" height="120" width="200" /></p>
<p>Je vous ai parlé de l'outil <a href="http://www.spot3d.com/vray/help/200R1/tools_img2tiledexr.htm">tools_img2tiledexr</a> qui permet de convertir des image en EXR tilé, principalement pour les textures.</p>
<p>Mais il existe également un outil qui permet de convertir des vrimg (le format d'image de Vray) en EXR scanline: <a href="http://www.spot3d.com/vray/help/150SP1/tools_vrimg2exr.htm">tools_vrimg2exr</a></p>
<center>:longBar:</center>
<h3>Conclusion <a name="conclusion"></a></h3>
<p>Si vous trouvez vos fichiers EXR lents dans vos logiciels de compo, "passez les à la moulinette"! :joue:</p>
<p>Je compte enrichir ce billet au fur et à mesure si je trouve des choses plus précises (script, méthode, applications...).</p>
<p>Donc n'hésitez pas à laisser un commentaire si vous savez quelque chose qu'il pourrait être intéressant d'ajouter! :seSentCon:</p>
<center>:longBar:</center>
<h3>Liens utiles <a name="liens_utiles"></a></h3>
<ul>
<li><a href="http://www.vfxjobs.com/forum/showthread.php?t=23675">multichannel exr and speed</a></li>
<li><a href="http://www.vfxjobs.com/forum/showthread.php?t=23870">tile vs. scanline exr</a></li>
<li><a href="http://www.pigsfly.com/forums/index.php?showtopic=6318">Very Slow Exr Read Speed</a></li>
<li><a href="http://www.vfxjobs.com/forum/showthread.php?t=20984">EXR bucket to EXR scan line</a></li>
<li><a href="http://www.excamera.com/sphinx/articles-openexr.html">Un binding OpenEXR en ptyhon</a> et <a href="http://excamera.com/articles/26/doc/index.html">sa documentation</a></li>
</ul>