[Sidefx-houdini-list] pcfilter point number

Nick Zutphen nvanzutphen at live.com
Fri Aug 5 08:19:30 EDT 2011


Hi Oleg,

Dedication, I like it :-). I find your results very interesting, a point for vex. 
I will keep this in mind, though for my current setup the attribute transfer and the attribute create node take 2.43 ms and 0.68 ms, in that respect I don't see the point of creating my own node.

Never the less thank you very much for your input.

Cheers,
Nick van Zutphen
----
http://www.nickvanzutphen.com

On Aug 5, 2011, at 2:06 PM, Olex P wrote:

> 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
>>> 
>> 
> _______________________________________________
> 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