Jump to content


Popular Content

Showing most liked content on 01/06/2018 in all areas

  1. 1 point
    We just released a 4-part particle series I did for LearnSquared: https://www.learnsquared.com/courses/houdini-particles We cover everything from building our own particle solver from scratch, using the built-in Houdini particle POPS, showing how to choreograph and art-direct particle motion, and working through various rendering and instancing strategies.
  2. 1 point
    I had chance to test new Flip NarrowBand workflow and wanted to share resaults with community
  3. 1 point
    hey jake! well, what you're calculating is not curvature but some curvature-indicating value. this, of course, makes sense since you're relying on normals which are per definition closely intertwined with curvature. but instead of building the covariance matrix you could just do pretty much the same by averaging the normalized normals from surrounding points and calculate the difference to the normal of the current point. however, from the mathematical and geometrical side of things neither this, nor your method has much to do with measuring curvature and the result is most probably off by a large number. (in your case, for instance, it's a min. and max. value of 0.000332 / 0.7385 compared to mean curvature of -107.395 / 204.042). if you want to compute curvature by using eigenvalues you need to compute, for example, the shape operator by computing the jacobian of N, which in this case results in the hessian and finally project it onto the surface. building the covariance matrix of normals doesn't make much sense if you're talking about accurate curvature values. building the shape operator is one of the methods described at houdiniGubbins and no, it doesn't need to be a triangle mesh. fitting a polynomial and computing curvature analytically also doesn't need triangles. in fact it doesn't need any mesh at all and works even on a pointcloud. the same is true if you're computing the curvature tensor based on a simple diffusion distance and search for k1 and k2 in the least squares sense. the most accurate results, however, are possible on a triangular mesh. you're right that curvature computation on meshes is generally problematic but the reason is not because of irregular distances in the one-ring. the main problem is that second order derivatives of piecewise continuous functions are pretty much everywhere null and hence curvature is constant on a triangle. using the edgeTransportSop does not solve this problem. if we are talking about the smooth case, then your idea might makes some sense but on a smooth surface you simply wouldn't need it because here it's easy to compute derivatives. beside that, you would need geodesic distances and not the shortest path distances which the edgeTransportSop calculates... hth. petz
  4. 1 point
    Hey everyone! Here's a demo of some point cloud tools I created to calculate concave and convex curvature as well as gradient and curl direction, also sharpening. Forgot to mention in the demo that the curvature calculation is a great way to do differential growth by advection along normal * curve * noise * parm. Also, the curl calculation can be used to make grass patches and groom fur by orienting curves along the direction to add swirly variance. There's a lot of ways these tools can be handy, interested to see what you all come up with! Let me know if you have any questions, enjoy! curveGradientCurlSharpen_v002.hipnc
  5. 1 point
    Someone at work dared me to try and apply this to solid shapes, here it is. It's super unstable, even the tiniest of changes will make it explode, and the resultant shapes don't have the elegance of the curves. Still cool though. surface_grow_pops_3d.hipnc