Umang Raj

Umang_Raj

About Me

EXPERTISE
Hobbyist

Connect

LOCATION
Khagaria, India

Houdini Skills

Availability

Not Specified

My Tutorials

obj-image Intermediate
Solving Pyro and RBD/Vellum Together, Sequentially and Simultaneously
obj-image Intermediate
How to create Custom Solvers for APEX
obj-image Beginner
How to use the Apex Motion Mixer
obj-image Beginner
How to use OpenCL in Copernicus Introduction

Recent Forum Posts

HDK Multithreading over point groups(one thread - one group) July 10, 2026, 8:56 a.m.

maxpayne
Hi johnmather. Thank you for the link. I've actually seen this but I can't figure out how to build 'Range' out of point groups or it can be Array or a list of Ranges ?

Thank you
you don't have to build a splitted range for the function john sir showed to you, as much as i know, it is meant to run on each pages parallely, pages as i know are the way houdini stores the attribute data, they are contiguos blocks of data and have a fixed size (1024 elements, you can see it in ga_types header), and the page handle gives you direct access to the data from memory (read the attributes 101 in docs), and it will be the fastest way to read/write attribute.

here is the test code i tried-
GU_Detail* gdp = parms.gdh().gdpNC();
GA_Range pointRange = gdp->getPointRange();

GAparallelForEachPage(pointRange, true, [&](GA_PageIterator it){
    std::cerr << "page off-" << it.getFirstOffsetInPage() << std::endl;
});
and it gives this result on console with 10000 points-
page off-0
page off-1024
page off-2048
page off-3072
page off-4096
page off-5120
page off-page off-61447168

(some lines overlap because it is parallel)

HDK (find neighbours) optimization June 28, 2026, 11:43 a.m.

i haven't tried doing this, but im sure you have to run the init function first, to build the bvh representation, and then as you said there is no good documentation but, i think the first bvh stack input is for all the bounding boxes the function pops, i don't think you have to put anything in there, if you had, it would be a const parameter.
the output queue is just an array of the of all of the found leaf boxes in nearest first order (since it is a "ordered stack") i think, since you can also see the same parameters from the base class of pointbvh, after getting the output queue, you should get the stack entrys, and in the stack entry there is a myNode property, i think it is the index, there is also the pointOffset function the base class of point bvh (BVHBase), i think you use the index in there to get the point offset.
i haven't tried this as i said, im making guesses from documentation, you should try and see if it works.

Houdini 22 Sneak Peek June 27, 2026, 10:52 a.m.

the tab menu search works so fast that I never need to worry about quick access to nodes with that, but you should register the suggestion as a rfe