Andy, the O(N) thing got me thinking and realized that instead of running the attrib wrangle in detail mode, which uses only a single thread, it'd be possible to generate say 4 points and, in a point wrangle, let each of these points process 1/4th of the array, thus effectively running the same logic on 4 threads! Another attrib wrangle is then needed in post to sum up the result from each point. Well, in all honesty I don't think there'll ever be a use case for it :)

Yes absolutely! Definitely a good approach if you're after performance. It'd be interesting to do a comparison between that and an Attribute Promote SOP to see which is faster. I suspect (i.e. hope) the Attribute Promote SOP is multithreaded, so probably no major advantage.

BTW, you don't even need to generate the 4 points as you've got the Run Over "Numbers" mode which will do the same. You can save the result into a detail array attribute and analyse it in a Detail Wrangle. Just takes a bit more management to set it up.



On 07/03/2017 01:35, Christopher Crouzet wrote:
Wow, I shouldn't have wrote that late last night, I completely mixed things up in my previous post, sorry!

I'll try again! With a ramp, you have the source (input) values on the X axis, and the target (output) values on the Y axis. If either your source or target values aren't in the range [0, 1], you can remap them using a simple float parameter (to use as a simple multiplier if your desired lower bound is 0), or a float2 parameter to precisely control the desired range.

It seems to be a standard practice in Houdini since they use it for some built-in nodes, such as the Pyro SHOP.

Andy, the O(N) thing got me thinking and realized that instead of running the attrib wrangle in detail mode, which uses only a single thread, it'd be possible to generate say 4 points and, in a point wrangle, let each of these points process 1/4th of the array, thus effectively running the same logic on 4 threads! Another attrib wrangle is then needed in post to sum up the result from each point. Well, in all honesty I don't think there'll ever be a use case for it :)


