Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by anim

  1. fore each loop question

    also TOPs can provide easy wedging within an asset if you can use 17.5
  2. Selecting edge corners

    1. it's a direction vector the normals are compared to 2. Detail Wrangle with your geo in the second input (assuming your edge group is called "edge_group") int pts[] = expandedgegroup(1, "edge_group"); for (int i=0; i<len(pts); i+=2){ vector P0 = point(1, "P", pts[i]); vector P1 = point(1, "P", pts[i+1]); vector P = avg(P0, P1); addpoint(0, P); } ts_point_per_edge_in_edge_group.hip
  3. Copy To Points/Normals

    primitive wrangle on your original geo: int pt = addpoint(0, @P); setpointattrib(0, "N", pt, v@N); removeprim(0, @primnum, 1);
  4. Selecting edge corners

    Group SOP (type Edges) - uncheck Base Group/Enable - check Keep By Normals - set Spread angle to something small, like 5 - set direction to: NE: {-1, 0, 1} NW: {1, 0, 1} SE: {-1, 0, -1} SW: {1, 0, -1} considering based on your screenshot that Z is N and X is W
  5. Rendering different groups as passes?

    stylesheets example:
  6. Use groups with Cryptomatte via Stylesheets?

    again, not for groups, but if you create primitive string attribute on your geo you can use stylesheets to override cryptomatte property 1. create primitive string attribute that holds your "id" value or unique name (or just convert your groups to name attrib) (in this case I created unique s@name attrib per box) 2. create property on your object (in this case I called it: masks) 3. create stylesheets override for Primitives with Override Script that uses name attribute binding to override your cryptomatte property example file: ts_cryptomatte_from_attribute.hip
  7. Force to update Menu Script from Python

    you can trigger menu refresh or parm callback by calling parm.pressButton() so let your parameter callback script run buttonStripParm.pressButton() dynamic_button_strip_menu.hip
  8. per shader emission AOVs

    You may be able to replace your emissive objects with Geometry Lights and do per light exports Otherwise H17+ and LPEs may be the other option
  9. Chop Reference Issue [SOLVED

    as you can see in the example you need to specify the channel path, not just CHOP node path so in your case chop("/obj/chop_music/OUT_music/chan0vol") or chop("/obj/chop_music/OUT_music/chan1vol") also alternatively you can directly export channels to parameters from CHOPs, similarly to what Motion FX do
  10. Rendering different groups as passes?

    You would use Material Stylesheets similar to the instancing example, as Stylesheets can Target groups, but obviously it'll be more flexible to use string attribute instead of groups and directly base your cryptomatte property on its values
  11. just to select random end point per curve without any sop or vex for loops you can do (pointwrangle) int index = -(rand(@primnum) < 0.5); int pts[] = primpoints(0, @primnum); i@group_randomend = pts[index] == @ptnum;
  12. how to import point (attribute VOP)

    - you can use foreach loop to accumulate the falloff value - also if will help to have f@pscale attribute on your points or spheres to be able to have varying radii - and instead of looping through all of them you can loop just through points that would influence the point using pcfind_radius() f@falloff = 1; int pts[] = pcfind_radius(1, "P", "pscale", 1.0, @P, 0.0, 1e9); foreach(int pt; pts){ float r = point(1, "pscale", pt); vector P = point(1, "P", pt); float dist = distance(P, v@P); f@falloff = min(f@falloff, fit(dist, 0, r, 0, 1)); } how_to_import_all_points_fix.hip
  13. https://www.sidefx.com/forum/topic/61863/
  14. Smooth Capture Weights

    In that case just make sure all the points with partial weights to your red bone are influenced by at least one other bone to split the weight
  15. Smooth Capture Weights

    use at least 2 bones one for all the static points and one for your red ones
  16. Then you may want to use Attribute Copy instead
  17. do you have an example? as far as I know attribute overrides for VOP Parameters/Binds is basis of a lot of tools, I'd be surprised if it suddenly didn't work in H17, so maybe you are trying to override something that's not a VOP Parameter?
  18. Rendering lines and width attribute

    you can't define it in the surface shader as at that point it's already too late (surface shader is executed upon ray intersection with the curve, and in order to get that intersection width had to be already known) what you can do however is one of the following: - create width attribute wide enough to cover all your needs and then in surface shader use parametric s coordinate to control the opacity of the shader, therefore you can make the curve appear thinner than it is so essentially give you ontrol to define any thickness lower than the initial width - create hengine curve procedural that will set the width attribute on the geometry at rendertime
  19. - if you are using Vellum Solver SOP then Advanced/Target, change to SOP Path - if Vellum Solver in DOPs then there is Target Path on Vellum Source DOP
  20. [SOLVED] Determining a volumes max velocity

    - convert your velocity volume to VDB - make sure it's a single vect3 VDB primitive (VDB Vector Merge SOP) - convert to speed float VDB (VDB Analysis SOP: Length) - compute Minimum or Maximum or other and store in Prim attrib or Detail or ... (Volume Reduce SOP)
  21. Use Pin To Target constraints and set them to Soft with desired stiffness
  22. Running solver on multiple objects

    - you can either do clustered sim (maybe examine Smoke Cluster or Pyro Cluster Shelf) - or you can wedge single sim with different input geos using TOPs (or in before 17.5 use Wedge ROP)
  23. Transfer all attributes using VEX

    I'd not do it in VEX, it can get tedious as you will have to check for attribute size, attribute type info attribute type, etc. Also it would probably not be the fastest for minimum amout of work and maximum efficiency, you can do one of the following for example 1. if it's a single value - create i@sourcept, i@sourceprim, ... attribute on the original geo (from its @ptnum, @primnum, ...) - create i@sourcept, i@sourceprim, ... on the other geo based on which one you want to copy from - after VEX use Attribute Copy to copy all needed attributes from original geo based on that attrib 2. to interpolate values - on the other geo create i[]@sourcepts f[]@sourceweights storing array of point numbers and weights you want to interpolate from and use Attribute Interpolate SOP (point numbers and weights) to transfer all the attributes you want similar for prims and vertices
  24. Rendering different groups as passes?

    You can use cryptomatte to output custom ID's http://www.sidefx.com/docs/houdini/render/cryptomatte.html
  25. Edit/Live Parameter Display During Playback or simply hit the Pause key