Jump to content

Pazuzu

Members
  • Content count

    389
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    26

Posts posted by Pazuzu


  1. 3 hours ago, sekow said:

    thanks very much.

    out of curiosity, how do you come up with a scale of 75? Is that trial and error?

    Hi Sebastian!

    You're welcome!

    About the values, it mainly depends on what you want, for that example file that value works well. Its pretty high because the resultant gradient has very low magnitude. Remember that this file is just a template, a very rough template, so much to refine still! ;)

    Cheers!!

     


  2. 25 minutes ago, petz said:

    khan academy is great but i would rather not buy the book. i haven´t read it tbh, but it might not be too helpful since you are dealing with meshes in houdini and not with continuous functions. and just because you know what partial derivatives are, doesn´t mean you can use this information on meshes. a good example for this is curvature calculation. it´s clean and easy on contiuous surfaces and also on volumes but on meshes it´s another story. that´s the reason why you can find 20 different implementations for polygonal surfaces instead of just one elegantly expressed equation. so, instead of looking into calculus i would rather do some research on computer graphics, differential geometry, etc.
    generally speaking, you shouldn´t get too confused about all this since most of the time you´ll be fine with vector math and basic linear algebra (your two questions were rather the exception i would say)...

    petz

    Hi Petz!

    Nice answer about maths! I'm fan of your explanations and example files here on OdForce!

    But what about dissecting some siggraph papers for example (computer graphics research), I think one needs better understanding of deep maths to implement those algorithms, no? so again the question, what kind of maths or level of understanding do you need to dissect those computer graphics papers? I know some calculus, linear algebra, etc; But sometimes there is very deep math in those papers, like some Russian vodka of maths! :) So difficult to understand and implement.

    Thank you!

    • Like 1

  3. Ohh I really want to test the new surface tension model! I hope also some OpenCL news on this version (wranglers), and the most important thing, a robust subversion system for assets (GIT, :)).

    Cheers!

    • Like 1

  4. 1 hour ago, moneitor said:

    Hi all,

    I am wondering how can I measure the length of a constraint inside pops, I need to compare it against the original restlength attribute in order to change some parameters based on rules, is it possible through vex?

     

    Thank you very much.

    Because constraints are just polylines between points you can use the nearpoint o neighbors vex functions to iterate through the points you want to compare the distances (modo chambon :) ), or you can already use the arrays created internally by the grains solver (way faster). Then if you want to manually break a constraint, you can just set your weight attribute for the constraint.

    Hope that this helps!

    Saludos!

    • Like 1

  5. 9 hours ago, ciliath said:

    It is usually used to help solve partial differential equations... But for houdini, well I'm not too sure. In image processing they use It for edge detection, maybe It could find some same usage on fluids? Else, I quote from Wikipedia "For instance, the net rate at which a chemical dissolved in a fluid moves toward or away from some point is proportional to the Laplacian of the chemical concentration at that point; expressed symbolically, the resulting equation is the diffusion equation."

    So that's one usage you can find for It :)

     

     

    I usually use laplacian as a factor of perturbation in a smoke or FLIP sim, so you compute the laplacian (curvature has also a very close effect as with laplacian) of your surface field + a gradient to displace your particles for example. In the case of a smoke sim, I drive the divergence with the laplacian, so you can get nice bulbs without the use of vorticles or custom particles solutions to perturb the vel field.

    Hope that helps!

    Alejandro

    • Like 7

  6. 1 hour ago, musamaster said:

    Not only you want a .hip file to cut corners and have people do the work for you, you also post all the amazing collaborative work people do here and post it as R&D on your vimeo. 

     https://vimeo.com/amincgi/videos 

    This "Human" behavior is so normal nowadays!! Its a real shame, when I see posts like this, begin for a .hip file without pity. Sometimes I really miss the old community!

    • Like 5

  7. Hi!

     

    Just sample the handle inside your condition and all works!

    float radius = ch("radius");
    int npts = chi("numpts");
    
    int handle;
    if (@side > 0) {
        handle = pcopen(@OpInput2,"P",@P,radius,npts);
        v@Cd = pcimportbyidxv(handle,"Cd", 0);
        i@num = pcnumfound(handle);
    } else {
        handle = pcopen(@OpInput3,"P",@P,radius,npts);
        v@Cd = pcimportbyidxv(handle,"Cd", 0);
        i@num = pcnumfound(handle);
    }
    
    pcclose(handle);
    

  8. I would avoid slow for each loop whenever it's possible.

     

    Voronoi Pieces will generate name attribute. You can set group membership (with padding) with primitive wrangle like this:

    string group_name = sprintf("piece_%04d",opdigits(@name));
    setprimgroup(0, group_name, @primnum, 1, "set");
    
    s@name = group_name; //update name
    

    It's much faster. But if you don't have to, just use that attribute directly.

    Nice solution as always!!


  9. Hello All,

     

    I have a fracture that is generating pieces for groups. They are automatically named without zero padding. For frame numbers I know I can use $F4 for instance. Is there some similar mechanism for zero padding piece names?

     

    I would like my piece names to be something like this...

    piece_0001

    piece_0002

    etc...

     

    instead of...

    piece1

    piece2

    Hi!

     

    Not the most elegant way but works!

     

    Cheers!

    padding.hip


  10. Hi!

     

    Because the ocean spectrum node gives volume primitives with frequency and amplitude information to ocean evaluate, you can use a volume mix node (experiment with the blending modes) between two ocean spectrum nodes with different settings, then just connect the output to the ocean evaluate and voila!

     

    You can try also a texture compositing approach, its way more versatile, because you can tweak (distort, offset, invert, etc) also the uv coordinates for nice blending effects.

     

    Hope that helps!

     

    Cheers!

    • Like 1

  11. Phenomenal work Alejandro!

    Thank you!

     

    Here are some more tests to compare the new APIC method (swirly kernel) in the FLIP solver for H15 with the default one (splashy kernel) without hole filling approach; In those tests you can see a mask attribute as visualization, this attribute controls the weight or influence for the cohesion that controls the behavior, so red area is where full energy is apply to minimize the surface area leading to spherical shapes.

    https://en.wikipedia.org/wiki/Surface_tension

    Also a chocolate like sim to test the pipeline in viscous fluids and with a standard meshing stage.

     

    Hope you like it!

     

    Alejandro

    splashyKernel.avi

    SwirlyKernel.avi

    preview_v004.mov


  12. Very interesting thread.o 

     

    I'm a max and zillion plugins user since 20 years and new to Houdini. I'm trying to do viscous fluid tendril with nice blobby drops right now. I would really like to see one of Pazuzu scene file.

     

    I found that asset on Orbolt: https://www.orbolt.com/asset/vosiloB_::particle_surface_tension::1.0

    Could Pazuzu's technique be similar to that asset?

    Hi Strob!

     

    The Vosilob asset uses surface tension based on curvature decimation, so you compute the curvature and gradient of your surface field and use the two fields to push and pull in convex and concave zones, so the particle field tends to form drops and shape in nice forms. I'm using a different approach to this, I combine the curvature decimation technique with more additional custom forces and PBD based approach; So you got nice drops, tendrils, uniform distribution, and more volume conservation control; About a "fill hole" approach, I don't use a direct particle filling method mainly because of the volume gain, it woks in some scenarios but in some is not so practical, also all the particle field tends to grow and shape in a very thicker way; So for the hole filling problem I'm using a field based approach with some force, frame and pressure conditionals to control the volume gain and thickness, but this is still WIP, I'm just developing this at free time.

     

    I hope this helps!

     

    Alejandro

    microTension_v1.5.avi

    • Like 4

  13. Hola Arturo!

     

    La implementacion mas basica de tension superficial es calcular la curvatura de la superficie del fluido (en el caso de FLIP, el "surface field") para luego usarla como factor de desplazamiento usando el gradiente (normal) de la superficie del fluido. As que si la curvatura es negativa (concava) la fuerza se ejercera hacia afuera, y si es positiva (convexa) la fuerza se ejercera hacia adentro, de esta forma a medida que el sistema avanze frame a frame todo intentara forjarse de forma esferica debido a la decimacion por curvatura, dando como resultado el efecto deseado.

     

    Saludos!

    • Like 1

  14. Nice approach tjeeds!

     

    This one is with a bit of mod to give a more interesting movement with a fake momentum! Its better that you use the texture delta approach and gradient computation in conjunction with a smoke solver, this way you can ensure that the system removes the divergence to give an even better momentum.

     

    Cheers

     

    interp_tex_vortx.hip

    • Like 2
×