Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

253 Excellent

About petz

  • Rank

Recent Profile Visitors

8,253 profile views
  1. well, there are many different ways of doing it. the crude one is to just recursively sample the curve and search for the point with the smallest deviation angle. this should what works for any case. the more elegant method however, would be to use a polynomial and solve it for the position on the curve at which the angle deviation is 0. hth. petz curve_find_point.hipnc
  2. please take a look at the attached file. it´s an example how you could create bezier curves with arbitrary degree and another one relying on beziers in hermite form since you wrote about blending curves... petz curves_vex.hipnc
  3. it wouldn´t be too hard to implement but if you need the actual distance along a mesh it´s most probably the geodesic distance what you want. the advantage of using biharmonic distance is that it´s rather smooth but not necessarily exact ... petz
  4. i don´t think this would be possible to implement as long as vex doesn´t support arbitrary sized matrices. on the other hand, it wouldn´t be much of a problem in python/numpy for which several implementations already exist. performance might be an issue, though ...
  5. i don´t know this tool but from watching the video i guess that it uses a non-rigid icp algorithm to match one geometry to another. there is no "out of the box solution" you can use in houdini but it isn´t too hard to wire together something that works in a similar way. please take a look at the attached file. it uses some pre-definded points on both geometries to guide the general alignment and deformation. if you want this to work without any user input it might become more tricky but should also be doable ... hth. petz non_rigid_icp.hipnc
  6. well, it is possible to get the curvature, or more precisely the mean curvature with vdbAnalysis but not the curvature-direction. even though you could get a somewhat curvature-related vectorfield, if you calculate the curvature first and then the gradient of it (which is possible with vdbAnalysis) it wouldn´t be the same. principal curvature directions are quite different and sometimes they are useful since they have a few special properties.
  7. no, it doesn`t ...
  8. the "zigzags" in the trails are the result of vectors pointing into opposite directions and this is due the way how they are calculated. when you calculate the eigenvectors of the matrix there is no easy way to determine in which direction (+ or -) the vector is pointing because both directions are true. an easy way to handle this problem is to check and reverse neighbouring vectors recursively, starting from one point, or write your own streamline algorithm in vex which ignores opposite vectors based on a given threshold. either way, this is not be a perfect solution but depending on your needs it might be enough. if you want a vectorfield on the mesh which is as smooth as possible, then that´s a completely different story and it becomes much more complicated... in regards to your other question, if you need to fully understand all the things in the file, i would say no. it´s nice and sometimes helpful if you do but this is something you´ll barely need for day to day work. but that is just a personal opinion based on personal experience and not an advice by any means. hth. petz
  9. thanks eetu but thats pure coincidence. a few years back i had to deal with this kind of stuff day in, day out for a project. so, even if i can´t look at flowlines, fieldlines, streamlines or whatsoever anymore, it seems to be still useful sometimes ...
  10. i´m with szymon. using numpy might be a very good option especially sice you are using python anyways. put all values into an array and save it to disk as binary data. should be fairly fast and easy to read back into python for further processing. that sounds interesting! what are you using machine learning for? training samples for faster solve, building meta-models, setting up a rsm model, ...?
  11. untested but should work: // get 1-ring around points UT_ValArray<GA_OffsetArray> neighbourArray; gdp->buildRingZeroPoints(neighbourArray, NULL); // build HedgeInterface GEO_HedgeInterface hedgeInterface(gdp); // get neighbours of point 0 GA_OffsetArray neighbours = neighbourArray[0]; // init prims GEO_Primitive *prim1, *prim2; // iterate over neighbouring points for(int i = 0; i < neighbours.size(); i++) { // get half-edges between point 0 and neighbour GEO_Hedge hedge = hedgeInterface.findHedgeWithEndpoints(0, neighbours[i]); GEO_Hedge hedgeNext = hedgeInterface.nextEquivalentHedge(hedge); // get prims prim1 = hedgeInterface.hedgePrimitive(hedge); prim2 = hedgeInterface.hedgePrimitive(hedgeNext); } // clean up if(hedgeInterface.haveHedgeTopology()) hedgeInterface.destroyHedgeTopologyLinks(); hth. petz
  12. thats one way: width.hipnc
  13. take a look at the attached file. its using vex to compute the oriented bounding box around prims. hth. petz obb.hipnc
  14. to get neighbouring points you could use GU_Detail::BuildRingZeroPoints() and to get all prims sharing an edge you might want to use GEO_HedgeInterface. it could also be used to get all connected points ... hth. petz
  15. these are potential field lines drawn around positive and nevative charges. its pretty simple to implement in vex. no need for dops or pops. please take a look at the attached file and play with the settings. field_lines.hipnc