[Sidefx-houdini-list] For each in VOP

Guillaume Laforge guillaume.laforge.3d at gmail.com
Sun Feb 21 09:24:46 EST 2016


Olivier strikes again!

:)

On Sun, Feb 21, 2016 at 6:15 AM, Oliver Markowski <owski.himself at gmail.com>
wrote:

> Cool stuff Olivier!
>
> On Fri, 19 Feb 2016 at 19:16 Jerome Pastorello <lordkarington0 at gmail.com>
> wrote:
>
> > Really nice !!
> > Impressionnant.
> >
> >
> > > Le 19 févr. 2016 à 13:48, Olivier Jeannel <facialdeluxe at gmail.com> a
> > écrit :
> > >
> > > For what it's worth, here's a little demo of what I was after :
> > > https://vimeo.com/155960784
> > >
> > > On Fri, Jan 29, 2016 at 12:03 PM, Olivier Jeannel <
> > facialdeluxe at gmail.com>
> > > wrote:
> > >
> > >> Hey there,
> > >> I found a way to get my primpoints arrays getting sorted after using
> the
> > >> Sort sop node.
> > >> I changed the previous line of vex :
> > >> int pts[]= sort( primpoints(0,0));      //array list of points on the
> > >> primitive [0,1,2,3,...]
> > >>
> > >> And, now it seems to reorder the arrays as selected in the Sort sop :)
> > >>
> > >> On Wed, Jan 27, 2016 at 5:08 PM, Olivier Jeannel <
> > facialdeluxe at gmail.com>
> > >> wrote:
> > >>
> > >>> Thank you,
> > >>> I'll try with a primitive vop then, see if I'll have more luck.
> > >>> The thing is, although I'm "rather at ease" (sorry I'm not sure it
> > >>> translate well in english) with classic vop node (coming from an xsi
> > ice
> > >>> background), the loop system appears a bit messy at first sight _
> > That's
> > >>> why I'm asking for for loop sample for beginner :/
> > >>> So really, if you have a visual example of how to connect this,
> please
> > do
> > >>> not hesitate.
> > >>>
> > >>> The thing is I wanted to translate my vex in vop node because I'm
> > having
> > >>> a problem with primpoints in vex.
> > >>> I have this loop :
> > >>>
> > >>>
> > >>> vector tata[];                                //build empty array of
> > >>> vector
> > >>> vector pos[];                                //build empty array of
> > vector
> > >>> int pts[]=primpoints(0,0);             //array list of points on the
> > >>> primitive [0,1,2,3,...]
> > >>>
> > >>> i at j=(primvertexcount(0,0));        //number of points on the
> primitive
> > >>> (4)
> > >>>
> > >>> for (int i=0;i<@j;i++)
> > >>> {
> > >>> tata[i]=point(0,"N",pts[i]); //buil array with all normal
> > >>> pos[i]=point(0,"P",pts[i]); //build array of position
> > >>>
> > >>> }
> > >>>
> > >>> v at edge_axis =tata[ch("index")];
> > >>> v at pivot = pos[ch("index")];
> > >>>
> > >>>
> > >>> About primpoints the doc says : This function returns an array of
> > points,
> > >>> in the same order as stored on the primitive itself.
> > >>>
> > >>> But if I use a Sort sop node (random)  before the Attributes Wrangle
> > >>> node, I can see the order of the ptnum has changed BUT the order of
> my
> > >>> arrays has not change.
> > >>> The array put the values alwys in the same order.
> > >>>
> > >>> Other than that, the scene works beatifully, it's just I'd like to be
> > >>> able to reorder (sort) these arrays.
> > >>>
> > >>> Am-I doing something wrong ? I'am a real beginner in coding.
> > >>>
> > >>>
> > >>> On Tue, Jan 26, 2016 at 10:59 PM, Jesse Erickson <
> > >>> mr.nicey.pants at gmail.com> wrote:
> > >>>
> > >>>> Good advice up top :) Re: the old trick, you can just use a
> Primitive
> > Vop
> > >>>> now. Vop Sops are deprecated and Attrib Vops will iterate over
> points,
> > >>>> verts, prims or run only once in detail mode. That's what I meant
> > about
> > >>>> skipping the For Each Loop and just running it in a Primitive Vop!
> > Lotsa
> > >>>> ways to crack this nut
> > >>>>
> > >>>> On Tue, Jan 26, 2016 at 1:04 PM, Andrew Lyons <tstexture at gmail.com>
> > >>>> wrote:
> > >>>>
> > >>>>> and keep in mind that vex is SIMD, and runs in parallel where
> > possible.
> > >>>>> Think of a vop sop as essentially a single function (or shader),
> and
> > >>>> its
> > >>>>> multiple data input is every point in the first input. Last time I
> > >>>> checked
> > >>>>> that last part was hard coded, so in some sense a vop sop is
> always a
> > >>>> hard
> > >>>>> coded foreach loop over every point in the first input. Given this,
> > the
> > >>>>> following code:
> > >>>>>
> > >>>>> For each Primitive:
> > >>>>>    Import P from Point index N°3.
> > >>>>>
> > >>>>> Is actually:
> > >>>>>
> > >>>>> Foreach point:
> > >>>>>    For each Primitive:
> > >>>>>        Import P from Point index N°3.
> > >>>>>
> > >>>>> And you may not want that.
> > >>>>>
> > >>>>> An old trick is to make sure your first input only has as many
> points
> > >>>> as
> > >>>>> the number of iterations you actually want, and then index data
> from
> > >>>> the
> > >>>>> second input. In your example, you would want npoints in your first
> > >>>> input
> > >>>>> to match nprims. Use a facet sop to Unique points, a primitive sop
> to
> > >>>> scale
> > >>>>> each Primitive to zero on its centroid, and then another facet/fuse
> > >>>> sop to
> > >>>>> consolidate points to achieve that.
> > >>>>>
> > >>>>> After that - what Jesse said.
> > >>>>>
> > >>>>> Good luck!
> > >>>>>> On Jan 26, 2016 4:49 AM, "Olivier Jeannel" <
> facialdeluxe at gmail.com>
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Hi list,
> > >>>>>>
> > >>>>>> I'm looking for simple tutorial or example about the For Each Loop
> > in
> > >>>>> VOP.
> > >>>>>> I've seen the Masterclass https://vimeo.com/142534639
> > >>>>>>
> > >>>>>> What I'd like to do is
> > >>>>>> For each Primitive, Import P from Point index N°3.
> > >>>>>> I managed to write it in vex, but I'm stuck reproducing this in
> > >>>>> AttribVOP.
> > >>>>>>
> > >>>>>> If anyone has 5mn :/
> > >>>>>> _______________________________________________
> > >>>>>> Sidefx-houdini-list mailing list
> > >>>>>> Sidefx-houdini-list at sidefx.com
> > >>>>>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > >>>>> _______________________________________________
> > >>>>> Sidefx-houdini-list mailing list
> > >>>>> Sidefx-houdini-list at sidefx.com
> > >>>>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > >>>> _______________________________________________
> > >>>> Sidefx-houdini-list mailing list
> > >>>> Sidefx-houdini-list at sidefx.com
> > >>>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > > _______________________________________________
> > > Sidefx-houdini-list mailing list
> > > Sidefx-houdini-list at sidefx.com
> > > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > _______________________________________________
> > Sidefx-houdini-list mailing list
> > Sidefx-houdini-list at sidefx.com
> > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> >
> _______________________________________________
> Sidefx-houdini-list mailing list
> Sidefx-houdini-list at sidefx.com
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>



More information about the Sidefx-houdini-list mailing list