Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Ceee

Members
  • Content count

    9
  • Joined

  • Last visited

  • Days Won

    2

Community Reputation

5 Neutral

About Ceee

  • Rank
    Peon

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. 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. Sure, happy it helps.
  6. Hi Mike, this is an alternative approach: Plant_Leaves_orient__xform_packed.hip
  7. 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!!!