Re: Beginners Guide to Python

2012-05-07 Thread Andy Moorer
I was lucky enough to take Raff's workshop back when, and I highly recommend 
it. It's fantastic to hear it's going to be available soon.

Sent from my iPad

On May 1, 2012, at 10:24 PM, Raffaele Fragapane raffsxsil...@googlemail.com 
wrote:

 If you can hang in there for a month or so, some time in June a review and 
 repackage of my CGS workshop on technical direction with python/xsi will most 
 likely be released as training material ;)
 
 Regardless, good call moving away from VB.
 Youtube is full of solid Python training material these days. If you can 
 already script within xsi a bit you should be able to get decent mileage 
 learning as you're doing by converting what you've done first, and getting 
 over some of the inevitable differences that make VB seem easier in the 
 beginning.
 
 O'Reilly's Learning Python  if you feel like killing some trees is a 
 fantastic first book to have, and I've had pretty good feedback on it from 
 various students or just people I helped who picked it up.
 
 On Tue, May 1, 2012 at 11:30 PM, Gareth Bell 
 gareth.b...@primefocusworld.com wrote:
 Afternoon all,
 
  
 
 I'm in the need of learning some serious Python - specifically geared towards 
 Softimage. Does anyone have any recommendations for literature or useful 
 web-based resources in order for me to get acquainted? I'm reasonably 
 proficient in VBScript (self-taught) if that makes any difference.
 
  
 
 cheers
 
  
 
 gareth bell | xsi artist
 
  
 
 t: +44 (0)20 7565 1000
 
 e: gareth.b...@primefocusworld.com
 
 a: 37, dean street, london, w1d 4pt, uk.
 
  
 
 www.primefocusworld.com
 
  
 
 
 
 
 -- 
 Our users will know fear and cower before our software! Ship it! Ship it and 
 let them flee like the dogs they are!
 


Re: PyQt For Softimage

2012-05-07 Thread Enrique Caballero
Just bringing this thread back to life.

 We are getting more into using PYQT here and I am looking into completely
replacing synoptics and use PYQT instead.

I was hoping somebody could help me figure out how to get information from
XSI sent to PYQT currently everything that I have done has been the
opposite, where PYQT drives something, but does very little evaluation of
the scene.

An example would be.

When a characters facial animation is animated, and the time slider scrubs,
I will need the PYQT slider that drives that facial animation to detect the
value change in XSI and show its new value in the menu.

Currently I don't really know how to do that, as the example SignalSlot
function that comes with this implementation only covers something with a
registered event.

Do I need to create onValueChanged events for every value on the rig?

any help would be awesome, I'm pretty new to PYQT still.

thanks,
 Enrique

On Wed, Feb 29, 2012 at 3:29 PM, Enrique Caballero 
enriquecaball...@gmail.com wrote:

 For those of us using linux, is there an out of box PYQT implementation
 such as this that we can use?



 On Thu, Dec 8, 2011 at 6:45 AM, Alok Gandhi alok.gandhi2...@gmail.comwrote:

 Oh ok, thanks for the info Steven.


 On Wed, Dec 7, 2011 at 5:24 PM, Steven Caron car...@gmail.com wrote:

 well for your reference, i am using Alan Jones' cmake softimage module.
 it automates a lot of the process for creating softimage plugins with
 cmake. it can be found in the src\CMake\Modules folder. its very handy :)

 s


 On Wed, Dec 7, 2011 at 2:21 PM, Alok Gandhi 
 alok.gandhi2...@gmail.comwrote:

 Yep that works too, I knew that it did not need shader lib for sure,
 but was not sure, so I set the path anyways.


 On Wed, Dec 7, 2011 at 2:08 PM, Steven Caron car...@gmail.com wrote:

 well it doesn't need that actually, let the entry in the cmake gui
 stay red. just hit generate... does this work for you?



 --





 --





Re: [ICE] curve manipulation issues

2012-05-07 Thread Martin Chatterjee
Hey Sebastian, hey Chris,

awesome, both solutions work perfectly - cheers for that! :-)

Wasn't aware at all of both *Get Element Index* and *Build Array From
Set. *

Thanks again,

Martin
--
Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



On Mon, May 7, 2012 at 12:33 PM, Chris Chia chris.c...@autodesk.com wrote:

 Hi Martin,
 I think you are looking for this.
 You can use Select in Array ice node to query the individual vertex's
 position.

 [cid:c02c4ea5-dd64-448b-91cb-a705c756]




 Regards,

 Chris Chia

 Softimage QA Analyst

 Autodesk Media  Entertainment


 
 From: softimage-boun...@listproc.autodesk.com [
 softimage-boun...@listproc.autodesk.com] on behalf of Martin Chatterjee [
 martin.chatterjee.li...@googlemail.com]
 Sent: Monday, May 07, 2012 5:11 PM
 To: softimage@listproc.autodesk.com
 Subject: [ICE] curve manipulation issues

 Hello clever people out there,

 I'm experiencing some annoying issues when trying to deal with Curve
 Manipulation in ICE - hopefully somebody can help me out here with some
 insight?


 1.) I am looking for the Curve equivalent to self.ID (for PointClouds)  or
 self.VertexIndex (for polyMeshes). Bottom line I want to be able to access
 a Curve Point Location in the same way I can access PointCloud points via
 ID to Location or Polymesh vertices via PointIndex To Location


 2.) While attempting to workaround this issue I have stumbled over this:
 (see attached screenshot)

 When trying to get a full array of all Point Locations of a curve via Get
 Closest Points I NEVER get the correct point count...

 When the curve is closed, it will give me one more, when the curve is open
 I will get two less than the actual point count.

 Has anybody out there succeeded in working around this somehow?

 Thanks a lot in advance for any hints,

 Cheers, Martin

 --
