[Sidefx-houdini-list] pcfilter point number

Olex P hoknamahn at gmail.com
Fri Aug 5 08:06:08 EDT 2011


Okay,
Simple grid, 5M points scattered, VEX 5.78 sec, C++ 8.18 sec. VEX is
1.42 times faster. Not a big deal especially if a number of points
even smaller than that but still VEX is faster :)

On Fri, Aug 5, 2011 at 12:42 PM, Olex P <hoknamahn at gmail.com> wrote:
> Hi Nick,
>
> It's not 1 node, it's several nodes (don't forget about AttribCreate
> with $PT inside of it. Expressions are slow). I guess AttribTransfer
> also creates some accelerator structures similar to what we have in
> point clouds, so this stage can take the same amount of time. I'll do
> a test to check what is faster and post results here.
> About VEX vs C++. Usually VEX is faster as most of the C++ operators
> are not multithreaded. One disadvantage of VEX is that it consumes
> more RAM.
>
>
> On Fri, Aug 5, 2011 at 12:07 PM, Nick Zutphen <nvanzutphen at live.com> wrote:
>> Hi Oleg,
>>
>> I understand your reasoning, but what about setting the attribute transfer to 'max sample count' of 1 and keeping in mind that it is a native node which means its based on C++. I always figured that 'native' nodes are supposed to be faster than their equivalent in Vex, or am I unforgivably wrong?
>>
>> Cheers,
>> Nick van Zutphen
>> ----
>> http://www.nickvanzutphen.com
>>
>> On Aug 5, 2011, at 12:15 PM, Olex P wrote:
>>
>>> Hi Nick,
>>>
>>> That point cloud solution is simplest ever and most efficient (as it
>>> samples just 1 point). And a setup is just one VEX (or VOP if you
>>> want) operator. I would upload a hip file but I don't know any
>>> pastebin like service that supports bin files.
>>>
>>> On Fri, Aug 5, 2011 at 10:56 AM, Nick Zutphen <nvanzutphen at live.com> wrote:
>>>> Hi Oleg,
>>>>
>>>> Thank you your your reply.
>>>> I guess you're describing a similar approach to the one I mentioned in my first message.
>>>>
>>>> Initially I found it a rather complicated solution which I tend to avoid, especially in VOP's, that's why I tried to use pcfilter. It turned out that  'Attribute Transfer' works perfectly in this case.
>>>>
>>>> Cheers!
>>>> Nick van Zutphen
>>>>
>>>> ----
>>>> http://www.nickvanzutphen.com
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Aug 4, 2011, at 11:35 AM, Olex P wrote:
>>>>
>>>>> Hi guys,
>>>>>
>>>>> Hi guys, the first entry in a point cloud lookup is always a nearest
>>>>> point. A following snipet of code will give you the number of nearest
>>>>> point and a distance to it
>>>>>
>>>>> [code]
>>>>> sop
>>>>> pcnearest(string       pcfile  = "";
>>>>>                float        radius = 1.0f;
>>>>>
>>>>>                export int   num = -1;
>>>>>                export float dist  = -1.0f)
>>>>> {
>>>>>    int handle = pcopen(pcfile, "P", P, radius, 1);
>>>>>
>>>>>    if(pciterate(handle))
>>>>>    {
>>>>>        pcimport(handle, "point.number",   num);
>>>>>        pcimport(handle, "point.distance", dist);
>>>>>    }
>>>>>
>>>>>    pcclose(handle);
>>>>> }
>>>>> [/code]
>>>>>
>>>>> On Wed, Aug 3, 2011 at 9:14 PM, Alvaro Castaneda <varomix at gmail.com> wrote:
>>>>>> I think you're trying to do something more complex than it need to be
>>>>>> we get sometimes caught in that, but always the best thing is a simple
>>>>>> solution
>>>>>> simple to develop and simple to use.
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>>
>>>>>>
>>>>>> 
>>>>>>
>>>>>>  *.:varomix:.*
>>>>>> MIX Studio
>>>>>> 3D Artist/Generalist TD
>>>>>> www.varomix.net
>>>>>>  My profiles: [image: LinkedIn] <http://www.linkedin.com/in/varomix> [image:
>>>>>> Twitter] <http://twitter.com/varomix> [image:
>>>>>> Facebook]<http://www.facebook.com/varomix>
>>>>>> On Wed, Aug 3, 2011 at 2:00 PM, Nick van Zutphen <nvanzutphen at live.com>wrote:
>>>>>>
>>>>>>> @ Andrew
>>>>>>> Ghehe, well with all due respect but your solution, compared to what I was
>>>>>>> doing, is almost ridiculous due to its simplicity. But I like it! :-). It
>>>>>>> works perfectly. Thanks a lot.
>>>>>>>
>>>>>>> @Mike
>>>>>>> I have to keep this in mind because I'm pretty sure I'll run in to this one
>>>>>>> again. Pcfilter works perfect if you would like to get position of 1 or
>>>>>>> especially an average of multiple points, to bad it doesn't do the trick in
>>>>>>> this case. Thank you for your input, it's much appreciated. Though Andrews
>>>>>>> solution is, in this particular case, the way to go.
>>>>>>>
>>>>>>> Case closed, (with that paper file and red 'case closed' stamp on it ;-)
>>>>>>> Nick van Zutphen
>>>>>>> ------------------------------**--------------------
>>>>>>> From: "Andrew Lyons" <tstexture at gmail.com>
>>>>>>> Sent: Wednesday, August 03, 2011 9:12 PM
>>>>>>>
>>>>>>> To: <sidefx-houdini-list at sidefx.**com <sidefx-houdini-list at sidefx.com>>
>>>>>>> Subject: Re: [Sidefx-houdini-list] pcfilter point number
>>>>>>>
>>>>>>>  Not totally clear on the problem - but I've always used the attribTransfer
>>>>>>>> SOP to get near points:
>>>>>>>>
>>>>>>>> 1./ Create custom point "ptnum" int attr. Store $PT in there.
>>>>>>>> 2./ attrTransfer ptnum to new geometry. (Set "Max Sample Count" set to 2
>>>>>>>> if
>>>>>>>> feeding same SOP into both inputs. Set to 1 otherwise.)
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>>
>>>>>>>> On 3 August 2011 11:32, <mdunkley at gmail.com> wrote:
>>>>>>>>
>>>>>>>>  Hey Nick -
>>>>>>>>>
>>>>>>>>> I've had some fiddly problems using pcfilter for point numbers in the
>>>>>>>>> past.
>>>>>>>>> I was attempting to create a float point number variable called ptnum and
>>>>>>>>> just look it up with no interpolation (ie 1 point lookup) from pcfilter,
>>>>>>>>> but
>>>>>>>>> even then i would often get incorrect values - I think the filter is
>>>>>>>>> doing
>>>>>>>>> some kind of filtering no matter what. Sometimes the ptnum value it
>>>>>>>>> returned
>>>>>>>>> would just be a number off, as if it was getting ceil'ed or floor'ed,
>>>>>>>>> some
>>>>>>>>> times it came back with a floating point component, so clearly there was
>>>>>>>>> some sort of interpolation happening.
>>>>>>>>>
>>>>>>>>> I can say for sure that the other method you mentioned *does* work.
>>>>>>>>> Pciterate doesn't really do anything on its own - you need it to feed a
>>>>>>>>> while loop (both ouside the loop, and then again on the inside). Within
>>>>>>>>> the
>>>>>>>>> while, you can then use pcimport with "point.number" / "point.distance"
>>>>>>>>> to
>>>>>>>>> pull all that info out. My impression of pcfilter is that its just a
>>>>>>>>> quick
>>>>>>>>> and dirty one-stop-shop way to slew values between points, not to
>>>>>>>>> intended
>>>>>>>>> to work with the other point cloud functions - if you need to do anything
>>>>>>>>> very specific you'll have to roll your own with pciterate and a while
>>>>>>>>> loop.
>>>>>>>>>
>>>>>>>>> If you haven't seen it, check out peter quint's point cloud videos on
>>>>>>>>> vimeo
>>>>>>>>> - the second one talks very specifically about some of the issues related
>>>>>>>>> to
>>>>>>>>> making your own:
>>>>>>>>> http://vimeo.com/9108284
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On , Nick van Zutphen <nvanzutphen at live.com> wrote:
>>>>>>>>>
>>>>>>>>>  I like to stay close to 'SESI' guidelines, or like the default tools
>>>>>>>>>> work
>>>>>>>>>> (something I inherited from my intenship). I guess giving a position
>>>>>>>>>> vector,
>>>>>>>>>> which can also be set by using a handle is pretty close to that.
>>>>>>>>>> Obviously
>>>>>>>>>> using a sphere would work, but it's not very neat, is it?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Cheers,
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Nick van Zutphen
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  ------------------------------****--------------------
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  From: "Alvaro Castaneda" varomix at gmail.com>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Sent: Wednesday, August 03, 2011 6:21 PM
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  To: sidefx-houdini-list at sidefx.com****>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Subject: Re: [Sidefx-houdini-list] pcfilter point number
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  This might be a dumb idea, but why don't you
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  ask the user to place a sphere for initial position
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  use that to grab any points inside and start from there?
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  I can use that :)
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  *.:varomix:.*
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  MIX Studio
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  3D Artist/Generalist TD
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  www.varomix.net
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  My profiles: [image: LinkedIn] http://www.linkedin.com/in/****varomix<http://www.linkedin.com/in/**varomix>
>>>>>>>>> <http://www.linkedin.**com/in/varomix<http://www.linkedin.com/in/varomix>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> [image:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Twitter] http://twitter.com/varomix> [image:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Facebook]http://www.facebook.****com/varomix<http://www.**
>>>>>>>>> facebook.com/varomix <http://www.facebook.com/varomix>>
>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  On Wed, Aug 3, 2011 at 10:06 AM, Nick van Zutphen nvanzutphen at live.com
>>>>>>>>>
>>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Hi!
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  I finally figured out how this maillist thing works :-), at least I hope
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  so. It feels a bit like 'you're used to Internet, and you have to use
>>>>>>>>> 'the
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  wire', telex or how ever it's called in English' ;-).
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  I'm working on a tool which operates on scattered points and it needs a
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  starting point. I would like to give the user the ability to specify a
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  position vector and the tool will figure out what the closest point is.
>>>>>>>>>
>>>>>>>>>> This
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  becomes need when you would like to start in a certain area and the
>>>>>>>>> points
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  might change due to a different seed or what so ever.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  I think of a pointcloud method, however I'm interested in the closest
>>>>>>>>>
>>>>>>>>>> point
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  pointnumber. I know pciterate has the option point.number but that
>>>>>>>>> doesn't
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  seem to work on pcfilter and ptnum doesn't give any luck either. I would
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  like to use pcfilter since it's about a single point and iterating over
>>>>>>>>> 1
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  point doesn't seem to make much sense.
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  So my question is: 'Is there a way to get the point number when using
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  pcfilter. If not, what's the alternative?'
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Cheers!
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Nick van Zutphen
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  ______________________________****_________________
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Sidefx-houdini-list mailing list
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>  Sidefx-houdini-list at sidefx.com
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://lists.sidefx.com:443/****mailman/listinfo/sidefx-****
>>>>>>>>> houdini-list<https://lists.sidefx.com:443/**mailman/listinfo/sidefx-**houdini-list>
>>>>>>>>> <https://lists.**sidefx.com:443/mailman/**listinfo/sidefx-houdini-list<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<https://lists.sidefx.com:443/**mailman/listinfo/sidefx-**houdini-list>
>>>>>>>>> <https://lists.**sidefx.com:443/mailman/**listinfo/sidefx-houdini-list<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<https://lists.sidefx.com:443/**mailman/listinfo/sidefx-**houdini-list>
>>>>>>>>> <https://lists.**sidefx.com:443/mailman/**listinfo/sidefx-houdini-list<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<https://lists.sidefx.com:443/**mailman/listinfo/sidefx-**houdini-list>
>>>>>>>>> <https://lists.**sidefx.com:443/mailman/**listinfo/sidefx-houdini-list<https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> ==============================**=========
>>>>>>>> Andrew D Lyons | Digital Artist | http://www.tstex.com
>>>>>>>> ==============================**=========
>>>>>>>> ______________________________**_________________
>>>>>>>> Sidefx-houdini-list mailing list
>>>>>>>> Sidefx-houdini-list at sidefx.com
>>>>>>>> https://lists.sidefx.com:443/**mailman/listinfo/sidefx-**houdini-list<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<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