<div dir="ltr">Sergey, from this point, what about a large "switch" node?<br>it is similar to switch(){} in C++, input () will be the object index, and cases can be dynamic input count, each is a Closure, output is a Closure. "something similar to Mix or Add Closures, but on a large scale to handle instances"<br><br>this would be better than creating too many cases, each with its "math node (==) & Mix Closure"</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 18, 2015 at 4:26 PM, Mohamed Sakr <span dir="ltr"><<a href="mailto:3dsakr@gmail.com" target="_blank">3dsakr@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">thanks a lot Sergey for the help :)<br>cheers.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 18, 2015 at 4:15 PM, Sergey Sharybin <span dir="ltr"><<a href="mailto:sergey.vfx@gmail.com" target="_blank">sergey.vfx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">You can not use different shaders for different materials, they're betting referenced by geometry primitives. As you already mentioned, you can tweak shader settings by using Object Info and Particle Info nodes. But that wouldn't separate shaders, that will just evaluate same shader differently for different instances.</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 18, 2015 at 4:06 PM, Mohamed Sakr <span dir="ltr"><<a href="mailto:3dsakr@gmail.com" target="_blank">3dsakr@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">ok Sergey, I understand the part of object instancing, but what confuses me is: how does each object got its own shader?<br>I see inside Blender there is an Object info node, which uses data dynamically like Object index & Material index, is this the only way to separate shaders between instances?</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 18, 2015 at 3:52 PM, Sergey Sharybin <span dir="ltr"><<a href="mailto:sergey.vfx@gmail.com" target="_blank">sergey.vfx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">In your example is rather correct, it'll create two objects which are sharing the same mesh. ObjectManager and BVH builder detects if objects are sharing the same mesh and does some special things for proper instancing then.<div><br></div><div>Not sure why do you ask about shaders, they are not object property, they're mesh property. Synchronization code from blender/ is whet you want to look into to understand it better.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Thu, Jun 18, 2015 at 2:28 AM, Mohamed Sakr <span dir="ltr"><<a href="mailto:3dsakr@gmail.com" target="_blank">3dsakr@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hi,<br><br>I'm creating an exporter to Cycles Standalone, I wanna know how Cycles renders instances?<br>so if I have a Mesh* which is shared across 2 Object* , is this all what I need to do? or am I missing something?<br><br>Mesh* any_mesh;<br>//fill mesh data<br><br>Object* main_object;<br>main_object->mesh = any_mesh;<br>main_object->tfm = any_tfm;<br><br>Object* instance_object;<br>instance_object->mesh = any_mesh;<br>instance_object->tfm = instance_tfm;<br><br>//what about mesh->used_shaders??<br><br>so in short, what I do to mark an object as an instance., which data to fill, how to determine its shader.<br><br>cheers,<br>Mohamed Sakr</div>
<br></div></div>_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org" target="_blank">Bf-cycles@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div></div>
</font></span></div>
<br>_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org" target="_blank">Bf-cycles@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org" target="_blank">Bf-cycles@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div></div>
</div>
</div></div><br>_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org" target="_blank">Bf-cycles@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" rel="noreferrer" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>