Martin Chatterjee

 [ Freelance Technical Director ]
 [http://www.chatterjee.de]




Re: PyQt For Softimage

2012-05-07 Thread Stefan Kubicek

I'm just diving into it as well, but the way I'd do it is to implement a 
siOnTimeChange event
that either calls a function in your UI (or menu) to update it's parameters, 
or, if you want the UI
to respond to value changes happening without the time slider being moved 
(somebody changes a parameter
through scripting or the normal Softimage interface) you probably have to 
implement an onValueChanged event.
How sophistivated this event is (whether it checks for what values actually 
have changed and whether the Qt
UI has to be upated or not, or whether it just stupidly calls the Update QT 
UI function every time) comes down
to performance. Keep it simple first and optimize if required.

Would love to hear more ideas on this as well.




Just bringing this thread back to life.

 We are getting more into using PYQT here and I am looking into completely
replacing synoptics and use PYQT instead.

I was hoping somebody could help me figure out how to get information from
XSI sent to PYQT currently everything that I have done has been the
opposite, where PYQT drives something, but does very little evaluation of
the scene.

An example would be.

When a characters facial animation is animated, and the time slider scrubs,
I will need the PYQT slider that drives that facial animation to detect the
value change in XSI and show its new value in the menu.

Currently I don't really know how to do that, as the example SignalSlot
function that comes with this implementation only covers something with a
registered event.

Do I need to create onValueChanged events for every value on the rig?

any help would be awesome, I'm pretty new to PYQT still.

thanks,
 Enrique

On Wed, Feb 29, 2012 at 3:29 PM, Enrique Caballero 
enriquecaball...@gmail.com wrote:


For those of us using linux, is there an out of box PYQT implementation
such as this that we can use?



On Thu, Dec 8, 2011 at 6:45 AM, Alok Gandhi alok.gandhi2...@gmail.comwrote:


Oh ok, thanks for the info Steven.


On Wed, Dec 7, 2011 at 5:24 PM, Steven Caron car...@gmail.com wrote:


well for your reference, i am using Alan Jones' cmake softimage module.
it automates a lot of the process for creating softimage plugins with
cmake. it can be found in the src\CMake\Modules folder. its very handy :)

s


On Wed, Dec 7, 2011 at 2:21 PM, Alok Gandhi alok.gandhi2...@gmail.comwrote:


Yep that works too, I knew that it did not need shader lib for sure,
but was not sure, so I set the path anyways.


On Wed, Dec 7, 2011 at 2:08 PM, Steven Caron car...@gmail.com wrote:


well it doesn't need that actually, let the entry in the cmake gui
stay red. just hit generate... does this work for you?




--







--









--
---
Stefan Kubicek   Co-founder
---
  keyvis digital imagery
 Wehrgasse 9 - Grüner Hof
   1050 Vienna  Austria
Phone:+43/699/12614231
--- www.keyvis.at  ste...@keyvis.at ---
--  This email and its attachments are
--confidential and for the recipient only--



Re: [ICE] curve manipulation issues

2012-05-07 Thread Martin Chatterjee
Hi Chris,

well, I don't want to be a pain - but I've used Get Closest Points quite
often and very successfully with both PointClouds and PolyMeshes.

