I know you know for instances, if it's about closer equivalent to ICE. ICE use
instances, not ''real" copies. Expression to spread multiple objects by Houdini
instancer, I think it was (in times of H 14) something like../../instobj`$myid`
where instance candidates are named instobj1, instobj2 an so on, while "myid"
is an integer attribute on points-carriers (created in any way you want).
Now back to "real copy" - I've noticed that in some cases, it's significantly
faster to use a plain Copy SOP, making a lot of ''in place" copies, then to
move their points by Point VOP or something. "In some cases" seems to be
everything except Line primitive (that's again from H 14). There seems to be a
big difference in working of 'plain' Duplicate SOP and Copy to points SOP,
anyway.So in that way, first step is merge of all instancing candidates, then
Connectivity SOP to assign class attribute to each piece (that Connectivity
method will work only if one candidate = one island, obviously). After that,
Point VOP/Wrangle to save the number of points, let's call it nbinitial
attribute. Then, plain Duplicate SOP without any transform, to reach final
number of instances. Finally, in distributing Point VOP, decoding is something
like : point number converted to float, divided by nbinitial and floored.
Result is then multiplied by number of candidates, to get proper spread and
empty space for individual objects. Class attribute is just added to result, to
fill that ''empty space". Final result is point number for importing the point
attributes from Scatter Sop or like.While it is a bit complicated, method is
quite fast, easy to repeat, and it allows any kind of deformation on each
"instance'', before-after spreading. With some playing by expressions and
custom parameters, no big deal to sync the numbers on emitter and copies.
From: Olivier Jeannel <[email protected]>
To: [email protected]; "[email protected]"
<[email protected]>
Sent: Monday, September 25, 2017 5:23 PM
Subject: Multiple objects copy
Kind of rooky question that I already asked but...
So I have that "problem" with the copy sop (copy to point, whatever) when I
have to do a copy with multiple input objects.It was something really easy
within ice with high performances.
I watched the sidefx tutorial, and so far I undertstood they deprecated the
stamp method for a copy within a loop.It's rather slow.
I also saw a method where it copies all the multiple objects on each point and
then delete according to the ptnum the undesired copies. it gets very slow when
you have many different objects to copy and it eats memory.
So I made my "own" methodThe scenario was working with packed10 different
objects(platonic, torus, sphere, etc)I have some scattered pointI have a noise
(float) on the scattered pointsI want to distribute my 10 objects according to
the values of that noise
so I divided my noise in 10 zones (based on grey float values)I counted howmany
of each object there was per zone(@numbperzone)I copied each object the good
amount I placed each copy at its corresponding scattered point
et voilà
now for 10 objects distributed on 350000 points it takes under
10s.https://urldefense.proofpoint.com/v2/url?u=https-3A__drive.google.com_open-3Fid-3D0B1QqhXD7Y15qVnBqMVhKeWl0dnc&d=DwIFaQ&c=76Q6Tcqc-t2x0ciWn7KFdCiqt6IQ7a_IF9uzNzd_2pA&r=GmX_32eCLYPFLJ529RohsPjjNVwo9P0jVMsrMw7PFsA&m=3GgXr7vXI3XvILtD7xBQPi---UZ94ubTZoQx6E2PGoE&s=QjcHMPKLavzifrok_Sb3Yl6g8kEn8sL9kT1_TVZza_g&e=
That's my best method for now, but I have now idea if it's worth something.
So how do you guys usually do ?------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with
"unsubscribe" in the subject, and reply to confirm.
------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with
"unsubscribe" in the subject, and reply to confirm.