Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About mavencolby

  • Rank

Personal Information

  • Name

Recent Profile Visitors

961 profile views
  1. Material Builder to Layer

    Hey guys, I'm trying to get a custom material to export a layer properly so I can combine other shaders. I've attached the .hip file below. This is the material I built. As a simple example, it works as intended. However, there's no layer yet: So, I dove into the principle_core shader and was able to (unsuccessfully) create a pbrdiffuse node, plug that into the layerpack and then export the layer for mixing: But unfortunately when I assign the layermix to the object, I lose the ramp. It seems to take just the first input of the ramp: It's probably very simple, but this is driving me crazy. Any ideas? material_help.hipnc cw
  2. Writing attributes to image file

    So I figured it out finally. Had I done just five more minutes of testing, I wouldn't have had to ask! Originally I was exporting the heightmap out of COPs which was suggested in a video. However, using the heightfield_output node, you can specify "type", which I set to 16b Fixed, and "Single channel", auto remapped. And it worked flawlessly. Hope that may help somebody! CW
  3. Writing attributes to image file

    Hey, I'm trying to export a 16-bit png heightmap, but I can't seem to find where to set the bit depth. As far as I know, when I import the heightmap into UE4 it reads it in as an 8-bit image. You said you figured it out, where's the setting? It's driving me nuts. I should mention I'm running Houdini Apprentice, so perhaps there's a depth limit? I wouldn't think so, though, as you can export exr.. Thanks, CW
  4. Evaluate Expression String as Float

    Ah great! Thanks Tomas! I was so close to that, and began pulling my hair out trying to figure which syntax was correct. Thanks for the solution cw
  5. Evaluate Expression String as Float

    Got it to work! It needed to "return pig()" at the end. The final Python code looked like this: def pig(): node = hou.node('/obj/Frustrum/') path = hou.evalParm(node.parm('cam').path()) x = hou.node(path) aperture = x.parm('aperture') n = hou.evalParm(aperture.path()) return n # NOTE the "return" before calling the procedure "pig()" return pig() This is probably overkill for what I was trying to do, but hey.. got my feet wet in Python! Hope this helps someone else. cw
  6. Evaluate Expression String as Float

    Okay so I've tried a little Python, this should work but I can't wrap my head around putting this into a parameter: def pig(): node = hou.node('/obj/Frustrum/') path = hou.evalParm(node.parm('cam').path()) x = hou.node(path) aperture = x.parm('aperture') n = hou.evalParm(aperture.path()) return n pig() I'm trying to set as "scalex" on a transform sop, and even when it's set to evaluate Python it returns 0. But the code works in the Python shell. What the heck is happening?
  7. Good morning and Merry Christmas! I need to evaluate a string path and get a parameter value from it. So far I have this as a string parm: `chsop("../cam")`/aperture/ This evaluates correctly as: /obj/rendercam/aperture/ However when I try to reference this as a ch() operation, it doesn't evaluate correctly. It reads 0. How can I drive a float parameter correctly? To be clear, I don't want to directly reference the camera: // NOT this ch("../../rendercam/aperture") I want the user to put the path of the camera in the otl and be able to derive the aperture from the string. Thanks! cw
  8. FEM Fracture Attribute

    So it seems to be completely broken. FEM freaks out and stretches the tets, no matter what I do. I tried simplifying the collision geo to just a sphere, and the collisions still seemed to be causing a problem. Oh well, I guess secondary fractures won't work yet. I'll just emit particles! Which is fine, but I'm a little disappointed. I'll post a scene when I'm back on my workstation.
  9. FEM Fracture Attribute

    Hello! Attached is a couple flipbooks showcasing this problem. Hopefully I can resolve this issue soon. Vimeo | FEM Problem
  10. FEM Fracture Attribute

    Hi! So I'm driving the fractures on my FEM object by at attribute - that that's working nicely. However, and this may be an inherent problem with FEM right now, but I'm getting enormous stretching artifacts when I have fracture enabled. It seems to appear somewhat randomly, but it may be due to the collisions and not enough substeps. I'll post a video when I'm at my workstation. Has anyone encountered this? I really am unsure how to tackle this problem without waiting days for the simulation to run through a million substeps. Thanks! Colby
  11. Low to High Res DOPs | Creating New RBD Objects Per Frame

    This is what I'm trying to do, but with paper clips instead of flat spheres. This is a test I did earlier today:
  12. Hello! This has been a very confusing journey trying to figure this one out. So I've got a popnet spawning points (only on birth, then they die) and I'm copying a low res object onto the points. I'm then reading the creation of those objects inside DOPs so that each frame more and more objects are born. That's fine. The tricky part is outside of DOPs, I'd like to switch the low-res bounding box geo to my high res geo. As I understand it, this is fairly straight forward IF you have a pre-defined number of rbd objects (i.e. voronoi fracture). However since the number of RBD objects in DOPs is always updating, how can I correctly transfer my high res geo onto those points? I've attached my scene file. Thanks! Colby paperclip_sim.hipnc
  13. Popnet Kill

    Atom, Thank you! That worked perfectly!
  14. Popnet Kill

    Hello! I'm trying to kill points inside DOPs (well a popnet actually). The way I'd like to do this is by finding the closest point to the ground object (how do I reference an object in DOPs?) and computing the vector from the POP point to the nearest point, then dotting that onto the ground points normal vector. That's a nice way to figure out which side of the ground the point is on, then killing it. At least that works outside of DOPs. I'm wondering how I can do this inside DOPs because I don't want to post-process kill thousands of points if I can kill them in the simulation. Any ideas? Thanks, cw