I mis-used it to get an array of all Point Locations in the per-object
context (as I didn't know Build Array From Set  ... :-/ )

This node works for Polymeshes and Point Clouds, and sort-of-works for
Curves - but with wrong results.

So my reasoning is that this is a bug that should be logged.

I personally don't see a reason why this should work on polymeshes but not
on curves. But if that is the case then the node should turn red and not
work at all on Curves.

But regardless of this specific issue - what is the best way to formally
log a bug nowadays?

Thanks, Martin
--
Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



On Mon, May 7, 2012 at 2:17 PM, Chris Chia chris.c...@autodesk.com wrote:

 Hi Martin,
 From what i know, Get Closest Points works for point cloud data.
 If you need to find the closest point position to a geometry, you can do
 something like my screenshot below.
 I have used null as the geometry.

 I am sure others can do a simpler ice tree. But I believe this one is more
 comprehensive.

 [cid:56b2533f-ae43-45f5-952c-05915526f22d]




 Regards,
 Chris Chia
 Softimage QA Analyst
 Autodesk Media  Entertainment

 
 From: martin.chatter...@googlemail.com [martin.chatter...@googlemail.com]
 on behalf of Martin Chatterjee [martin.chatterjee.li...@googlemail.com]
 Sent: Monday, May 07, 2012 7:27 PM
 To: Chris Chia
 Subject: Re: [ICE] curve manipulation issues

 Hi Chris,

 thanks again for the quick reply on the list.

 For the sake of completeness I'd love to see the faulty behaviour of the
 Get Closest Points node logged as a bug.

 It's been a while - in fact I guess this might be my first official bug
 report since the aquisition...

 Soo, what is the correct/easiest way of formally logging a bug?

 Cheers, Martin
 --
Martin Chatterjee

 [ Freelance Technical Director ]
 [http://www.chatterjee.de]



 On Mon, May 7, 2012 at 12:33 PM, Chris Chia chris.c...@autodesk.com
 mailto:chris.c...@autodesk.com wrote:
 Hi Martin,
 I think you are looking for this.
 You can use Select in Array ice node to query the individual vertex's
 position.

 [cid:c02c4ea5-dd64-448b-91cb-a705c756]




 Regards,

 Chris Chia

 Softimage QA Analyst

 Autodesk Media  Entertainment


 
 From: softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.com [
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.com] on behalf of Martin Chatterjee [
 martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.com]
 Sent: Monday, May 07, 2012 5:11 PM
 To: softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.com
 
 Subject: [ICE] curve manipulation issues

 Hello clever people out there,

 I'm experiencing some annoying issues when trying to deal with Curve
 Manipulation in ICE - hopefully somebody can help me out here with some
 insight?


 1.) I am looking for the Curve equivalent to self.ID (for PointClouds)  or
 self.VertexIndex (for polyMeshes). Bottom line I want to be able to access
 a Curve Point Location in the same way I can access PointCloud points via
 ID to Location or Polymesh vertices via PointIndex To Location


 2.) While attempting to workaround this issue I have stumbled over this:
 (see attached screenshot)

 When trying to get a full array of all Point Locations of a curve via Get
 Closest Points I NEVER get the correct point count...

 When the curve is closed, it will give me one more, when the curve is open
 I will get two less than the actual point count.

 Has anybody out there succeeded in working around this somehow?

 Thanks a lot in advance for any hints,

 Cheers, Martin

 --
   Martin Chatterjee

 [ Freelance Technical Director ]
 [http://www.chatterjee.de]





Re: [ICE] curve manipulation issues

2012-05-07 Thread Chris Chia
Hi Martin,
I will bring this up to the development team to see how it should support with 
the curves.

I will handle the filing of defects. If you ever find any defects in the 
future, you can report it here in this mailing list.

Cheers.


Regards,
Chris Chia


On 7 May, 2012, at 9:46 PM, Martin Chatterjee 
martin.chatterjee.li...@googlemail.commailto:martin.chatterjee.li...@googlemail.com
 wrote:

Hi Chris,

well, I don't want to be a pain - but I've used Get Closest Points quite 
often and very successfully with both PointClouds and PolyMeshes.

I mis-used it to get an array of all Point Locations in the per-object 
context (as I didn't know Build Array From Set  ... :-/ )

This node works for Polymeshes and Point Clouds, and sort-of-works for Curves - 
but with wrong results.

So my reasoning is that this is a bug that should be logged.

I personally don't see a reason why this should work on polymeshes but not on 
curves. But if that is the case then the node should turn red and not work at 
all on Curves.

But regardless of this specific issue - what is the best way to formally log a 
bug nowadays?

Thanks, Martin
--
Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



On Mon, May 7, 2012 at 2:17 PM, Chris Chia 
chris.c...@autodesk.commailto:chris.c...@autodesk.com wrote:
Hi Martin,
From what i know, Get Closest Points works for point cloud data.
If you need to find the closest point position to a geometry, you can do 
something like my screenshot below.
I have used null as the geometry.

I am sure others can do a simpler ice tree. But I believe this one is more 
comprehensive.

[cid:56b2533f-ae43-45f5-952c-05915526f22d]




Regards,
Chris Chia
Softimage QA Analyst
Autodesk Media  Entertainment


From: martin.chatter...@googlemail.commailto:martin.chatter...@googlemail.com 
[martin.chatter...@googlemail.commailto:martin.chatter...@googlemail.com] on 
behalf of Martin Chatterjee 
[martin.chatterjee.li...@googlemail.commailto:martin.chatterjee.li...@googlemail.com]
Sent: Monday, May 07, 2012 7:27 PM
To: Chris Chia
Subject: Re: [ICE] curve manipulation issues

Hi Chris,

thanks again for the quick reply on the list.

For the sake of completeness I'd love to see the faulty behaviour of the Get 
Closest Points node logged as a bug.

It's been a while - in fact I guess this might be my first official bug report 
since the aquisition...

Soo, what is the correct/easiest way of formally logging a bug?

Cheers, Martin
--
   Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



On Mon, May 7, 2012 at 12:33 PM, Chris Chia 
chris.c...@autodesk.commailto:chris.c...@autodesk.commailto:chris.c...@autodesk.commailto:chris.c...@autodesk.com
 wrote:
Hi Martin,
I think you are looking for this.
You can use Select in Array ice node to query the individual vertex's 
position.

[cid:c02c4ea5-dd64-448b-91cb-a705c756]




Regards,

Chris Chia

Softimage QA Analyst

Autodesk Media  Entertainment



From: 
softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.com
 
[softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.com]
 on behalf of Martin Chatterjee 
[martin.chatterjee.li...@googlemail.commailto:martin.chatterjee.li...@googlemail.commailto:martin.chatterjee.li...@googlemail.commailto:martin.chatterjee.li...@googlemail.com]
Sent: Monday, May 07, 2012 5:11 PM
To: 
softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.com
Subject: [ICE] curve manipulation issues

Hello clever people out there,

I'm experiencing some annoying issues when trying to deal with Curve 
Manipulation in ICE - hopefully somebody can help me out here with some insight?


1.) I am looking for the Curve equivalent to self.ID (for PointClouds)  or 
self.VertexIndex (for polyMeshes). Bottom line I want to be able to access a 
Curve Point Location in the same way I can access PointCloud points via ID to 
Location or Polymesh vertices via PointIndex To Location


2.) While attempting to workaround this issue I have stumbled over this: (see 
attached screenshot)

When trying to get a full array of all Point Locations of a curve via Get 
Closest Points I NEVER get the correct point count...

When the curve is closed, it will give me one more, when the curve is open I 
will get two less than the actual point count.

Has anybody out there succeeded in working around this somehow?

Thanks a lot in advance for any hints,

Cheers, Martin

--
  Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



attachment: winmail.dat

Re: [ICE] curve manipulation issues

2012-05-07 Thread Martin Chatterjee
Excellent, thanks Chris.

Cheers, Martin
--
Martin Chatterjee

