Jump to content


Popular Content

Showing most liked content on 01/24/2018 in all areas

  1. 1 point
  2. 1 point
    Awh think i misunderstood what was being asked. If you want to convert "Name" attribute into an integer and strip the "piece" you can try this. I've also made a new group per piece i@p = atoi(strip(@name, "piece")); string grp_name = sprintf("newGroup%d", @p); setprimgroup(0, grp_name, @primnum, 1, "set"); @Cd = random(@p);
  3. 1 point
    Houdini Digital Asset to visualize arrays of matrices attributes. https://www.orbolt.com/asset/prb::MatrixDisplay::1.0 Cheers
  4. 1 point
  5. 1 point
    Hi everybody, Here is my new showreel. A little editing with some shot from Fantastic Beasts and Ghost in the Shell compared to my previous reel. And only one shot i can show from my work at Hybride on Mother!, i can't show right now some stuff from StarWars: The Last Jedi and coming other shows The majority at the FX was make on Houdini. Hope you enjoy !
  6. 1 point
    Still playing with this setup, been loads of fun. A couple of recent renders.
  7. 1 point
    Uh oh, I'm back. While putzing around, trying to come up with good ideas for my next blog post (covering discrete operators seems a bit too mathy, so I'm open to suggestions. Maybe building a cloth solver in VEX?), I spent some time revisiting an old idea I've been attempting to solve for the better part of a year, rolling up a curve. That's probably not the best way to describe the effect, so I'll let my below GIF do the talking. This solution wouldn't have been anywhere close to possible without Stephen Bester (https://vimeo.com/user13305957) for a solid vex foundation of chained rotations, or Julian Johnson's transport frame file (http://julianjohnsonsblog.blogspot.com/2017/). Above you'll see final effect in action. Still not sure how to describe it other than rolling up a curve... I've attached the final OTL to this post along with the above example HIP! It works over multiple curves as well, so dont be afraid to try crazy stuff with it, it's pretty gosh darn fun! If you try it on a vertical line, you might need to change the up direction, or turn off "set up direction." Maybe it's time to make a Github too... <3 <3 <3 JR_CurveRoll.zip
  8. 1 point
    Op Ok found the answer. so now Surface Model Shader in the new Material workflow is Classic Shader Core but inside a Material Network>Material Builder node https://www.sidefx.com/forum/topic/48599/ Confused though why Surface Model Shader is still in documentation?
  9. 1 point
    Recorded a quick tutorial: Also some bug fixing: Removed jumping orientation of the feathers There can be some skinning issues, so I added two more controls: - Fix_point_skin - increase the search radius. You can increase this if point movement is weird. - Fix_point_attributes - if you notice that there are less feathers than points then you can increase this too. However it should be ok how it is. Owly_feathers.zip
  10. 1 point
    if you have a fairly simple geometry you could use the old tristrip-trick or just remove edges between pairs of triangles like freaq said. quads.hip
  11. 1 point
    Thanks I think I have this sorted out now. It was easier than I thought, this is what I came up with def getFirstInput(node): inputs = node.inputs() if not inputs is None : if len(inputs) > 0 : return inputs[0] return None mirrorVec = hou.Vector3(1,0,0) mirrorVec = mirrorVec.normalized() mirror = hou.Matrix4() mirror.setToIdentity() mirror.setAt(0,0,1.0 - (2.0 * (mirrorVec[0]*mirrorVec[0]))) mirror.setAt(1,1,1.0 - (2.0 * (mirrorVec[1]*mirrorVec[1]))) mirror.setAt(2,2,1.0 - (2.0 * (mirrorVec[2]*mirrorVec[2]))) for n in hou.selectedNodes(): name = n.name() mirror_name = name.replace("L_", "R_", 1) parent = getFirstInput(n) mirrorP_name = parent.name().replace("L_", "R_", 1) mirrorP = hou.node(n.parent().path() + "/" + mirrorP_name ) mirrorNode = hou.copyNodesTo( (n,), n.parent() )[0] mirrorNode.setName(mirror_name) m = mirrorNode.worldTransform() mm = m * mirror mirrorNode.setWorldTransform(mm) mirrorNode.moveParmTransformIntoPreTransform() mirrorNode.parm('keeppos').set(1) mirrorNode.setFirstInput(mirrorP) mirrorNode.parm('keeppos').set(0) v = mirrorNode.origin() if v[0] > 0 : mirrorNode.parm("dcolorr").set(0) mirrorNode.parm("dcolorg").set(0) mirrorNode.parm("dcolorb").set(1) mirrorNode.setColor(hou.Color((0,0,1))) elif v[0] < 0 : mirrorNode.parm("dcolorr").set(1) mirrorNode.parm("dcolorg").set(0) mirrorNode.parm("dcolorb").set(0) mirrorNode.setColor(hou.Color((1,0,0))) mirrorNode.moveToGoodPosition()