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

19 Good

About dchow1992

  • Rank
  • Birthday 04/30/1992

Personal Information

  • Name david
  • Location Los Angeles

Recent Profile Visitors

1,066 profile views
  1. you're close, you just need to delete the pivot attribute when you're importing your rbd sim as points the copy sop recognizes that attribute and the geometry you are copying onto the points isn't in the same rest position as the proxy object it is inheriting its orientation from. also take a look at rbd packed primitives if you want, they are generally the more modern way to do rbd sims
  2. v@vel *= fit(length(@P), 0, circumference, 0, 1); length of P gives you distance from position to origin, if your circle isn't origin centered then you need something like length(center - @P)
  3. nvm
  4. you can also apply the transformation after the copy sop which might give you a little more control matrix3 x = primintrinsic(1, "transform", @ptnum); setprimintrinsic(0, "transform", @ptnum, x); @P = point(1, "P", @ptnum); where input 1 is your object merge
  5. i see the same uvs on both meshes in maya 2015
  6. offset position, rotate, subtract offset
  7. the first statement is there so that you only run the code on non infected points since you don't need to infect already infected pts. if you are running this on millions of pts you'll see a performance gain
  8. you are opening your point cloud around points that are infect=0. when you set @infect = 1 you are setting the attribute on the current wrangle point, not the foreach point. you are looking around the current wrangle point for infected points so that you can become infected also
  9. if you export it yourself in the shader as a custom attribute and compensate for the scale change (cm -> m) either there or in nuke you can achieve closely matching values
  10. //point wrangle @P.y += v@scale.y; not sure if this is a small example of a larger problem you're trying to solve. sorry if this is obvious and not what you're looking for if you still want to use a detail wrangle for (int i = 0; i < (@numpt); i++) { vector pos = point(0, "P", i); vector scale = point(0, "scale", i); pos.y += scale.y; setpointattrib(0, "P", i, pos); }
  11. you can use setattrib to set point attributes ex: int newpt = addpoint(0, @P); setattrib(0, "point", "pscale", newpt, 0, @area); removeprim(0, @primnum, 1); make sure you have pscale on your points edit*couldn't resist trying to make something kinda slow though, i'm sure there's a better way sphere_packing_005.hip
  12. you can test it against an sdf of the boundary each frame if you've never used an sdf before, it's a volume representation of a shape with negative values on the inside and positive outside within the narrow band. there's built-in vex functions to sample volumes and in the file I use the border of the sdf to control the displacement vornoi_growth.hiplc
  13. at the simplest level constraints are just connected points with different name attributes. in my file I change the name attribute so that there are only 2 unique names that connect adj pieces can create connections between. Then replace the name attribute to what it was initially so bullet knows which packed pieces to constrain in dops. There is a bullet masterclass out there that is great if you haven't already checked it out constraints.hip
  14. can you post your file
  15. as a workaround you can try to take one frame of your converted vdb and point deform your converted vdb using the original geometry, assuming the original geometry has a stable point count. then you can use your deforming static point count mesh to generate the rest position.