Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Ceee last won the day on May 17 2017

Ceee had the most liked content!

Community Reputation

5 Neutral

About Ceee

  • Rank

Personal Information

  • Name
    Eric W.
  1. Hi Jiri, You can definitively use a global var strategy. # Set Houdini global: value = str('12') name = 'NEW_GLOBAL' hou.hscript('set -g '+name+' = '+value) # Get the value of a global: hou.expandString('$HIP') You can check this for more details and options: http://www.sidefx.com/docs/houdini15.0/hom/hou/hscript http://www.sidefx.com/docs/houdini/commands/set I would usually refrain from having a global store a state of something that can be obtained dynamically. It is better to just check the state of this thing directly and have your code act accordingly. Just a suggestion, before doing all this I would have a look at a display option to help visualize selections. If that does not work for you, than sure, go ahead. A word of warning: you might have to manage the selections do have made. Display Options>Guides>Selection Fill Selection toggle
  2. Small detail in fog simulation

    I would keep it simple. You can definitively achieve this look starting with the wispy smoke shelf tool. Make sure to increase your display 3D texture resolution to see what you are doing. (On the viewport press d for display options, go to texture, set the 3D textures parameters.) I would start with a simple box and use the wispy smoke tool. The look you are going for is very much a natural advection, i.e. temperature based motion. (As opposed to velocity based motion, like rockets or fans, etc.) Buoyancy and cooling rate are going to be important to control the amount of lift of the density. Turbulence is going to have large features. If you get to something you like but the scale is off for your scene, hey, just transform the results up instead of adjusting the sim over and over. (Sorry, this is pretty obvious, but it does happen that we get caught up in the scale of the environment and insist is working in physically correct scales when it would be so easy to just scale everything up and down.) Work with part of the domain first. Either work with a small box and copy more boxes later or just control the domain size directly. There really is no reason to have iterations longer than 5 minutes, at the most. When it comes to resolution, I feel like resolution needs to be earned. There is no point in cranking up the resolution if your shape controls don't provide variation at that level. You will just get more of the same. (Obviously you need to start with a resolution that is meaningful to begin with, needless to say a 10x10 box will never be indicative of anything. But cranking up the resolution to solve the shapes never did me any good... Think like you are mixing colors, work with swatches. Once you have a nice swatch, then sure, increase the resolution and adjust what needs adjusting, pretty soon you will see you are efficiently dialing the sim in a resolution that you can't even afford when you run the sim for the complete domain.) Last thing: I suggest sparse and small sources. The look your going for is defined by the negative spaces just as much as the animation of the density itself. When I say use a box, I mean you can start with a box and use noise (in the fluid source sop) to turn its complete volume into small pockets of density for sources. Or if it is easier to control, scatter a few boxes on a grid and you'll have to adjust the noise less, whatever is more intuitive for you. Think about the size of a cigarette tip in relationship to the shapes its smoke creates. Now think what you would need in the real world to source the fog you want. Keep in mind you the look you what is basically made of several layers of smoke that you are seeing through. You'll see things progress fast. Good luck.
  3. Yes, you are right, it is really to speed up typing. It is just so convenient What people do is: node = hou.node('/obj/rearing_1_fbx/horse_MID1/horse_MID1_deform') and then you can type next: node. and you will see the node objects methods be offered to you. This is a great way to experiment. When coming from other languages it is sometimes useful to keep in mind that in python you are typically given objects (not values). So if you ask for a parm: node.parm('tx') you are getting the parm itself. If you want the value than you would ask for that. parm = node.parm('tx') parm.eval() Houdini's python support is really awesome and intuitive. Hope you enjoy it too.
  4. The basic idea is to retrieve the selected node and set the render flag. (Just for somebody finding this thread and seeing this for the first time, you would go in a shelf and RMB New Tool...) node = hou.selectedNodes()[0] node.setRenderFlag(True) Strictly speaking that is all you need. Now the render flag is a sop node property, objects don't have it. You could do a try except block to handle those exceptions. The other thing you might want later is to set the display flag. Here is what you can do with nodes in general: http://www.sidefx.com/docs/houdini/hom/hou/Node and with sops in particular: http://www.sidefx.com/docs/houdini/hom/hou/SopNode Just want to leave one last friendly reminder to people starting out with python to drag and drop your nodes on the python console. This will give you a node object to experiment with.
  5. Plant Leaves Orient

    Sure, happy it helps.
  6. Plant Leaves Orient

    Hi Mike, this is an alternative approach: Plant_Leaves_orient__xform_packed.hip
  7. hou text highlighting in emacs

    Thank you, Roman!
  8. Hi, Can anybody tell me how to create and set Data/options in a solver derived from SIM_SingleSolver? Have tried pretty much everything I could think of at this point... I can create Data by doing: SIM_Data* myData = SIM_DATA_CREATE(object, "MyData", SIM_EmptyData, 0);[/CODE] but after that, I cannot find a way to get to the options (creating, setting or reading it). I am looking for the HDK equivalent of this functionality in a scriptSolver DOP (Python): [CODE]optionValue = 1 subData = myDopObject.createSubData('MyData', 'SIM_EmptyData') subData.options().setField('myOption', optionValue)[/CODE] Your help is much appreciated!!!
  9. Hi everybody, Can anybody point me to a way of getting text highlighting of the hou module while using emacs as an external text editor? Thank you!!!