" for Topology there is no SDK access" does this mean none existent or locked ? and..Why ? if Matt wants to create custom nodes, are the limitation inherent to ice, or is ice like the standard SDK locked in certain areas ?
On 15 May 2013 20:25, Matt Lind <ml...@carbinestudios.com> wrote: > That’s what I was afraid of.**** > > ** ** > > I remember your findings from a while ago, which was part of my incentive > to pursue this route. 500ms vs. 20ms is quite significant (2500%). In my > case it would be the difference between acceptable performance and > unacceptable performance.**** > > ** ** > > I’m OK with having to break this down into a small handful of nodes (~10), > but I’m not OK with having to use 300 or so as is currently the case.**** > > ** ** > > On the kinematics front, I’d like to compute the local transform of one > object relative to another and spit out the result as a 4x4 matrix. That > alone would eliminate 50 nodes from the tree for each instance which the > functionality is needed. Another node to convert a UV location from > non-uniform to uniform parameterized space would eliminate a significant > number of nodes too, and that’s really the bottleneck at this point because > doing searches and reverse lookups using the factory nodes is quite > cumbersome and impractical.**** > > ** ** > > ** ** > > ** ** > > Matt**** > > ** ** > > ** ** > > ** ** > > ** ** > > *From:* softimage-boun...@listproc.autodesk.com [mailto: > softimage-boun...@listproc.autodesk.com] *On Behalf Of *Ahmidou Lyazidi > *Sent:* Wednesday, May 15, 2013 3:07 AM > > *To:* softimage@listproc.autodesk.com > *Subject:* Re: custom ICENode - questions and request for example source > code**** > > ** ** > > From my small experience about this, you can't make a custom topology or > kinematics "node", you make a node that abstract the more or less complex > computation, then you feed the topology nodes (or a matrix in the case of > kinematics).**** > > As you stated you can't use locators, or location queries in a custom ice > node, so if you need them the workflow is to break you ice node in smaller > parts.**** > > About the preformance sometimes it's faster, sometimes quite the same. I > made a parallel transport frame node, the gain was only 15% but the setup > faster.**** > > This node seems to perform way faster:**** > > > http://shaderop.com/2011/07/cubic-bezier-curve-node-for-softimage-ice/index.html > **** > > A**** > > ** ** > > > **** > > ----------------------------------------------- > Ahmidou Lyazidi > Director | TD | CG artist > http://vimeo.com/ahmidou/videos**** > > ** ** > > 2013/5/15 Matt Lind <ml...@carbinestudios.com>**** > > well, let's answer the questions first:**** > > **** > > 1) Does anybody have source code they are willing to share for custom ICE > Nodes that deal with topology and/or geometry?**** > > **** > > 2) Does the lack of reference, location, and execute ports for custom ICE > nodes mean I cannot cast a location search from inside an ICE node?**** > > **** > > **** > > **** > > To answer your question:**** > > **** > > Imagine two nulls and two NURBS Surfaces. the task is to find the nearest > location from the first null to the first surface. At that location, build > an orthonormal basis and compute the local transform of the null relative > to that basis. Then reconstruct that relationship by applying it to the > 2nd null relative to the 2nd surface assuming both surfaces use uniform > parameterization, not non-uniform as is the softimage default. Version 2: > extend to operate on vertices of polygon meshes instead of nulls. I have a > working version, but it is slow and not very stable.**** > > **** > > The problem I'm encountering is it simply takes too many factory nodes to > be able to work efficiently. Each node has a certain amount of overhead > regardless of what it does. Plus, the support for NURBS in ICE is rather > abysmal. I have to construct my own orthonormal basis plus implement my own > algorithm to convert from non-uniform parameterization to uniform > parameterization. Both are doable, but take very many nodes to do it > (including support for edge cases) making the whole effort rather clumsy at > best. The parameterization conversion is expensive as it involves sorting > and searching (while/repeat/counter nodes). When applying the ICE Compound > to a polygon mesh with 5,000+ vertices.....it gets the job done, but > chugs. **** > > **** > > I have a version of this tool written as a scripted operator, and it > performs really well because it has better SDK support and the > sorting/searching can be better optimized. But one shortcoming of scripted > operators is they self-delete if an input goes missing (which often happens > on scene load or model import when the content has been modifed > externally). This in turn causes content using the operator to malfunction > generating bug reports which are sent to artists to fix. Unfortunately > most artists weren't around when the content was created years ago, so they > have no idea what's wrong, what the expected output is supposed to look > like, or how to fix it. Often an asset has to be retired and replaced. > This is my motivation for rewriting the tool as a custom ICE node as ICE is > much more graceful when it's inputs don't exist - it just turns red and > sits patiently until conditions improve. This gives artists a chance to > fix the problem without having to sweat the details because they can read > the GetData node to see what's missing, then find and repair it. I'm > trying to make the content in our pipeline more durable.**** > > **** > > So...I'm looking for code samples of how to deal with topology and > geometry in ICE. So far I have not found any.**** > > **** > > **** > > Matt**** > > **** > > **** > > **** > > **** > > **** > > **** > ------------------------------ > > *From:* softimage-boun...@listproc.autodesk.com [ > softimage-boun...@listproc.autodesk.com] On Behalf Of Raffaele Fragapane [ > raffsxsil...@googlemail.com] > *Sent:* Tuesday, May 14, 2013 9:00 PM > *To:* softimage@listproc.autodesk.com > *Subject:* Re: custom ICENode - questions and request for example source > code**** > > Yeah, same hunch here.**** > > Unless the performance expectations are in the multiple characters > real-time concurrently, in which case I think neither way is gonna get > there usually.**** > > ** ** > > On Wed, May 15, 2013 at 1:04 PM, Ciaran Moloney <moloney.cia...@gmail.com> > wrote:**** > > I'm sorta , kinda sure that's a dead end for a custom node. You might be > better off optimizing your ICE tree. It doesn't sound like such a complex > problem, care to share? **** > > ** ** > > On Wed, May 15, 2013 at 2:41 AM, Matt Lind <ml...@carbinestudios.com> > wrote:**** > > I’ve been looking at the ICE SDK as a start to the process of writing > custom ICE Nodes in C++. I need to write topology generators, modifiers > and deformation nodes. So far all the source code I’ve seen supplied with > Softimage only deal with particle clouds or primitive data such as > converting integers to scalars. Does anybody have source code for working > with the Softimage SDK inside an ICE Node to modify > topology/geometry?.....or Kinematics? Example: creating a polygon mesh > from scratch, adding/removing subcomponents, dealing with clusters, etc… I > ask this partly because the ICE SDK docs say to not use the object > model….which leads to the question – how do I do anything?**** > > **** > > **** > > **** > > **** > > While also browsing the SDK docs, I saw in the ‘limitations’ section that > custom ICE Nodes cannot define reference, location, or execute ports. > Since I am very interested in working with locations, does this mean I > cannot do queries for locations from inside the ICE Node? Or does it only > mean I cannot send/receive locations from other ICE nodes?**** > > **** > > Example:**** > > **** > > I need to write an ICE Node which takes a polygon mesh and 2 NURBS > Surfaces as inputs, and whose output is the deformation of a 2nd polygon > mesh. To accomplish this feat requires the use of point Locators to map > the relationship between the first polygon mesh’s points relative to the > first surface, then re-interpret that information to deform the points of > the 2nd polygon mesh in relation to the 2nd surface. You can assume the > two polygon meshes and two surfaces have identical topology. I need to > write this as a custom ICE node because it is prohibitively expensive to > use the factory nodes (too many nodes/workarounds required leading to > severe performance degradation).**** > > **** > > I’d like to be able to do a point locator query from inside the custom ICE > node for performance (and convenience) reasons. Sample code would be a big > help.**** > > **** > > **** > > Anybody?**** > > **** > > **** > > Matt**** > > **** > > **** > > ** ** > > > > > -- > Our users will know fear and cower before our software! Ship it! Ship it > and let them flee like the dogs they are!**** > > ** ** >