Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Ellyfish

  • Rank

Personal Information

  • Name
    Elize Durham
  1. Hmm. Sometimes, like this time, I'll scatter some points and fracture, then make new points at the centroid of each fracture piece and fracture the original geo with those points a second time. That helps even out the spacing and fracture into straighter lines; for example if I have a long thin block that bends, and I want it to be fractured into pieces lengthwise, but don't know its orientation or exactly when the bends happen. I know I've run into this error before; if there's not some obvious case that causes this kind of problem then I'll assume it's got something to do with that and just keep on adding a small random offset.
  2. The .hip is huge and would probably just confuse things. The loop is just going through a bunch of different blocks and breaking them all separately. All the others that it loops over seem to break up how I'd expect, just this one is being weird. I offset the points by a tiny random vector and it worked. I'm not sure why. Does it not like collinear points?
  3. This keeps coming up so I'm afraid I'm missing something, but I'm not sure what. For voronoi fracture, I plug the object I want to fracture into the first input, and the points around which I'd like it to build voronoi cells in the second input. Sometimes, this does exactly what I want. Sometimes, it ignores some of the input points. For example, in my image below, I've plugged in 8 points, all of which are inside the geo, but it's only generated 5 pieces. Has anyone encountered this before, and if so, what did you do about it? EDIT: If I throw a pointvop between my input points and the voronoi SOP, randomly offsetting all points by a tiny random vector, it works. Does it not like when points are in a row?
  4. I have some connected polygons, and I have some curves that cut across the polygons. I want to procedurally split the polygons along those curves. For some reason, the polysplit SOP doesn't necessarily work all of the time; there is no tolerance value that does what I want with every cut. That's the basic premise of my problem. More specifically: The polygons all share at least one edge with one another. The polygons' normals are all roughly perpendicular to the y axis; none are within 45 degrees of up or down. The polygons' normals are all roughly parallel to one another; no two faces are more than 90 degrees apart (enforced by the types of models that will be input), and no adjacent faces are more than 30 degrees apart (enforced by the procedure). Some groups have only one polygon. Some polygons are concave, and some have holes. The curves are all made of exactly two points. The points on the curves all lie exactly along the unshared edges of the polygons (the points were snapped to the edges). At least one of the two points is guaranteed to lie exactly on a preexisting point in the polygons; the other may or may not. The curves do not overlap each other. The curves are all roughly horizontal; in cases where the curve crosses a shared edge between polygons, I would like the point that it cuts across to be pretty much horizontally aligned with the curve. The interiors of the curves do not cross any unshared edges of the polygons; tracing a direct line across the faces from the first point of the curve to the second, you are guaranteed not to leave the polygons. I've attached a file where I create the curves in the first place, with the test geo I'm using, just in case you want an easy way to build a bunch of curves that fit all of those parameters. Cutter_help.zip
  5. Wow, you guys really went all out. My curves are all sortable by Y, so I already implemented the first solution by Noobini (and Coltonmil, very shortly after!) in my graph. I'm assuming that version is more efficient than the general curve solutions?
  6. Oh, that's clever! I didn't think of adding in the points you get from intersection analysis to the curve; that simplifies the problem a lot. My lines can be sorted, so that works for me. It seems to be doing the right thing on my test geo that has all the weird edge cases I could think of, too. Thank you guys!
  7. Unfortunately, the existing points on the curve are placed in very specific spots, some of which are "inline" but still need to remain where they are. I don't want to remove any points on the curve that are not inside the volume, and I don't want to add any points other than the specific ones where the curve and volume intersect. Is my hacky solution really the only one?
  8. I'd like to cut out all portions of a polygon curve that are inside of a polygon mesh. This may result in the curve being cut into multiple pieces. It may also result in one or both of the original endpoints being removed. I'd like to preserve all details of the curve that are outside of the polygon mesh, too. For example, if the red shapes are the polygon volume, the blue line is the curve, and the green circles are the points where they intersect (which are not necessarily preexisting points on the curve), this is what I'd like to happen: Basically, I want to boolean subtract a polygon mesh from a polygon curve, but for some some reason the boolean sop doesn't affect the curve, so I'm looking for other options. EDIT: I can KINDA get it to work by: Translating the curve along the normal. Reversing the point order on the translated version. Merging the translated curve and the original curve. Using an add sop on all points from the merge in step 3 in order to make a polygon. Boolean subtracting my polygon volume from the polygon from step 4. Polywiring my original curve with a tiny radius. Adding a sphere with a tiny radius to each endpoint of my original curve. Boolean union-ing the polywire from step 6 with the spheres from step 7. Grouping all points from the polygon I got from step 5 that are inside the wire-with-nubs from step 8. Promoting the group from step 9 to all edges entirely contained by the points in the group. Dissolving everything except the edges in the group from step 10, with "create curves when dissolving boundary" on and "remove inline points" off. Obviously that's extremely hacky, but at least it does work.
  9. turn texture details into geometry

    Aha. I was having trouble with that method, but then I realized that the UV data is originally a vertex attribute and I had to promote it to a point attribute to access it with the point VOP first. Whoops! Thank you for the speedy help!
  10. Say I get a model with a flat face of arbitrary shape and size, UV unwrapped and with a texture. The texture consists of a black background with different shapes on it. Each shape has a unique value for its blue channel, and no two shapes are overlapping without the black background between them. Would it be possible to cut those shapes out, giving me separate, non-touching flat pieces? What about adding an attribute to the resulting geometry that stores the blue value from the shape?
  11. WHAT?!? I could have sworn I tried every possible combination of checkboxes on the resample node and nothing worked. But yeah, that did it. Thank you!
  12. Perfect! The clip node was definitely what I needed. Yours starts the clip at 0 and progresses up by distance instead of number of segments, but it was easy enough to change it to fit what I needed. Thank you!
  13. I got a quasi-solution by scaling everything up along the Y axis by 100, snapping to points, then scaling back down. It's not perfect but it works within a tolerance.
  14. I'm trying to place points on specific edges of input polygons. These edges are not necessarily linear, some have bends in them. However, the edges are guaranteed to not overlap themselves horizontally. If you start at one end of the edge and proceed to the other end, the y value of your position will always go up or always go down. In other words, the specific edges I'm working with can be shaped like "l", "<", or "/", but not "V", "^", "_", or "N". They will also never be more than 45 degrees away from vertical. I would like to place points on these edges so that there is a point on the top, on the bottom, and evenly spaced vertically in between. As in, if you proceed from point to point along the edge, the difference in the y value of the position of the current and previous point is always equal, regardless of how far each point moves laterally. You might be thinking, "Just use resample with 'Even Y Segments'," but that takes the points where the edge bends into account. For example, if I have an edge made of a segment that goes 1 unit up and to the left, followed by another segment going two units up to the right, and I try to put 3 points on it, I get 5 points total: the top and bottom, the point where the curve happens, and one each halfway from the curve point to the top and bottom. What I would want instead is one at the top, one at the bottom, and one halfway up the total distance, placed on the longer segment half a unit up from the bend point. Currently I'm putting my target edges in a group, then using a Dissolve SOP targeting all edges not in that group, with "Create Curves When Dissolving Boundary" checked. That makes a curve matching my edges. I then loop through those curves, where I have a primitive VOP that does all the math determining how many points I want along the edge and makes that minus one the "num_segments" attribute of the primitive. Then I run it through a Resample SOP with "Allow Primitive Attributes to Override Parameters" checked. If I checked "Remove Inline Points" on my Dissolve, it gives me a straight line from the start to the end of the edges, albeit one with all the points I need spaced out correctly. If I could somehow snap those points to the original curve again in a way that only allowed them to move horizontally when snapping, that would solve my problem. Alternately, if I leave "Remove Inline Points" unchecked on my Dissolve SOP, I get a curve matching the edge exactly, but each segment of the edge is divided into my target number of points instead of the complete edge. If I could get that to use the whole collection of edges instead of each edge segment individually, that could also solve my problem. Or, maybe there's a really easy solution to my problem and I'm way off base. Any ideas?