[ Freelance Technical Director ]
[http://www.chatterjee.de]



On Mon, May 7, 2012 at 4:07 PM, Chris Chia chris.c...@autodesk.com wrote:

 Hi Martin,
 I will bring this up to the development team to see how it should support
 with the curves.

 I will handle the filing of defects. If you ever find any defects in the
 future, you can report it here in this mailing list.

 Cheers.


 Regards,
 Chris Chia


 On 7 May, 2012, at 9:46 PM, Martin Chatterjee 
 martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.com wrote:

 Hi Chris,

 well, I don't want to be a pain - but I've used Get Closest Points quite
 often and very successfully with both PointClouds and PolyMeshes.

 I mis-used it to get an array of all Point Locations in the per-object
 context (as I didn't know Build Array From Set  ... :-/ )

 This node works for Polymeshes and Point Clouds, and sort-of-works for
 Curves - but with wrong results.

 So my reasoning is that this is a bug that should be logged.

 I personally don't see a reason why this should work on polymeshes but not
 on curves. But if that is the case then the node should turn red and not
 work at all on Curves.

 But regardless of this specific issue - what is the best way to formally
 log a bug nowadays?

 Thanks, Martin
 --
Martin Chatterjee

 [ Freelance Technical Director ]
 [http://www.chatterjee.de]



 On Mon, May 7, 2012 at 2:17 PM, Chris Chia chris.c...@autodesk.com
 mailto:chris.c...@autodesk.com wrote:
 Hi Martin,
 From what i know, Get Closest Points works for point cloud data.
 If you need to find the closest point position to a geometry, you can do
 something like my screenshot below.
 I have used null as the geometry.

 I am sure others can do a simpler ice tree. But I believe this one is more
 comprehensive.

 [cid:56b2533f-ae43-45f5-952c-05915526f22d]




 Regards,
 Chris Chia
 Softimage QA Analyst
 Autodesk Media  Entertainment

 
 From: martin.chatter...@googlemail.commailto:
 martin.chatter...@googlemail.com [martin.chatter...@googlemail.com
 mailto:martin.chatter...@googlemail.com] on behalf of Martin Chatterjee
 [martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.com]
 Sent: Monday, May 07, 2012 7:27 PM
 To: Chris Chia
 Subject: Re: [ICE] curve manipulation issues

 Hi Chris,

 thanks again for the quick reply on the list.

 For the sake of completeness I'd love to see the faulty behaviour of the
 Get Closest Points node logged as a bug.

 It's been a while - in fact I guess this might be my first official bug
 report since the aquisition...

 Soo, what is the correct/easiest way of formally logging a bug?

 Cheers, Martin
 --
   Martin Chatterjee

 [ Freelance Technical Director ]
 [http://www.chatterjee.de]



 On Mon, May 7, 2012 at 12:33 PM, Chris Chia chris.c...@autodesk.com
 mailto:chris.c...@autodesk.commailto:chris.c...@autodesk.commailto:
 chris.c...@autodesk.com wrote:
 Hi Martin,
 I think you are looking for this.
 You can use Select in Array ice node to query the individual vertex's
 position.

 [cid:c02c4ea5-dd64-448b-91cb-a705c756]




 Regards,

 Chris Chia

 Softimage QA Analyst

 Autodesk Media  Entertainment


 
 From: softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.com [
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.commailto:
 softimage-boun...@listproc.autodesk.com] on behalf of Martin Chatterjee
 [martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.commailto:
 martin.chatterjee.li...@googlemail.com]
 Sent: Monday, May 07, 2012 5:11 PM
 To: softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.com
 mailto:softimage@listproc.autodesk.commailto:
 softimage@listproc.autodesk.com
 Subject: [ICE] curve manipulation issues

 Hello clever people out there,

 I'm experiencing some annoying issues when trying to deal with Curve
 Manipulation in ICE - hopefully somebody can help me out here with some
 insight?


 1.) I am looking for the Curve equivalent to self.ID (for PointClouds)  or
 self.VertexIndex (for polyMeshes). Bottom line I want to be able to access
 a Curve Point Location in the same way I can access PointCloud points via
 ID to Location or Polymesh vertices via PointIndex To Location


 2.) While attempting to workaround this issue I have stumbled over this:
 (see attached screenshot)

 When trying to get a full array of all Point Locations of a curve via Get
 Closest Points I NEVER get the correct point count...

 When the curve is closed, it will give me one more, when the curve is open
 I will get two 

Re: Getting the objects to which a material was assigned in siOnEndCommand

2012-05-07 Thread Nicolas Burtnyk
XSI already takes care of telling my renderer when we need to render.  That
includes preview renders, region renders and batch renders for animation.
 These all happen using the same mechanism - by calling the custom renderer
Process callback.

Since all these types of rendering are handled by a single unified system,
I'm designing my dirty system to be more or less agnostic to the type of
rendering that's being performed.  I want to avoid having to distinuish
between preview renders, animation renders, region renders etc... For
example, there's no reason to assume everything is dirty for a preview
render (case #3 above).  Basically, every time I'm told to render a frame,
I need to determine what's been added, what's been removed and what has
changed since the last render.  Also, I need to distinguish between
different kinds of edits - e.g. a change in a mesh's xform only doesn't
require me to re-extract the geometry data from XSI.

To do this, I simply keep track of what (meshes, materials, etc...) I
rendered last time.  Let's call this the previous render list.  When it's
time to render, I first mark everything in my previous render list as
unused.  I then traverse the XSI scene to collect things to render.  For
each thing I check whether it's already in my previous render list.  If
not, it's a new thing and it gets marked for full processing.  If it is
found, I mark the thing as used, then determine what kind of processing
it needs (full processing, xform only change, etc...).  After everything
has been collected, I go through my render list and anything still marked
as unused is removed.

The determine what kind of processing it needs stage above is what needs
to check for dirty information.  Currently I'm relying on a bunch of
callbacks to maintain a data structure that I can quickly query to see if a
particular object has been dirtied.  I am investigating   the possibility
of replacing all those callbacks with some checking of the evaluation ids
or hierarchical evaluation ids.  This would happen only during the step
when I'm querying the dirty information, not on some regular interval
outside the context of rendering.

Thanks again for suggesting the evaluation id stuff.  It looks like that
going to simplify my checks a lot and make the system more robust.  It's
absolutely essential for the system to not miss anything - a false negative
will mean we're rendering data that's inconsistent with the current state
of the XSI scene which will lead to a lot of head scratching and
frustration.  I'll likely need to accept some false positives in exchange
for never having false negatives - a compromise that is completely
acceptable in this context.

-Nicolas


On Fri, May 4, 2012 at 7:12 PM, jo benayoun jobenay...@gmail.com wrote:

 Hey Nicolas,

 I think there is a misunderstanding on what I'm suggesting and what you
 could expect.

 1/ When I was talking about increasing the frequency of the custom scene
 graph traversal, I was thinking to it in the context of a quick preview
 ala render region where things have to be updated when a slider is touched.
 subscribing to the siOnValueChanged or with a custom timer fit the case.

 2/ A regular scene graph traversing would happen in the context of your
 render is launched but with a range of frames (let say 0-100) where you
 dont need to take care of user edits. It means, that the user press
 starts, your scene graph gets initialized and scene graph traversing is
 done for every frame. ID is ideal to track animated objects, ...

 3/ The other and last one Im thinking about is if the user ask the
 renderer for one frame and press the button start, no need of a custom
 scene graph. You have to evaluate everything.

 In this three cases, I don't see which one would make the system breaks
 considering the ID increased or decreased between updates.
 If there is a context or something I didn't think about, please, let me
 know, that I could try to think to something else ! :)

 :)
 -jo



 2012/5/4 Alok Gandhi alok.gandhi2...@gmail.com

 Hi Nicolas,

 If I understand what you are saying, for each dirty of your interest,
 you would like to capture and store that as soon as it happens and compare
 it with last render event to process the delta change. And right now you
 the challenge that you are faced with is capturing the dirties, specially
 with the material assignment.

 But isn't it true that Joe's proposal lets you visit the scene graph to
 capture the scene graph changes at each render, still doing the same thing
 but with a different approach.

 Please correct me if I am wrong.

 Alok.





Re: PyQt For Softimage

2012-05-07 Thread jo benayoun
Hi Enrique,

You can still (as suggested by Stefan) subscribe to the siOnValueChanged
which will give you back a reference to the parameter to retrieve its new
value.
A good option would be to implement a custom engine.
You can imagine a mechanism implemented in your main SynopticWidget which
will be responsible to catch the xsi parameters bound to your sliders
(acting like a mapping).
For convenience, you should also implement a custom slider widget ala
softimage reproducing the main signals/slots of the existing QSlider.
Then a good API to bind/add a slider to a xsi parameter could be something
like mysynoptic.addSlider(mysiobject.kine.posx), behind the scenes
everything would be handled by your custom synoptic 
If you're worried by the performances especially with python, you still
have the option to implement everything in cplusplus which should be faster
in communicating with qt widgets and create a command to add xsi parameters
to
you synoptic. Considering the type of the parameter (string, float,
whatever), your engine would be capable of install and bind the right
widget.

xsiparameters
   |
  handle by (siOnValueChanged)
   |
SynopticWidget    contains and bind to xsi parameters 
SynopticSlider
   contains and bind to xsi parameters 
SynopticController (why not to recreate a facial panel, its just 2d
graphics ...)
   contains and bind to xsi parameters 



-jo








2012/5/7 Stefan Kubicek s...@tidbit-images.com

 I'm just diving into it as well, but the way I'd do it is to implement a
 siOnTimeChange event
 that either calls a function in your UI (or menu) to update it's
 parameters, or, if you want the UI
 to respond to value changes happening without the time slider being moved
 (somebody changes a parameter
 through scripting or the normal Softimage interface) you probably have to
 implement an onValueChanged event.
 How sophistivated this event is (whether it checks for what values
 actually have changed and whether the Qt
 UI has to be upated or not, or whether it just stupidly calls the Update
 QT UI function every time) comes down
 to performance. Keep it simple first and optimize if required.

 Would love to hear more ideas on this as well.



  Just bringing this thread back to life.

  We are getting more into using PYQT here and I am looking into completely
 replacing synoptics and use PYQT instead.

 I was hoping somebody could help me figure out how to get information from
 XSI sent to PYQT currently everything that I have done has been the
 opposite, where PYQT drives something, but does very little evaluation of
 the scene.

 An example would be.

 When a characters facial animation is animated, and the time slider
 scrubs,
 I will need the PYQT slider that drives that facial animation to detect
 the
 value change in XSI and show its new value in the menu.

 Currently I don't really know how to do that, as the example SignalSlot
 function that comes with this implementation only covers something with a
 registered event.

 Do I need to create onValueChanged events for every value on the rig?

 any help would be awesome, I'm pretty new to PYQT still.

 thanks,
  Enrique

 On Wed, Feb 29, 2012 at 3:29 PM, Enrique Caballero 
 enriquecaball...@gmail.com wrote:

  For those of us using linux, is there an out of box PYQT implementation
 such as this that we can use?



 On Thu, Dec 8, 2011 at 6:45 AM, Alok Gandhi alok.gandhi2...@gmail.com*
 *wrote:

  Oh ok, thanks for the info Steven.


 On Wed, Dec 7, 2011 at 5:24 PM, Steven Caron car...@gmail.com wrote:

  well for your reference, i am using Alan Jones' cmake softimage module.
 it automates a lot of the process for creating softimage plugins with
 cmake. it can be found in the src\CMake\Modules folder. its very handy
 :)

 s


 On Wed, Dec 7, 2011 at 2:21 PM, Alok Gandhi alok.gandhi2...@gmail.com
 **wrote:

  Yep that works too, I knew that it did not need shader lib for sure,
 but was not sure, so I set the path anyways.


 On Wed, Dec 7, 2011 at 2:08 PM, Steven Caron car...@gmail.com
 wrote:

  well it doesn't need that actually, let the entry in the cmake gui
 stay red. just hit generate... does this work for you?



 --





 --






 --
 --**-
 Stefan Kubicek   Co-founder
 --**-
  keyvis digital imagery
 Wehrgasse 9 - Grüner Hof
   1050 Vienna  Austria
