Re: A Question About C++ "SICO" Development

Date : Mon, 28 Aug 2006 11:19:51 +0200
To : XSI(at)Softimage.COM
From : Guy Rabiller <guy(at)alamaison.fr>
Subject : Re: A Question About C++ "SICO" Development

You give up ? Damn.


> It's nice to debate with you Guy!

The pleasure is mine, Aloys.


> ../.. I think I will have to ask someone > in La Maison to challenge > you to a duel, but not in Kendo > because you would win.../..

Come get some ;-)


> ../.. So meanwhile I will be able to relax > on the beach!../..

You are definitively too lazy !


-- guy rabiller | 3d technical director (at) LaMaison



Aloys Baillet a Ãcrit :
It's nice to debate with you Guy!
I think I will have to ask someone in La Maison to challenge you to a duel, but not in Kendo because you would win...


I don't think a lot of people are interested in the details of the debate anymore...
I think I'm right, and you think you're right.


Have fun with your Blobs and Void Pointers, I will wait for Softimage to give me Dirty Flags and a better way of storing class instances in XSI. So meanwhile I will be able to relax on the beach!

Cheers,

Aloys


On 8/28/06, *Guy Rabiller* <guy(at)alamaison.fr <mailto:guy(at)alamaison.fr>> wrote:



> ../..If you have to cache information, usualy the information > you're caching is highly specialized, and I don't see why you > would give access to it to another operator../..

    I'm sorry you don't see why, there are full of applications for this.
    It's exactly what is done with weightmap tools for instance (
    written by
    you.. )
    Operators 'cache' the datas in weightmaps that can be used by other
    operators including XSI native ones.
    If it is a weightmap or a udb or a ppg doesn't matter, it is the
    same idea.

    > ../.. And putting a pointer in a UserDataBlob does not appear to be
    > really "good looking" from a design point of view: casting a class
    > instance to a void pointer is something that comes from the past,
    > don't you think?../..

    I don't know where you get that from ?

    Tell me, in your Operators, don't you use Classes pointers stored as a
    UserData ?
    Is it not one of the recommended way of caching datas in Operators ?

    What about cpp in mental ray shaders, and class pointers stored as
    user
    datas or thread local storage as well ?

    Sorry to hear that Softimage and mental image don't do 'good looking'
    design :/

    Perhaps you should investigate i little bit more those technics that
    'come from the past' ?


> ../.. Setting up a framework of UserDataBlob is not something I would like to do when > I'm in a hurry to deliver a simple operator that has to be re-appliable easily...

    You certainly have a point here. I am also able to write crappy things
    in a hurry.
    Sometimes we don't have a choice. I did it, and I certainly will
    have to
    do it again.
    I never felt the need for dirty flags though, even in those cases.


> ../..Having intermediate Blobs only makes things less easily packagable../..

    For the lazy developer, yes. For the user it is as easily usable.


> ../..But the idea is good, and without having access to the dirty > flag state, it's the best thing we can do to do clever caching!../..

    Again, it is two different approaches.
    And again, I don't think using dirty flags is clever and dirty flags
    will not replace the other approach even if available.


> ../.. But I still think that having access to > the dirty flag would not go against the > DAG philosophy ../..

    I still think it would..

    --
    guy rabiller | 3d technical director (at) LaMaison


Aloys Baillet a Ãcrit : > Hi Guy, > > Sorry I was a bit lazy and didn't answer your email this week-end;-) > > I do clean my operators indeed, and good design can be internal, not > necessarily visible from the outside. > If you have to cache information, usualy the information you're > caching is highly specialized, and I don't see why you would give > access to it to another operator. And putting a pointer in a > UserDataBlob does not appear to be really "good looking" from a design > point of view: casting a class instance to a void pointer is something > that comes from the past, don't you think? > Plus, I was more saying that I am the lazy developper, not you! > Setting up a framework of UserDataBlob is not something I would like > to do when I'm in a hurry to deliver a simple operator that has to be > re-appliable easily... Having intermediate Blobs only makes things > less easily packagable. > But the idea is good, and without having access to the dirty flag > state, it's the best thing we can do to do clever caching! > But I still think that having access to the dirty flag would not go > against the DAG philosophy. > > Sorry Kent I think we highjacked your thread here! Proof that it was a > good question! > > Cheers, > > > Aloys > > > On 8/25/06, *Guy Rabiller* <guy(at)alamaison.fr <mailto:guy(at)alamaison.fr> > <mailto:guy(at)alamaison.fr <mailto:guy(at)alamaison.fr>>> wrote: > > > > Fair enough, you can store a pointer! > > If you do the cleanup... > > As for your Operators, not a big deal, really. > I guess you do cleanup your Operators as well, don't you ? > > > ../..The state machine analogy is a good one, > > but who wants to develop a state machine with > > operators on Blobs apart from you?../.. > > Perhaps serious developers who don't want to create monster monolithic > unreusable Operators ? :-) > The added benefit to create 'modules' this way is that each > modules can > be re-used for other purposes. > With a monolithic approach you have to re-assemble everything each > time.. > Plus, this way the intermediate datas or informations are > available, and > can be used for something else, or for a new feature implemented > later. > > > ../..Lazy evaluation should be > > available for lazy developpers too!../.. > > It is. You just have to hook in where it is available. That said, I'm > not lazy. > > > ../..I remember having to compare each and every parameter value > between > > one call of an operator update and the other, just to see if the > custom property > > connected as an input of my operator had been modified.../.. > > Well, for this, lazy developers could compare MD5 on PPG BinaryDatas. > One sum, one test. > > > ../..Adding a UserDataBlob as another layer of complexity would have > been painfull and unnecessary! > > UserDataBlob has been given as an exemple. Depending on the problem in > hands, you cant perhaps use weightmaps or other cluster properies, > or a > PPG, etc.. > > -- > guy rabiller | 3d technical director (at) LaMaison > >




--- Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body: unsubscribe xsi


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.