On 7 March 2017 at 01:14, Olivier Jeannel <[email protected] <mailto:[email protected]>> wrote:

    Ok we agree.


    On Monday, March 6, 2017, Jonathan Moore
    <[email protected] <mailto:[email protected]>> wrote:

        As far as I understood it Oliver, the spline version of the
        Houdini Ramp only operates in the zero to one range. You
        re-fit the values pre/post/ or both to suite your needs.

        I get that this doesn’t match the UX of FCurves in XSI, but
        I’ve always understood Ramp’s in Houdini to be more of a lower
        level discrete element in visual programing terms.

        *From:*[email protected]
        [mailto:[email protected]] *On Behalf Of
        *Olivier Jeannel
        *Sent:* 06 March 2017 17:31
        *To:* Official Softimage Users Mailing List.
        https://groups.google.com/forum/#!forum/xsi_list
        <https://groups.google.com/forum/#%21forum/xsi_list>
        <[email protected]>
        *Subject:* Re: houdini question (and where to ask)

        Not sure I get it Christopher (not in front of H)

        Does your trick actualy change the graph visualy ?

        In short, can I see the negative x & y values ?

        On Monday, March 6, 2017, Christopher Crouzet
        <[email protected]> wrote:

            Indeed, which is why I mentioned the “detail” mode which
            brings you back to O(N). Not saying that one approach is
            better than the other though, only that it is possible.

            On 7 March 2017 at 00:12, Andy Nicholas
            <[email protected]> wrote:

                Yep it is possible, but you wouldn't want to do it
                because each calculation of the maximum value would be
                running across N points to calculate that. That'd make
                it an O(N^2) operation, albeit spread over multiple
                threads.

                It might seem like a pain to have to do this in
                advance using an Attribute Promote, but by doing so,
                it's actually forcing you to work in a more efficient
                way. Go with it ;)



                On 06/03/2017 16:32, Christopher Crouzet wrote:

                    It /is/ possible to retrieve the maximum value in
                    a VOP since nothing stops anyone from manually
                    iterating through all the points of the geometry.
                    This kind of operation might be more suited in
                    “detail” mode though.

                    Also, having the ramp normalized to the [0, 1]
                    range in both the X and Y axis is usually
                    “workarounded” by adding a float parameter for the
                    amplitude (Y axis) that is used as a global
                    multiplier (making later tweakings convenient!),
                    and a float2 parameter for the target range (X
                    axis) that is then remapped using `fit("my_ramp",
                    0.0, 1.0, range_min, range_max)` (which is also
                    convenient for later tweakings!).

                    Now, if you really want to have an actual FCurve,
                    then just create a simple float parameter, add all
                    the keys however you want, then query it in using
                    `chf("my_param", the_time_in_seconds)` in VEX/VOP,
                    or using the equivalent expression.

                    On 6 March 2017 at 23:29, Jonathan Moore
                    <[email protected]> wrote:

                        Fabricio ,

                        The Attribute Promote help page has approx 15
                        examples you can load. Hopefully you might
                        find something within the examples to inspires
                        a solution.

                        *From:*[email protected]
                        [mailto:[email protected]]
                        *On Behalf Of *Olivier Jeannel
                        *Sent:* 06 March 2017 15:56
                        *To:* Official Softimage Users Mailing List.
                        https://groups.google.com/forum/#!forum/xsi_list
                        <https://groups.google.com/forum/#%21forum/xsi_list>
                        <[email protected]>


                        *Subject:* Re: houdini question (and where to ask)

                        You can't get the "get maximum in set" when
                        inside a vop.

                        But, you get those options with the promote
                        attribute sop.


                        On Monday, March 6, 2017, Oscar Juarez
                        <[email protected]> wrote:

                            I would like to be proven wrong, but that
                            would be the way, I mean in your second
                            pointvop you don't need to add another
                            noise, your noise is already saved in an
                            attribute, when you promote just check off
                            delete original and you can access the
                            same noise. Also noises have specific
                            output ranges, they come in the
                            documentation, so you can always add a fit
                            node to change your range to what you
                            need, in the geometry spreadsheet you can
                            also sort by value so you can see max and
                            min.

                            If you press X with your mouse over the
                            noise output it will add a visualization
                            node, you can visualize on the viewport or
                            in the geometry spreadsheet the values. I
                            know its not the same but as far as I know
                            their is no way to do the same as the get
                            maximum in set node in a vopsop context.

                            On Mon, Mar 6, 2017 at 3:57 PM, Fabricio
                            Chamon <[email protected]> wrote:

                                thanks everyone. The ramp parameter
                                kind of works but as you say, is not
                                that user friendly and does not show
                                the points below 0. (that's ok, but I
                                wonder if it is possible to write a
                                custom widget in houdini)

                                anyway, the thing I could not get
                                right just yet is that sort of "get
                                maximum in set" thing. Sorry for using
                                ICE language, I'm trying to be open
                                minded here, so please tell me if
                                that`s not the correct mindset.

                                so on this graph:

                                Imagem inline 1

                                ...how could I get the maximum value
                                of the output noise node and compare
                                to a single point output of the same node?

                                From what I can tell, I'd have to:

                                1- create this pointvop node with a
                                turbnoise, then store the output noise
                                into an attribute (via bindexport?)

                                2- up one level -> drop an attrib
                                promote (detail), set to maximum

                                3- drop another pointvop node with
                                another noise node inside (same
                                parameters) and compare the result
                                noise to that found on the atrib
                                promote node??

                                I'm 99% sure this is totally
                                wrong...how would you go about that
                                single task specifically?

                                and finally, thanks for the
                                suggestions on houdini forums and
                                discord. will try both (although I
                                pretty much like this list =) )

                                2017-03-06 15:17 GMT+01:00 gareth bell
                                <[email protected]>:

                                    yeah - the lack of handles is
                                    frustrating

                                    
------------------------------------------------------------------------

                                    
*From:*[email protected]<[email protected]>
                                    on behalf of Olivier Jeannel
                                    <[email protected]>
                                    *Sent:* 06 March 2017 14:05:17
                                    *To:* Official Softimage Users
                                    Mailing List.
                                    
https://groups.google.com/forum/#!forum/xsi_list
                                    
<https://groups.google.com/forum/#%21forum/xsi_list>
                                    *Subject:* Re: houdini question
                                    (and where to ask)

                                    yep but it has no handles

                                    and try to make négative values,
                                    it takes them but wont show on the
                                    curve as it has a 0,1 space.

                                    Unless i'm wrong (which i'd love
                                    to be)

                                    Le 6 mars 2017 14:36, "Olivier
                                    Jeannel" <[email protected]>
                                    a écrit :

                                        in vop, bind and bind export
                                        node will get an set datas.

                                        Ramp Parameters is sort of fcurve.

                                        It's a bit weak in terms of
                                        curve manipulation, but does
                                        the job.

                                        It has 2 modes rgb (ramp) and
                                        spline.

                                        If you use several ramps in
                                        the same vop, name them with
                                        different name or they might
                                        not export.

                                        Le 6 mars 2017 14:28,
                                        "Fabricio Chamon"
                                        <[email protected]> a écrit :

                                            ..sorry, hit send too soon.

                                            Question #1: are there any
                                            equivalents to ICE "get
                                            ... in set"? or or do I
                                            have to iterate and store
                                            values for later
                                            comparision? In other
                                            words: what is the best or
                                            recommended workflow to
                                            compare single point data
                                            with global point data?

                                            Question #2: any nodes
                                            that resemble a fCurve
                                            node, like we have in ICE?
                                            if not, what is the
                                            alternative?

                                            and finally, I can see
                                            this list is becoming more
                                            and more houdini-esque
                                            than ever..but, what is
                                            the best place to ask
                                            beginner questions like
                                            the above? houdini foruns,
                                            houdini list, odForce...

                                            thanks!

                                            2017-03-06 14:23 GMT+01:00
                                            Fabricio Chamon
                                            <[email protected]>:

                                                Hi, I'm slowly getting
                                                into houdini and this
                                                is my first attempt to
                                                port a really simple
                                                ridged fractal
                                                deformer made in ICE
                                                to houdini (using
                                                pointvop).

                                                Question #1: are there
                                                any equivalents to ICE
                                                "get ... in set"? or
                                                or do I have to
                                                iterate and store
                                                values for later
                                                comparision? In other
                                                words: what is the
                                                best or recommended
                                                workflow to compare
                                                single point data with


                                            ------
                                            Softimage Mailing List.
                                            To unsubscribe, send a
                                            mail to
                                            
[email protected]
                                            with "unsubscribe" in the
                                            subject, and reply to confirm.


                                    ------
                                    Softimage Mailing List.
                                    To unsubscribe, send a mail to
                                    [email protected]
                                    with "unsubscribe" in the subject,
                                    and reply to confirm.


                                ------
                                Softimage Mailing List.
                                To unsubscribe, send a mail to
                                [email protected]
                                with "unsubscribe" in the subject, and
                                reply to confirm.


                        ------
                        Softimage Mailing List.
                        To unsubscribe, send a mail to
                        [email protected] with
                        "unsubscribe" in the subject, and reply to
                        confirm.




--
                    Christopher Crouzet
                    /https://christophercrouzet.com/

                    ------

                    Softimage Mailing List.

                    To unsubscribe, send a mail [email protected] 
 with "unsubscribe" in the subject, and reply to confirm.

                ------ Softimage Mailing List. To unsubscribe, send a
                mail to [email protected] with
                "unsubscribe" in the subject, and reply to confirm.

--
            Christopher Crouzet /https://christophercrouzet.com/

    ------ Softimage Mailing List. To unsubscribe, send a mail to
    [email protected]
    <mailto:[email protected]> with
"unsubscribe" in the subject, and reply to confirm.
--
Christopher Crouzet /https://christophercrouzet.com/

------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with 
"unsubscribe" in the subject, and reply to confirm.
------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with 
"unsubscribe" in the subject, and reply to confirm.

Reply via email to