Phone:+43/699/12614231
 --- www.keyvis.at  ste...@keyvis.at ---
 --  This email and its attachments are
 --confidential and for the recipient only--




Re: Getting the objects to which a material was assigned in siOnEndCommand

2012-05-07 Thread Steven Caron
yes, we need improvements to the SDK to bring parity to the mental ray
integration in regards to scene graph changes.

On Mon, May 7, 2012 at 9:14 AM, Nicolas Burtnyk nico...@redshift3d.comwrote:


 It's absolutely essential for the system to not miss anything - a false
 negative will mean we're rendering data that's inconsistent with the
 current state of the XSI scene which will lead to a lot of head scratching
 and frustration.  I'll likely need to accept some false positives in
 exchange for never having false negatives - a compromise that is completely
 acceptable in this context.



Re: PyQt For Softimage

2012-05-07 Thread Steven Caron
hey enrique

i have been meaning to create an example 'synoptic' but haven't had time.
my current inspiration for a synoptic view is very similar to paolo's
zvgui...  http://www.paolodominici.com/products/zvgui/

there are a lot of fancy aspects to it, but i think the built in synoptic
editor and the panning are the most attractive parts of it.

i hope you can share your findings using pyqt as a synoptic view for
animators.

s

On Mon, May 7, 2012 at 3:32 AM, Enrique Caballero 
enriquecaball...@gmail.com wrote:

 Just bringing this thread back to life.

  We are getting more into using PYQT here and I am looking into completely
 replacing synoptics and use PYQT instead.

 I was hoping somebody could help me figure out how to get information from
 XSI sent to PYQT currently everything that I have done has been the
 opposite, where PYQT drives something, but does very little evaluation of
 the scene.

 An example would be.

 When a characters facial animation is animated, and the time slider
 scrubs, I will need the PYQT slider that drives that facial animation to
 detect the value change in XSI and show its new value in the menu.

 Currently I don't really know how to do that, as the example SignalSlot
 function that comes with this implementation only covers something with a
 registered event.

 Do I need to create onValueChanged events for every value on the rig?

 any help would be awesome, I'm pretty new to PYQT still.

 thanks,
  Enrique

 On Wed, Feb 29, 2012 at 3:29 PM, Enrique Caballero 
 enriquecaball...@gmail.com wrote:

 For those of us using linux, is there an out of box PYQT implementation
 such as this that we can use?



 On Thu, Dec 8, 2011 at 6:45 AM, Alok Gandhi alok.gandhi2...@gmail.comwrote:

 Oh ok, thanks for the info Steven.


 On Wed, Dec 7, 2011 at 5:24 PM, Steven Caron car...@gmail.com wrote:

 well for your reference, i am using Alan Jones' cmake softimage module.
 it automates a lot of the process for creating softimage plugins with
 cmake. it can be found in the src\CMake\Modules folder. its very handy :)

 s


 On Wed, Dec 7, 2011 at 2:21 PM, Alok Gandhi 
 alok.gandhi2...@gmail.comwrote:

 Yep that works too, I knew that it did not need shader lib for sure,
 but was not sure, so I set the path anyways.


 On Wed, Dec 7, 2011 at 2:08 PM, Steven Caron car...@gmail.com wrote:

 well it doesn't need that actually, let the entry in the cmake gui
 stay red. just hit generate... does this work for you?



 --





 --






