Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

2 Neutral

About a41b

  • Rank

Personal Information

  • Name
    Tim Braya
  1. Thanks for the answer!!! This is exactly what I was looking for. Now it is clear to me how to register my custom SceneViewerState and get the key and mouse events.
  2. Hello there, I'm pretty new in Houdini and want to script a measuring tool that I can use from the tool shelf or via a keyboard shortcut. So, I want to have the following behavior: Click shelf button ("ruler") Select first Point or Edge in Scene View (with edge/point snapping) Set marker on selected Point/Edge and draw a line with measured text in the scene. The line is the connection between the selected Point and the mouse. After selecting the second Point, the line, the measure text and markers should be visible for a short time and then vanish. So my main problem is that I don't know how I get the mouse or keyboard events into my tool script. I only know that I can check for a few key commands (Ctrl, etc). But I want to draw a line and update a distance text field depending on my current mouse position. So how do I get this live interaction? I already checked the tutorials about writing custom viewer states but they are all based on nodes in the network and need to be registered/unregistered at the install/uninstall event. I tried to move the logic of the simple state viewer tutorials into my tool script but was unsuccessful and never managed to receive any custom mouse or key events. The second thing is more of a workflow issue. How am I supposed to generate the geometry (markers, line, text field) and remove it afterward? Will these new nodes always be added to my network editor or is there a kind of temporary node network for it? A lot of questions but I hope someone can help me P.S. The link shows a measuring tool in use. It's more or less what I'm after https://www.youtube.com/watch?v=MIcUW9QFMLE&feature=youtu.be&t=299
  3. UV Flatten distorted plane

    I have posted a RFE which is now implemented. Thanks SideFX UV Relaxation of existing UV islands is now a feature of the UV Flatten node when "Preserve Seams" and "Preserve Layout" is turned on in Houdini 17.5.319.
  4. UV Flatten distorted plane

    I am reviving this thread because I am dealing with a similar problem, except that my model has several UV islands instead of one big island like the example above. The DeltaMush approach did not work for me beacuse of the UV islands. DeltaMush needs point attributes. When converting the UV attribute from vertices to points I lose the UV islands because of the connectivity of the points at the edges of the vertex islands. What I want to achieve is the following: 1. create an initial UV layout with several uv islands (UV Flatten) 2. deform the geometry 3. relax the initial UVs to compensate for the distorted geometry from step 2 I am struggling to make the above DeltaMush approach work with UV islands. Any ideas? Maybe someone has a completely different idea how to relax the UVs after the geometry deformation. My geometry is only deforming slightly. I am looking for a way to match the edge lengths/primitive areas of the UVs with the new (deformed) edge lengths/primitive areas of my mesh.
  5. crop empty space around generated text

    I found a quite elegant way to do that task without setting up a camera or cropping via a post processing script. 1. In the OBJ context: set up a Font node. 2. In the IMG context: set up a "Geometry" node (which renders SOPs along a world axis) and control the node's "Overide Size" Parameter via the bounding box of the Font node from the OBJ context.
  6. crop empty space around generated text

    Thanks for the tip. Is there a way to call iautocrop from the "Post-Render Script" field in my ROP File Output node, which is attached at the end fo the network? Another solution that would work with the ROP would be to crop the image using python after it is written on disk.
  7. crop empty space around generated text

    That's one way I could do it in the OBJ context: Generate text geometry, position a camera and invoke Mantra. But is there a way to do it completely in the Compositing context? The IMG context also has a font node that can generate text, but it generates a default canvas of 1920x1080. I would need to determine the bounding box of the text somehow in the Compositing network and feed that information to the crop node. Unfortunately I am not familiar with the IMG network. I could not find something like a detail attribute that I could generate in a VopCop node (for storing the bounds of the colored text) and later in the network access this attribute in the Crop node. My way of thinking in the OBJ context does not work in the IMG context
  8. I need to generate text in Houdini and render it so that the empty area outside the generated text is cropped. The saved image should only be the size that is needed to display the generated text and not the default canvas size of 1920x1080. I am using the Compositing context very infrequently, so I was wondering if there is an easy way to determine the size of the generated text automatically and control a Crop node with that information. Thanks.
  9. Hi everyone! I am looking for a way for multiple people to work on the same .hip file. Since .hip files can be exported as text, I assumed it would be possible to simply use git for versioning (and merging the edits made by multiple people). However, it does not seem to be that straightforward. To test this approach, I created a very simple network (first attachment). Now I made two edits (second and third attachment), each adding a transform node to the network. I assumed these changes could be merged, creating a new network containing both transform nodes. However, attempting to merge the .hip files using git resulted in several conflicts. Some of these could be solved trivially, (like changes to the viewport or the last edit timestamp) but there are several conflicts (last attachment) for which I could not find a way of resolving which produces my expected result. Does anybody have experience with this approach? How do you handle multiple people working on the same .hip file? Any help would be appreciated!
  10. link ramp parameters with python

    I am reviving this thread because I have the same problem. I was able to link 2 ramps via an extra Python Node that does the following: sourceRamp = hou.parm('/obj/geo/Box1/Ramp') destinationRamp = hou.parm('/obj/geo/Box2/Ramp') destinationRamp.set(sourceRamp.eval()) I have to setup quite a few ramp links via Python and I would like to do that as a python expression at the destinationRamp. Just doing rightClick -> Expression -> Edit Expression on the destinationRamp's name and putting in hou.parm('/obj/geo/Box1/Ramp').eval() did not work. Would I also have to setup Python expressions for the destinationsRamp's Positions and Values? Thank You.