Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Hi all, after running a guided ocean sim, I have meshed the particles using particle fluid surface, and the resulting surfaces have a “bottom” layer which I would like to delete. Using connectivity SOP and setting the type to Primitive exposes attribute called class, which gives me integer class. Then I used group expression and gave the group name called “kill”. in the Vexpression, I used @class == 10 10 being the class of primitives that comprise the bottom layer that I am trying to delete. Then I put down a blast, and by putting in the group “kill” that I made in the group expression, I am able to delete the bottom layer. so far so good. Only problem is, the class numbers change depending on the frame. So, while class 10 might be the bottom layer that I am trying to delete on frame 1, at frame 2, the class name has changed to something like 12, and my group expression and blast no longer work. How can I use this method when the class changes every frame? If there is a better method to procedurally delete the bottom layer of mesh throughout the frame range (say, 1 to 168), I would love to learn about it. Thank you
  3. Thin Sheet Fluid

    Do you still work on this solver? I have few improvements to mention!
  4. Houdini 20 Wishlist

    my only wish every-day- .... and -version .cheers
  5. I would like my file chooser in my C++ SOP plugin to only show up certain file extensions. What is the recommended way ?
  6. could you share how you did it?
  7. Timeline markers?

    I tried opening an animation editor and pin it on a separate window. This way, I can refer to the animation keyframes that I've manually recorded - whether a NULL or other key nodes that have important keyframes. Hope this helps!
  8. 2d rbd collision

    HI.i want to reach this effect like this first gif shows. i have get this like second gif shows. i attach my sence file.hope you guys could give me some suggestion. thanks in advace. 2dBBD.hip b
  9. VDB Curvature Flow

    @konstantin magnus thank you!!
  10. VDB Curvature Flow

    Hi @papsphilip, this would be the double cross product of the volume's gradient: vector grad = volumegradient(1, 0, v@P); vector perp = normalize(cross(grad, {0,1,0})); vector dir_y = normalize(cross(perp, grad)); volume_dir.hiplc
  11. VDB Curvature Flow

    is this for calculating the gradient y component of a volume? you are using points so i guess not. its working with a polygon mesh input 0 and a volume in 1. Could you provide an example scene?
  12. Last week
  13. Seems simple but it's giving me grief. Let's say I scatter points onto a sphere. I can use a delete node as a mask and make those points appear over time. Next I want to feed every unmaked point to birth a single particle in DOPs and fly away with a wind force. I do not want that point around to emit even more particles. How do I do this? Thanks!!
  14. Hey Guy There is no way to Get an Better Ocean Extend Mesh? ( Edge of the Mesh in Shelf tools setup I saw is Super Crazy to Mange that - I don't know why Houdini not update this old Stuff ) if any plane or tutorial anything I will be appreciated that plz Thanks in Advance
  15. lava flow question

    also a force node would work good here .... thx
  16. Houdini 19 Wishlist

    Since 19 is pretty much done, I'll close this and you can all take your dearest wishes and desires to the H20 wishlist!
  17. Houdini 20 Wishlist

    Animation and rigging toolset to rival Maya so I can dump Autodesk for good!
  18. VDB Curvature Flow

    /* 1. Create normal for input points. 2. Cross product of N and a tangent "z-vector", rotate this by X degrees. Z-vector points in inclination dir. 3. Create a new point by pushing it along the generated direction for dist_factor. 4. Move the new point to the surface and connect to the previous point. 5. Create attributes. 6. Repeat. */ float dist_factor = ch("dist_factor"); float rotation_degrees = ch("degrees"); float per_step_rotation = ch("per_step_rot"); int steps = chi("steps"); float pc_radius = ch("pc_radius"); int diagonal = chi("diagonal"); vector find_z_vec(vector pos; float pcrad; int diagonal) { int handle = pcopen(1, "P", pos, pcrad, 1); if (pciterate(handle)) { int found_pt; vector found_pos; pcimport(handle, "point.number", found_pt); pcimport(handle, "P", found_pos); int neighbors[] = neighbours(1, found_pt); int n_neighbor_arr[]; int cross_neighbors[]; vector max_y_pos = set(0, -1000, 0); foreach (int n_pt; neighbors){ vector n_pos = point(1, "P", n_pt); if (n_pos.y > max_y_pos.y) { max_y_pos = n_pos; } if (diagonal){ int a_neighbors[] = neighbours(1, n_pt); foreach(int a_pt; a_neighbors){ append(n_neighbor_arr, a_pt); } } } // Activating diagonal also checks the diagonal neighbors for a maximum y value if (diagonal) { foreach(int m_index; int m_pt; n_neighbor_arr){ foreach(int k_index; int k_pt; n_neighbor_arr){ if (k_index > m_index && m_pt == k_pt && m_pt != found_pt){ append(cross_neighbors, m_pt); } } } foreach(int cross_pt; cross_neighbors){ vector n_pos = point(1, "P", cross_pt); if (n_pos.y > max_y_pos.y){ max_y_pos = n_pos; } } } pcclose(handle); return normalize(found_pos - max_y_pos); } else { return set(0, 0, 0); } } int old_pt, new_pt = @ptnum, prim; vector curr_normal = @N; vector curr_pos = @P; for (int i = 0; i < steps; ++i){ // find the tangent vector zvec = find_z_vec(curr_pos, pc_radius, diagonal); if (length(zvec) == 0.0) //no max value found => no point on the surface found break; // basic translation of the point vector pre_rot_vec = cross(curr_normal, zvec); vector4 quat = quaternion(radians(rotation_degrees + per_step_rotation * i), curr_normal); vector rotated = normalize(qrotate(quat, pre_rot_vec)); curr_pos = curr_pos + dist_factor * rotated; // this pushes the point to the surface vector gradient = volumegradient(2, 0, curr_pos); float sample = volumesample(2, 0, curr_pos); curr_pos += normalize(-gradient) * sample; curr_normal = normalize(-gradient); old_pt = new_pt; new_pt = addpoint(geoself(), curr_pos); // set attributes and create a spline, grad attribute is used for the color ramp setpointattrib(geoself(), "N", new_pt, curr_normal, "set"); setpointattrib(geoself(), "grad", new_pt, i / (float) steps, "set"); prim = addprim(geoself(), "polyline"); addvertex(geoself(), prim, old_pt); addvertex(geoself(), prim, new_pt); }
  19. Hi everyone! I was curious if anyone had any experience interacting with the HDK using DLang (or any other language) and FFI? There is an article about including C++ libraries in D here: https://dlang.org/articles/dll-linux.html and it got me wondering if this was something that could be done with Houdini, and I was curious if anyone else had already tried and what their experience was?
  20. Thank you for you help! I've been able to get things compiling with the additional library now!
  21. The dop node path on your Dop Import Fields SOP should be either a relative or absolute path: ../dopnet1/smoke or /obj/pyro/dopnet1/smoke will get the correct rest ratios in your case
  22. putting attributes in nodes

    Wait never mind I fount it. the "point" command.
  23. I know this is a silly question. But I don`t know how to word it to find a answer in google. I found that sometimes when I create an attribute and I want to put it in a node. The node does not seem to accept the attribute. For example. I create an float attribute "@something". "@something" has a random value between 0 and 1. Then I want to put "@something" in the "First U" in the carve node. But it does not work. It gives me the error. "local variable "something" not found". I know this is a simple thing that I am missing. Cheers
  24. Hi Graham. just wondering, Do you have code to write to disk Point cloud Data with Pos and Color attribute to txt ?
  25. Packed geo motion blur

    Important to check if you have substep data, go to your timeline and uncheck "integer frame values". If you scrub through and there is no motion between frames you will get zero motion blur. To fix this you can try to use the "time blend" node.
  26. Some links that may be of use to you: - SideFX Building Generator - Simon Verstraete's 2-min House Generator And you can always install Labs tools and see how the Building Generator works.
  27. Wetmaps are not visible

    hello ronit1996, I saw your dialogue and wanted to ask, so that the texture does not appear after the collision and the texture formed, for example, black
  1. Load more activity