Species in NYC

2012-05-07 Thread Eric Thivierge
Hey everyone,

Just wanted to drop a note that Chris Covelli and I will be in the city
tomorrow doing some demos at some of the studios. We are planning to go out
tomorrow night for a few drinks. We would love to see anyone who is around.

Not sure where we are meeting for drinks yet but will post back to let
everyone know.

Later!
Eric Thivierge


Re: PyQtForSoftimage vs Blur-dev

2012-05-07 Thread jo benayoun
Hi Ana,

Qt on windows relies on the win32 api as well as Softimage (MFC). As they
share a common base, both are hackable.
So, whatever the strategy that is used, it still remains the same ...
hooking a widget into the main softimage app by going thru the win32 api.
The only main difference I would say by using pyQtSoftimage (except the
source codes) is to not have to deal with all the overhead and extra layers
Blur developers put over their modules/wrappers ...
Those packages are both first steps considering more should be done by
spending time on it and make things working better.
I had lot of feedback around me saying studios are using this
implementation ... so it should be solid enough to go with it.
So feel free to make your own additions and come back here to share them
with us ...

:)
-jo






2012/5/7 Ana Gomez agomezalca...@gmail.com

 Hello everybody!

 I'm trying PyQtForSoftimage and I'm wondering some questions.
 As far as I know, this plugin is based on Blur tools. So, which are the
 differences between them? Do they have the same features? (of course, from
 the point of view of PyQt)

 Thanks in advance and thanks to Steven Caron and Jo Benayoun for sharing
 it.





