Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

1 Neutral

About lugnut

  • Rank

Personal Information

  • Name
    John Baumann
  • Location
    New York City
  1. Get An Attribute equal to Frame

    Sorry! In my mind it was easier than reality - I forgot you need a solver sop to retain the frame value. Attaching a file. capture_frame_w_solver.hipnc
  2. Bulk rename

  3. Attribute Transfer by ptnum

    You have just described the functionality of the Attribute Copy node. Plug the second set into the first input and the first set into the second. The default settings will do just what you want, setting the Cd attrib on the points
  4. Get An Attribute equal to Frame

    Not sure if this is what you are asking but if you want to save a frame or time when something happens for the first time this is a simple way to do it: Let say you want to save the frame when a point reaches a certain height. First set with attribute create or wrangle: i@theFrame = -1; then in another wrangle: if(i@theFrame<0 && @P.y> someHeight) @theFrame = @Frame; the theFrame attrib will only be set to hold the frame number one time: when the is greater than the threshold and it hasn't already been set
  5. Wire constraint network Question

    Ah thanks! should have tried that!
  6. Wire constraint network Question

    Hi all- Building a procedural constraint network for wires by connecting the interior points in a grid. It works fine for some grid dimensions, but not others, where the sim blows up. shown below a 5x5 and a 6x6 grid. A 15x15 grid will work fine, but a 6x6 one won't. Curious! I'm building zero-length constraints from the interior points and setting the anchor points as follows: int wirepts[] = nearpoints(1,@P,.0001); foreach (int wpt; wirepts) { if(wpt != wirepts[0]) { int pt1 = addpoint(0,v@P); int pt2 = addpoint(0,v@P); setpointattrib(0,"anchor_id",pt1,wirepts[0]); setpointattrib(0,"anchor_id",pt2,wpt); int newprim = addprim(0,"polyline",pt1,pt2); setprimattrib(0,"constraint_name",newprim, "WireGlue"); setprimattrib(0,"constraint_type",newprim, "position"); } } setpointgroup(0,"delete",@ptnum,1,"set"); I delete the original points later - I'm not using the first of the nearpoints to avoid a prim with the same anchor points, I thought that might be the problem, but it didn't seem to matter. Does anybody know the reason why this happens? Am I missing something? Thanks - I'm including a sample file. wireGridConstraints.hiplc
  7. Copy collision cd to geo

  8. I'm doing a simple "flicker" animation where I use a COP blend node with the factor param controlled by CHOPs to turn frames on and off. I can render to a flipbook, but the composite ROP just gives me black frames? Anybody know why this happens and if there is a workaround ( besides saving from mplay)? BTW the replacing the blend with a switch COP dosen't work at all, I'm assuming because the switch is not cooking the input, is that correct? Thanks for any info
  9. OBJ transform to SOP lvl

    I don't think there's much of a difference performance-wise between transforms at object versus sop level. So you might just copy the channels from your object to a transform sop and delete the ones at the object level. Otherwise you can use an object merge in another object and set transform to "Into This Object".
  10. Pack Primitives and Groups

    Turn on "Transfer Groups" in the assemble SOP. Check if there are any attribs you want to transfer if so tick that on too
  11. Use point colour for Emission

    You can use the "emitcolor" attribute in the priniciple shader, just copy the values of the point color to emitcolor. One way is to use a point wrangle with v@emitcolor = @Cd;
  12. Getting OBJID or dop object name in Sop Solver

    Jeff, thanks for your thorough reply. The stamp expression in the switch node is what I'm looking for. I do understand the packed/non-packed difference but was just looking for a way to differentiate by objects. Thanks!
  13. Hi- I'm manipulating objects in a sim with a sop solver, based on their dop object names. The simple case is to say, turn on or off the @active attrib in a bullet sim base on the object name. Right now I'm adding a string attrib with the name to the packed primitives on the SOP side, before they get made into an RBD packed object and checking that name the sop solver in the sim, using a point wrangle to make changes, etc. It occurs to me though that OBJID is and the object name are both available but I can't figure out how to read them while in the sop solver. I know I can use a function like dopoptions to get the name but that requires me to have the OBJID of the dop oject that the sop solver is working on and I can't figure out how to get that in the sop solver itself. In short, what node/expression will get me access to the object's name or id in the sop solver inside a dop sim? Thanks
  14. Don't know why it is happening, but you can work around it by replacing the variable names $CEX $CEY $CEZ with calls to the centroid expression referring to a previous sop: centroid("../sopname",D_X) centroid("../sopname",D_Y) centroid("../sopname",D_Z) See attached hip BoundingBox_AnimationCentroid.hipnc
  15. I have a cvex volume shader in vex using a point cloud and attributes that works fine on the volume but will not render as a volume procedural. Other vop-based cvex shaders seem to render fine. I've attached the hip and the otl of the shader hoping that someone could tell me what I am doing wrong,, Also in the render ( not using the procedural ) there are some linear artifacts; I wonder if anyone can tell me what is causing that. Thanks very much PCvexExample.hipnc JBPCVolume.otl