Whether you generate all your nulls in one ICE Tree or multiple ICE Trees is 
irrelevant.

The point I was getting at is creating anything in a scene will trigger events 
and other code running in the background to validate and ensure integrity of 
the scene. As the scene gets larger, those checks will take longer and take 
some measurable amount of time.  When you create stuff iteratively, you 
effectively re-trigger the same events again and again.  That time piles up.

My suggestion to avoid that problem was to dynamically generate an ICE compound 
file (XML) and export it to disc as it wouldn’t trigger any of those events, 
then use the native ICE compound loader to import it into the scene.  This 
would minimize the number of events that get triggered, or at least streamline 
them.  This is the same principle behind why it’s more efficient to duplicate 
an object ‘n’ times with a single call to Duplicate() vs. ‘n’ calls to 
Duplicate().

Matt




From: [email protected] 
[mailto:[email protected]] On Behalf Of Rob Chapman
Sent: Friday, January 11, 2013 11:52 AM
To: [email protected]
Subject: Re: Cage deform by cluster

Actually,  I dont think this is a problem with my ICE tree :) or getting any 
data from a group of polygon meshes  as you can see add point does that 
instantly. Also, as far as I'm aware, a separate ice tree is not made or needed 
per null, not sure where you both are getting this from.

my prognosis is that whatever the menucommand is calling from 
ICE>Kinematics>Effects>transform objects by particles is the culprit and it is 
more likely not as efficient a script as Alan's is. With a bit of detective 
work (turning on script window)   this is whatever 
Application.ICEFlow_ConstraintToParticles() is doing and digs down to 
ICEFlowConstraintToParticles.js in C:\Program Files\Autodesk\Softimage 2013 
SP1\Addons\ICEFlowBuilder\Application\Plugins  and in_reg.Author = "laforgg" 
so, its simply not fair to cast dispersions on others code without the 
opportunity of said coder able to step in and explain themselves, for they no 
longer work there.

but lets not ignore the barefaced cheek of being called out by a non-coder!

 ;)

wonder if its possible to add another menu item underneath and call it 
'generate nulls per particle 27x faster than above'  - and yes perhaps I am 
being unnecessarily harsh and you both (Matt & Alan) are correct that indeed 
the only way to attach nulls to particles IS by making a separate ICE tree per 
null.

cheers

Rob


On 11 January 2013 18:54, Matt Lind 
<[email protected]<mailto:[email protected]>> wrote:
The issue you’re running into with ICE is creating a new node or relationship 
between nodes triggers other updates/refreshes within the scene.  That time 
piles up before too long.

Thinking outside the box here:

Since .xsicompound files are XML, try writing a tool that generates an XML 
description of what you want to happen.  Then let the ICE compound loader do 
the heavy lifting.  Probably will still be slow overall, but probably a lot 
faster than generating one node at a time in the scene.

Matt





From: 
[email protected]<mailto:[email protected]>
 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Alan Fregtman
Sent: Friday, January 11, 2013 8:30 AM
To: XSI Mailing List
Subject: Re: Cage deform by cluster

Hehe, I knew ICE was slower for this hence my more traditional solution.

It's dissapointing, but ICE is just not fast enough when it comes to 
singlethreaded things and it has a lot of overhead. It kicks ass and takes 
names when it comes to large datasets (where it magically slices up operations 
to many threads) like with most deformers, but with simple tasks it's slow.

Maybe if and when we ever become able to set an icetree on a group of objects 
and drive everything from 1 tree, then it could potentially be better. — 2400 
icetrees is nuts, no matter how simple. :p

On Fri, Jan 11, 2013 at 9:08 AM, Rob Chapman 
<[email protected]<mailto:[email protected]>> wrote:
and my timings are 2400 nulls in 54 minutes. A rate of 44.4 nulls constrained 
per minute on 2013SP1 64bit dual Xeon X5680s @3.33ghz - my workstation must be 
faster.

still, a ridiculous amount of time for such a basic task.  Alan's script btw 
took 2 minutes to create, place and constrain all 2400 nulls. A very clear 
winner.

apologies for the noise!


best

Rob

On 11 January 2013 13:20, Nuno Conceicao 
<[email protected]<mailto:[email protected]>> wrote:
Sorry mate, i made a mistake on my initial null amount, i had 2x more nulls 
than i needed, i counted triangles instead of polys,duh!, i changed my post a 
bit too late.
Anyways, ive cut the time to half, but still was very slow, i think once it is 
large data sets it can get very slow in softimage doing things, in any case 
after i got rid of the excess nulls, i only got 2-3 fps while on the contrained 
to cluster nulls i got 4+ FPS.


On Fri, Jan 11, 2013 at 1:14 PM, Rob Chapman 
<[email protected]<mailto:[email protected]>> wrote:
wow, very interesting!  2 hours to constrain 2800 nulls - so thats only 15 
nulls per minute , bit of a joke!  Am sorry for suggesting it, I really did not 
appreciate how slow it is and thought the menu call to ICE > Kinematics > 
transform objects by particles   might have been more optimised than Alan's 
Python script.. definitely not!  maybe its written in VBscript or...? :)

I guess the serious rigger constrainers are best to stick with Python scripted 
solutions for now.

Also couldnt understand how it took so long as the example I made with few 
hundred wasnt that tedious to wait, so testing it out on a grid quick with 2400 
nulls , the progress bar is already past 1/4 way though and its only been 5 
minutes... oh wait screens frozen and gone white - will let you know final time 
if it finishes, just going for lunch!  :D

its obviously not multithreaded as only 1 core out of 24 is in use for this 
procedure - what a waste!

cheers

Rob




On 11 January 2013 12:47, Nuno Conceicao 
<[email protected]<mailto:[email protected]>> wrote:
took nearly 2 hours to apply the transform to all the nulls, after, to tes





Reply via email to