Jump to content


Popular Content

Showing most liked content on 03/17/2018 in all areas

  1. 1 point
    Hey all We've noticed an increase of people posting HDA's and other general tools in random forums around the site. To help everyone we thought it would be beneficial to open a forum dedicated to the sharing of these so they can live in one place and be browesable: http://forums.odforce.net/forum/71-tools-hdas-etc/ Let us know what you think. There is also the option of opening up a commercial tool repository where you can sell HDA's, tutorials etc. Let us know if this is something that you'd like to see. Thanks Marc
  2. 1 point
    Try int iteration = detail("op:../repeat_begin_attributes","iteration"); You need to put op: before your path, full or relative.
  3. 1 point
    hey thanks for update. I picked it up/purchased so I can see how it is done.
  4. 1 point
    I don't think Houdini 16.5 supports multiple GPUs for OpenCL yet. In your houdini.env file you can specify which one to use. HOUDINI_OCL_DEVICENUMBER = 0 {or 1 to default to your 2nd GPU} Use Goggle search instead of this website search for more results on the topic.
  5. 1 point
    well you actually do have to play around with the scale kinetic/static thresh values grainSnow_v02.hip
  6. 1 point
    Hello fellow Houdniks, FMX is around the corner again and of course there will be another user-meeting this year. od-lunch will be on Wednesday April 25 during the official FMX lunch break from 1PM-2PM. I made a reservation for 20 people at the restaurant “Logo” directly inside “Haus der Wirtschaft” (the FMX venue). Please RSVP here: http://meetu.ps/e/F11Q0/vSmyz/f Looking forward to seeing you again! Cheers Oliver
  7. 1 point
    Here is one way to do it using wire constraints. See attached. wire_constraint_example.hip
  8. 1 point
    NodeGraphPro.incNodeGraphPro.incGotcha ! With the new graph the background pref of the network view are in a new pref files. C:\Program Files\Side Effects Software\Houdini 16.5.378\houdini\config\NodeGraphPro.inc edit this line : GraphBackground: GREY(0.5) NodeGraphPro.inc houdiniPref.zip
  9. 1 point
    You should be able to get what you're looking for with a combination of Attribute Transfer/Sop solver to activate your pieces based on where the wheels are skidding, and the detailed boolean sim setup from the Applied Houdini Rigids IV (though I haven't watched it, so I'm not sure if you can use *exactly* the same methods and stuff). You can import the animation of your car, isolate the wheels of your vehicle, give them a red color and give your ground a black color. Fracture the ground/cliff area. As the wheels skid across the ground, they leave the red behind, and everything with a red value > some threshold will receive an "f@active" attribute value of 1. In the RBD sim, those pieces will then respond to forces and such, and you can have a gravity force and/or some custom point velocities to throw the pieces around in a fun way. Or you could use constraints (glue, or better yet cone-twist might look cooler since it will allow for some flexing and twisting before the pieces break away fully) to keep the pieces held together, and as the car skids over, the constraints start to weaken and break, causing them to crumble down. Here's a few links that might help: CG Wiki:: Houdini DOPs - A little over half way down the page has some RBD stuff, and different ways of activating them. CG Wiki:: Solver SOP - Everything on this page is important. CG Wiki:: Attribute Transfer - These examples show how transferring attributes work. Deleting glue constraints with color The Applied Houdini rigids I & II should give a good foundation, and I know in IV he does some cool stuff with the boolean sop which looks pretty nice. I hope the rough description helps a bit as I can't post a hip at the moment. Those links should help, and I'll try to throw something together when I get home if there's time. It helps to have a general direction to follow, since the scope of houdini can be quite large.
  10. 1 point
    So no recorded tutorial but I did finally get around to finishing this. It's not super complicated, you should be able to pull it apart and figure out how it works. https://gum.co/shells
  11. 1 point
    Welcome to the forum Dixon. No worries the wishlist, is just a wishlist. Submit RFEs, or BUGs directly to SideFX. Eitherway like I said you can keep the old contexts, and you can certainly use managers for context specific nodes, for those who prefer that work flow. Not all of us can handle change There are plethora of ways of handling these issues as handles in different nodal packages, nuke, substance, and several other proprietary packages. Most of it is just based in good UX design. Also SideFX needs to clean up a lot of their 1600+ nodes. There are many duplicate nodes the age old blast sop and delete sop issue, and especially when you account for all the contexts so say null obj and transform sop. They have merged contexts in the past like pops to dops, and shops and shop/vops to material. Also you can just color the connecting wires, and node differently so that is obvious what wires into what. Plus add some subtle shapes for each context. You can add apiece of info to each wire to define the context, that way in your case with file node you can have one file node that is aware of it's context already. So if a file nodes is connected to a sop context it just shows the sop specific options just like the visibility settings. If you are tabbing from an output of a node from the previous context then you just show the nodes that can actually connect to it. Additionally you can have a more advanced tab menu options, like a circular menu, where the first radial is the context for those using mouse, and for those typing the name it be the same. Maybe additionally add splash of color to the tab menu for each context. The current drop down menu tab as far as UX design already fails when you get to sops, dops, and vops if you are scrolling the wheel in ALL it's already too many options, so they design could already use an overhaul. The viewport Radial menu http://www.sidefx.com/docs/houdini/basics/radialmenus.html are already a step in the right direction. Still needing a lot more love, but in the correct general direction. Especially with all the verbification of nodes, this strips out the underlying code from their materialistic surface level detail of the node making it easier to do.
  12. 1 point
    Houdini Digital Asset to visualize arrays of matrices attributes. https://www.orbolt.com/asset/prb::MatrixDisplay::1.0 Cheers
  13. 1 point
    Rows order is is another quite painful issue outside matrix creation scope. This will also work: mat = set(normal, up, binormal); mat = set(normal.x, normal.y, normal.z, up.x, up.y, up.z, binormal.x, binormal.y, binormal.z); All set function signatures, obtained with vcc --list-context CVEX command: float set( float ) float set( int ) float set( vector4 ) float set( vector ) float set( float[] ) float[] set( matrix3 ) float[] set( matrix ) float[] set( float ) float[] set( vector4 ) float[] set( vector ) float[] set( float[] ) float[] set( int[] ) vector2 set( float ) vector2 set( float; float ) vector2 set( int ) vector2 set( vector4 ) vector2 set( vector2 ) vector2 set( vector ) vector2[] set( float[] ) vector2[] set( vector2[] ) vector set( float ) vector set( float; float; float ) vector set( int ) vector set( vector4 ) vector set( vector2 ) vector set( vector ) vector set( float[] ) vector[] set( matrix3 ) vector[] set( float[] ) vector[] set( vector[] ) vector4 set( float ) vector4 set( float; float; float; float ) vector4 set( int ) vector4 set( vector4 ) vector4 set( vector2 ) vector4 set( vector ) vector4 set( float[] ) vector4[] set( matrix ) vector4[] set( float[] ) vector4[] set( vector4[] ) matrix2 set( matrix2 ) matrix2 set( matrix3 ) matrix2 set( matrix ) matrix2 set( float ) matrix2 set( float; float; float; float ) matrix2 set( int ) matrix2 set( vector2; vector2 ) matrix2[] set( matrix2[] ) matrix2[] set( float[] ) matrix3 set( matrix2 ) matrix3 set( matrix3 ) matrix3 set( matrix ) matrix3 set( float ) matrix3 set( float; float; float; float; float; float; float; float; float ) matrix3 set( int ) matrix3 set( vector; vector; vector ) matrix3 set( float[] ) matrix3 set( vector[] ) matrix3[] set( matrix3[] ) matrix3[] set( float[] ) matrix set( matrix2 ) matrix set( matrix3 ) matrix set( matrix ) matrix set( float ) matrix set( float; float; float; float; float; float; float; float; float; float; float; float; float; float; float; float ) matrix set( int ) matrix set( vector4; vector4; vector4; vector4 ) matrix set( float[] ) matrix set( vector4[] ) matrix[] set( matrix[] ) matrix[] set( float[] ) int set( float ) int set( int ) int[] set( float[] ) int[] set( int[] ) string set( string ) string[] set( string[] ) bsdf set( bsdf ) bsdf[] set( bsdf[] )
  14. 1 point
    Ah, I've not set matrix values manually as you've done before, but looks like its the same as vectors; the {} syntax only works for constant values. If you want to set them based on other variables, use set(): So this: matrix3 mat = {{@N.x, @N.y, @N.z},{@binormal.x, @binormal.y, @binormal.z},{@up.x, @up.y, @up.z}}; becomes this (ie set() each of the internal vectors, and another set() around the whole matrix): matrix3 mat = set(set(@N.x, @N.y, @N.z),set(@binormal.x, @binormal.y, @binormal.z),set(@up.x, @up.y, @up.z)); Then to convert matrix to an orient: @orient = quaternion(mat); That said, it gets wacky results, so you might need to rethink your logic.
  15. 1 point
    This should work too (VEX only): vector min, max; getbbox(min, max); vector center = (min+max)/2;