the softimage rendering api hasn't been around as long as maya or max's and it certainly hasn't been used as much. so yes... there will be bugs.
i cannot repeat siOnTimeChange issue you report in softimage 2012 (10.0.422.0) this is the first version of 2012, not that service packs or the subscription advantage packs. i get 2.0-10.0 ... 1.0 isn't logged cause the first time cause i was already on that frame during startup. the siOnValueChange event doesn't get fired for any deformers being added. you should bring this up to support also... this will only work for you because a user might not accept the default values of the operator and the siOnValueChange will be fired when the user changes those values. this is a lame workaround but maybe you could use the siOnEndCommand event to capture those deformers going missing through siOnValueChange. the last one i can't test easily but should be brought up to support. i know they fixed some stuff about the dirty list not too long ago. i also know the render preview window behaves a bit weird sometimes. what about the render region? On Thu, Apr 26, 2012 at 12:08 PM, Nicolas Burtnyk <nico...@redshift3d.com>wrote: > I'm running some tests today and indeed the events and dirty list in Soft > (testing on 2012) seem to unfortunately have lots of bugs as hinted by > Kamen. > > Examples: > - siOnTimeChange often reports the wrong frame, for example if I frame > step starting at frame 1 up to frame 10, I get callbacks with the "Frame" > attribute set to: 0, 1, 3, 3, 5, 6, 6, 7, 9, 10 (should be 1, 2, 3, 4, 5, > 6, 7, 8, 9, 10). This one is probably no big deal since I'll probably just > end up assuming that everything animated is dirty on frame change > regardless of the actual frame number. > > - siOnValueChange is not fired when applying a bend operator to a mesh. I > have a feeling this is but one of many operations which fail to generate a > siOnValueChange event. Fortunately, the DirtyList *might* catch this but > it has some major problems (see next point). > > - DirtyList is always empty when clicking the refresh button in the render > preview window or when opening it. In other words, DirtyList only appears > to be useful when the render preview window remains open and you don't use > the lock button :( > > The combination of those last 2 issues are going to be a problem... for > this particular case of operators I guess I can try remembering the > operators connected to an object and consider it dirty when they change. > > > > On Thu, Apr 26, 2012 at 9:33 AM, Nicolas Burtnyk > <nico...@redshift3d.com>wrote: > >> Thanks for the tip! >> >> >> On Thu, Apr 26, 2012 at 9:25 AM, Kamen Lilov >> <kamen.li...@chaosgroup.com>wrote: >> >>> On 4/25/2012 9:06 PM, Nicolas Burtnyk wrote: >>> >>>> [...]then rely on the DirtyList or siOnValueChange event for "normal" >>>> (i.e. non animation) renders. I'll see if that gets me somewhere... >>>> >>> You may want to rely on _both_, and have some extra special logic for >>> events that SI "forgets" to announce - such as hiding or showing an >>> individual cluster. That's how another renderer does it - I'm not saying >>> which one, but it's a production system :) >>> >>> >>> >> >