Re: PyQtForSoftimage vs Blur-dev

2012-05-07 Thread Steven Caron
hey ana

originally i planned on exposing blur's pyqt implementation and simplify it
but its proved a lot harder (not impossible). then jo came along and showed
us a much easier way to host a pyqt app inside softimage. so
pyqtforsoftimage is a lot lighter than blur's implementation. the python
key stroke rerouting is very similar, in fact is a near copy of it.

as jo points out, blur's implementation has a lot of wrappers to provide
cross platform (3dsmax, softimage, motionbuilder) functionality but that
comes at a cost. outside that, they provide very similar functionality
because they really just expose pyqt.

with all that said, pyqtforsoftimage needs to be tested more and pushed
harder. i would love to hear more about how people are using pyqt and
provide example code and tutorials.

there is one issue someone logged last week...
https://github.com/caron/PyQtForSoftimage/issues/2 please test to see if
this is an issue for you and if it is provide feedback on the github issues
page.

s

On Mon, May 7, 2012 at 12:38 PM, jo benayoun jobenay...@gmail.com wrote:

 Hi Ana,

 Qt on windows relies on the win32 api as well as Softimage (MFC). As they
 share a common base, both are hackable.
 So, whatever the strategy that is used, it still remains the same ...
 hooking a widget into the main softimage app by going thru the win32 api.
 The only main difference I would say by using pyQtSoftimage (except the
 source codes) is to not have to deal with all the overhead and extra layers
 Blur developers put over their modules/wrappers ...
 Those packages are both first steps considering more should be done by
 spending time on it and make things working better.
 I had lot of feedback around me saying studios are using this
 implementation ... so it should be solid enough to go with it.
 So feel free to make your own additions and come back here to share them
 with us ...

 :)
 -jo







 2012/5/7 Ana Gomez agomezalca...@gmail.com

 Hello everybody!

 I'm trying PyQtForSoftimage and I'm wondering some questions.
 As far as I know, this plugin is based on Blur tools. So, which are the
 differences between them? Do they have the same features? (of course, from
 the point of view of PyQt)

 Thanks in advance and thanks to Steven Caron and Jo Benayoun for sharing
 it.






OT: @ fmx

2012-05-07 Thread Thiago Costa
Hi fellows,

I'm here in Germany. We'll be presenting a new project we are
workinghttp://getteamup.comon at FMX.
If you are around, please drop by at our Session on the 10th, or just drop
me a line.

Sorry for the plug, but I thought this might interest you. :)

cheers,

-Thiagoq


Re: OT: @ fmx

2012-05-07 Thread Paul Griswold
For those of us who can't make it, I hope you'll be sharing lots of details
soon!

Paul

On May 7, 2012, at 7:57 PM, Thiago Costa thiagocost...@gmail.com wrote:

Hi fellows,

I'm here in Germany. We'll be presenting a new project we are
workinghttp://getteamup.comon at FMX.
If you are around, please drop by at our Session on the 10th, or just drop
me a line.

Sorry for the plug, but I thought this might interest you. :)

cheers,

-Thiagoq


Re: PyQtForSoftimage vs Blur-dev

2012-05-07 Thread Enrique Caballero
i was looking into implementing PYQT at our studio for a while. I used both
blur and PYQT for softimage and in the end decided to go with
PYQTforSoftimage because it is much lighter.  As jo and steven said, the
blurcore has a lot of overhead, and I did not want to bloat our pipeline
with tools that we might not use

On Tue, May 8, 2012 at 3:44 AM, Steven Caron car...@gmail.com wrote:

 hey ana

 originally i planned on exposing blur's pyqt implementation and simplify
 it but its proved a lot harder (not impossible). then jo came along and
 showed us a much easier way to host a pyqt app inside softimage. so
 pyqtforsoftimage is a lot lighter than blur's implementation. the python
 key stroke rerouting is very similar, in fact is a near copy of it.

 as jo points out, blur's implementation has a lot of wrappers to provide
 cross platform (3dsmax, softimage, motionbuilder) functionality but that
 comes at a cost. outside that, they provide very similar functionality
 because they really just expose pyqt.

 with all that said, pyqtforsoftimage needs to be tested more and pushed
 harder. i would love to hear more about how people are using pyqt and
 provide example code and tutorials.

 there is one issue someone logged last week...
 https://github.com/caron/PyQtForSoftimage/issues/2 please test to see if
 this is an issue for you and if it is provide feedback on the github issues
 page.

 s

 On Mon, May 7, 2012 at 12:38 PM, jo benayoun jobenay...@gmail.com wrote:

 Hi Ana,

 Qt on windows relies on the win32 api as well as Softimage (MFC). As they
 share a common base, both are hackable.
 So, whatever the strategy that is used, it still remains the same ...
 hooking a widget into the main softimage app by going thru the win32 api.
 The only main difference I would say by using pyQtSoftimage (except the
 source codes) is to not have to deal with all the overhead and extra layers
 Blur developers put over their modules/wrappers ...
 Those packages are both first steps considering more should be done by
 spending time on it and make things working better.
 I had lot of feedback around me saying studios are using this
 implementation ... so it should be solid enough to go with it.
 So feel free to make your own additions and come back here to share them
 with us ...

 :)
 -jo







 2012/5/7 Ana Gomez agomezalca...@gmail.com

 Hello everybody!

 I'm trying PyQtForSoftimage and I'm wondering some questions.
 As far as I know, this plugin is based on Blur tools. So, which are the
 differences between them? Do they have the same features? (of course, from
 the point of view of PyQt)

 Thanks in advance and thanks to Steven Caron and Jo Benayoun for sharing
 it.







