oh that's nice, thanks for the link and hip file guys. 2017-03-15 12:59 GMT+01:00 Andy Nicholas <a...@andynicholas.com>:
> > The thing I don’t quite understand is why Detail Mode always has to run > on a single thread > > There's a lot of complexity involved in threading. The way to better > understand is to ask a few questions. If detail ran multithreaded, how > should houdini split the threads? How would Houdini prevent you overwriting > data that you might also need to read from? > > For example, imagine this VEX script running in detail mode: > > //Copy position from (n-1)th point to nth point > for(int i=1;i<num_pts;i++) > { > vector pos = point(0,"P",i-1); > setpointattrib(geoself(),"P",i,pos); > } > > Lets say you have 100 points and Houdini tried to split that loop by > placing it into 10 threads. If the first thread finished before the second > thread, and the second thread finished before the third, then you'd get the > same correct result as if it wasn't threaded. But... if the order of > finishing was changed at all, then you'll get a very different result. > > The problem is that there's no guaranteed order, so the result would > change randomly depending on the machine load. > > Houdini can't be expected to understand what you're doing inside a loop to > know if it's compatible with multithreading, which is why it gives you the > Run Over Numbers mode instead. That way you have complete control over the > threading optimisation. I'd recommend you try it out. It'll give you a good > understanding on the issues involved with trying to multi thread code. > > If you want better insight into threading issues and specifically some of > the challenges Houdini has to deal with in letting you use VEX in a user > friendly way, I'd highly recommend having a read of this: > https://www.amazon.co.uk/gp/search?index=books&linkCode= > qs&keywords=9781482243574 > > Cheers, > Andy > > > > On 15/03/2017 11:00, Jonathan Moore wrote: > > It’s definitely far more complicated than it should be. Especially in > comparison to ICE. > > > > The thing I don’t quite understand is why Detail Mode always has to run on > a single thread, especially for common stuff like Arrays. If I could get a > handle on Numbers Mode I’d be happier but it feels like another unnecessary > layer of complexity. > > > > *From:* softimage-boun...@listproc.autodesk.com [mailto:softimage-bounces@ > listproc.autodesk.com <softimage-boun...@listproc.autodesk.com>] *On > Behalf Of *Olivier Jeannel > *Sent:* 15 March 2017 10:45 > *To:* Official Softimage Users Mailing List. https://groups.google.com/ > forum/#!forum/xsi_list <softimage@listproc.autodesk.com> > <softimage@listproc.autodesk.com> > *Subject:* Re: houdini question (and where to ask) > > > > This is terrible when you think of the ice logic that would be a no > brainer. > > I'm too having some issue with overal sorting stuff. I wish there was more > vop vex tool to do that kind of operation. > > > > > > On Wednesday, March 15, 2017, Jonathan Moore <jonathan.moo...@gmail.com> > wrote: > > Nice find Oliver. > > > > I managed to decipher what was going on in the speedy GIF (wish people > would share videos for this kind of stuff) and the technique does indeed > work. Here’s the HIP (Indie) for anybody that wants to check it out. > > > > http://d.pr/f/FpMi.zip > > > > The downside is that the Wrangles runs in Detail Mode so it’s single > threaded on those Wrangles, which slows the network down. I don’t know how > to set up the Wrangle in Numbers Mode, which breaks the job down for > multiple threads. If Andy Nicholas is still reading this thread (or anybody > else that understands Numbers Mode on Wrangles) I’d love to know how to get > this example to work that way. This example works fine because it’s only > processing 100,000 points. As the point count goes up it will get a lot > slower running in Details Mode. > > > > *From:* softimage-boun...@listproc.autodesk.com [mailto:softimage-bounces@ > listproc.autodesk.com] *On Behalf Of *Olivier Jeannel > *Sent:* 14 March 2017 19:45 > *To:* Official Softimage Users Mailing List. https://groups.google.com/ > forum/#!forum/xsi_list <softimage@listproc.autodesk.com> > *Subject:* Re: houdini question (and where to ask) > > > > Back to the Get MaximumInSet request, I found this (I haven't tested) : > > http://gifyu.com/image/SpJl > > > > > > 2017-03-07 13:20 GMT+01:00 Fabricio Chamon <xsiml...@gmail.com>: > > thanks for all the insights guys, much appreciated! > > > > 2017-03-07 11:41 GMT+01:00 Andy Nicholas <a...@andynicholas.com>: > > That's good to know, thanks :) > > > > On 07/03/2017 10:06, Christopher Crouzet wrote: > > I naively compared the AttribPromote with an AttribWrangle in detail mode, > and the results were much (much) faster with the AttribPromote, so I assume > it is multi-threaded and would be hard to beat with any sort of wrangle > trickery. > > I'm still stuck with H13 so I didn't know about the numbers mode, that's > neat! > > > > On 7 March 2017 at 16:43, Andy Nicholas <a...@andynicholas.com> wrote: > > 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 <facialdel...@gmail.com> wrote: > > Ok we agree. > > > > On Monday, March 6, 2017, Jonathan Moore <jonathan.moo...@gmail.com> > 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:* softimage-boun...@listproc.autodesk.com [mailto:softimage-bounces@ > listproc.autodesk.com] *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 <softimage@listproc.autodesk.com> > *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 < > christopher.crou...@gmail.com> 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 <a...@andynicholas.com> 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 <jonathan.moo...@gmail.com> > 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:* softimage-boun...@listproc.autodesk.com [mailto:softimage-bounces@ > listproc.autodesk.com] *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 <softimage@listproc.autodesk.com> > > > *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 <tridi.animei...@gmail.com> 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 <xsiml...@gmail.com> > 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: > > > > [image: 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 <garethb...@outlook.com>: > > yeah - the lack of handles is frustrating > ------------------------------ > > *From:* softimage-boun...@listproc.autodesk.com < > softimage-boun...@listproc.autodesk.com> on behalf of Olivier Jeannel < > facialdel...@gmail.com> > *Sent:* 06 March 2017 14:05:17 > *To:* Official Softimage Users Mailing List. https://groups.google.com/ > forum/#!forum/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" <facialdel...@gmail.com> 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" <xsiml...@gmail.com> 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 <xsiml...@gmail.com>: > > 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 softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > > > -- > > Christopher Crouzet > *https://christophercrouzet.com* <https://christophercrouzet.com> > > > > > > ------ > > Softimage Mailing List. > > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with > "unsubscribe" in the subject, and reply to confirm. > > > > ------ Softimage Mailing List. To unsubscribe, send a mail to > softimage-requ...@listproc.autodesk.com with "unsubscribe" in the > subject, and reply to confirm. > > -- > > Christopher Crouzet *https://christophercrouzet.com* > <https://christophercrouzet.com> > > > > ------ Softimage Mailing List. To unsubscribe, send a mail to > softimage-requ...@listproc.autodesk.com with "unsubscribe" in the > subject, and reply to confirm. > > -- > > Christopher Crouzet *https://christophercrouzet.com* > <https://christophercrouzet.com> > > ------ > > Softimage Mailing List. > > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with > "unsubscribe" in the subject, and reply to confirm. > > ------ Softimage Mailing List. To unsubscribe, send a mail to > softimage-requ...@listproc.autodesk.com with "unsubscribe" in the > subject, and reply to confirm. > > -- > > Christopher Crouzet *https://christophercrouzet.com* > <https://christophercrouzet.com> > > ------ > > Softimage Mailing List. > > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with > "unsubscribe" in the subject, and reply to confirm. > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. > > > > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with > "unsubscribe" in the subject, and reply to confirm. > > > > ------ > Softimage Mailing List. > To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com > with "unsubscribe" in the subject, and reply to confirm. >
------ Softimage Mailing List. To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with "unsubscribe" in the subject, and reply to confirm.