RE: Why is Material::operator private?

2012-05-07 Thread Bosheng An
Hi Nicholas,

My name is Bosheng and I am a developer from Softimage.

Thank you for your statement here and your mention is true, but I think we 
designed these comparison logic purposely. We just defined our CRef  and  
that way.

I guess what you would like to do is twisting the predicate in your sort 
function a bit to: using == to check whether the two operands are the same 
object before invoking  or .

Sorry for the inconvenience.

Thanks and Regards,

Bosheng.


From: softimage-boun...@listproc.autodesk.com 
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Nicolas Burtnyk
Sent: Saturday, May 05, 2012 7:31 AM
To: softimage@listproc.autodesk.com
Subject: Re: Why is Material::operator private?

Well I'm glad this list exists!  It's great for bouncing ideas around and the 
fact that the Soft devs are actually active here is fantastic!
I hope I can start to contribute more and be helpful to others.

On Fri, May 4, 2012 at 3:59 PM, Raffaele Fragapane 
raffsxsil...@googlemail.commailto:raffsxsil...@googlemail.com wrote:

I don't know who you are Nicolas, but I'm suddenly glad we have you around on 
the list and using Soft :)
On May 5, 2012 2:21 AM, Nicolas Burtnyk 
nico...@redshift3d.commailto:nico...@redshift3d.com wrote:
Unfortunately, that doesn't work.  CRef::operator performs a lexicographical 
comparison using CRef::GetAsText().
In my scene when I have the same material assigned to multiple objects, the 
CRefs I get back from X3DObject::GetMaterials() give me different results from 
GetAsText even though they compare equal (and they are indeed the same 
material).

Example:
A bunch of objects with Scene_Material assigned, and 1 object (torus) with 
Material assigned.
This is the result of calling GetAsText on all the materials I get from calling 
GetMaterials on all the meshes in the scene.

//all materials (unsorted)
Model1.sphere.Scene_Material
Model.cube.Scene_Material
Model.cylinder.Scene_Material
Model_Instance.torus.Material
cone.Scene_Material Material
disc.Scene_Material Material

These materials are in a std::vectorCRef called materials.

I then want to remove duplicates, so I call:

std::sort( materials.begin(), materials.end(), CRef_Pred::less() );
materials.erase( std::unique( materials.begin(), materials.end(), 
CRef_Pred::equal() ), materials.end() );

where the predicates here evaluate to CRef::operator and CRef::operator==, 
respectively.

In case you're not familiar with the stl algorithms, std::unique removes 
duplicates from a sorted range by moving them to the end of the container and 
returning the new end of the range with no duplicates.  The important thing is 
that the range must be sorted for the algorithm to work correctly.

Turns out that the lexicographical comparison is not appropriate for CRef 
sorting since 2 CRefs can be both equal and less than at the same time!

CRef m1, m2;
m1.Set(Lcone.Scene_Material Material)
m2.Set(Ldisc.Scene_Material Material)
m1 == m2; //true!
m1  m2; //true!
assert( (m1 == m2) != (m1  m2) ); // --- Wrong assumption!

So, as a result, calling std::sort on my vector of CRefs doesn't correctly sort 
the vector:

//all materials (sorted)
Model.cube.Scene_Material
Model.cylinder.Scene_Material
Model1.sphere.Scene_Material
Model_Instance.torus.Material  -- Oops!
cone.Scene_Material
disc.Scene_Material

And therefore my removal of duplicates doesn't work correctly:

//all materials (unique)
Model.cube.Scene_Material  -- !
Model_Instance.torus.Material
cone.Scene_Material-- !

So CRef::operator is not suitable for sorting.  On a side note, that means 
it's also not really suitable for use in a map (the line in the docs This is 
useful for sorting operations with stl maps. is not correct.).

-Nicolas


On Fri, May 4, 2012 at 4:27 AM, Marc-Andre Belzile 
marc-andre.belz...@autodesk.commailto:marc-andre.belz...@autodesk.com wrote:
Do you really need to instantiate ProjectItem objects ? Try using 
CRef::operator  in your predicate instead.

-mab

From: 
softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.com
 
[softimage-boun...@listproc.autodesk.commailto:softimage-boun...@listproc.autodesk.com]
 on behalf of Steven Caron [car...@gmail.commailto:car...@gmail.com]
Sent: Thursday, May 03, 2012 8:46 PM
To: softimage@listproc.autodesk.commailto:softimage@listproc.autodesk.com
Subject: Re: Why is Material::operator private?

in a rendering context speed is paramount, keep up the good fight! and the 
pressure on the autodesk to make the improvements you need.

On Thu, May 3, 2012 at 5:41 PM, Nicolas Burtnyk 
nico...@redshift3d.commailto:nico...@redshift3d.commailto:nico...@redshift3d.commailto:nico...@redshift3d.com
 wrote:

the on-the-fly construction of 2 ProjectItems to do the comparison is a lot 
slower than if I had those ProjectItems (or Materials or whatever) already.  
Slow is a relative term so let me be more specific - on my machine, 
constructing 100 

Re: OT: @ fmx

2012-05-07 Thread Steffen Dünner
Cool, I will be there  :-)

Cheers
Steffen

Sent from no IPhone
Am 08.05.2012 01:57 schrieb Thiago Costa thiagocost...@gmail.com:

 Hi fellows,

 I'm here in Germany. We'll be presenting a new project we are 
 workinghttp://getteamup.comon at FMX.
 If you are around, please drop by at our Session on the 10th, or just drop
 me a line.

 Sorry for the plug, but I thought this might interest you. :)

 cheers,

 -Thiagoq