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.


  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

83 Excellent

About acey195

  • Rank
  • Birthday 01/10/1991

Contact Methods

  • Website URL http://www.twandegraaf.nl/

Personal Information

  • Name Twan
  • Location France

Recent Profile Visitors

5,557 profile views
  1. You can already collapse them if you put them in a netbox (the most left icon in the group of 4, that contains the subnet, at the top of the network view), next to the sticky icon
  2. The best solution depends on what you need in terms of self-intersection-detection. If you do not care about self intersection you have options: -the Sweep SOP -the Polywire SOP -using your curves as profiles for a polyExtrude If you do care about self-intersection you may need to clean up the curves a bit, using the "Intersection Stitch" SOP for instance (talking about H16 here) -after that you could still use the Polywire SOP with maybe a better result -you may be able to use the PolyExpand2D (but to do that you will have to flatten your curves to P.y = 0; and raise them again after the operation) -finally (a guy I know :P) made this: https://www.orbolt.com/asset/Twan_de_Graaf::TdG_2D_Polywire its bascially an older-less-fancy implementation of PolyExpand2D, likely more stable
  3. I generally do like what they did with the group nodes though, making it more consistent with normal attributes. And you gain a bit of performance if you need to do less than 4 operations on a single old group node. If you create an empty group by pattern, extend a group by edge, remove some points with the help of other groups in the combine tab, and remove another group in the delete tab at the same time... Then the old group node is faster (than having them as 4 separate, of the new nodes) I can imagine the same goes for the copy sops. Also "duplicate" and "copy and transform" are now both in the tab menu, but create the same node type. I guess for legacy..
  4. Or you know, use the chi() function instead of the ch() there is a whole category of functions also including: chf(): if you are really sure its a float chs(): if you want to read it directly as a string. chv(): for vectors chramp(): for ramps.
  5. Group nodes now have been separated, per tab, more or less in the same way as the set of attribute SOPs (which gives better performance if you only use 1 option in a group node) Copy has a couple of variations now, choose whether you need stamping functionality or not, or if you just want to do more simple copying on points. Or use the "Copy and Transform" node like the old duplicate (upon further inspection you realize both exist in the tab menu, but they create the same node )
  6. yeah its tiny and easy to miss
  7. simply remove the $F and manually type in the number that you need, or go to the file browser and uncheck the checkbox that shows your file names as numbered series, and select the file that you want again.
  8. Alternatively you can put it in a for loop and directly parameter reference the displacement for every primitive or every value. In the long term you probably want to avoid using forloops for this kind of purpose though.
  9. Ahh well I am pretty sure poly extrude like you have implemented it, does even support the use of local attributes. You may need to extrude it by a static value and then do the variation in displacement afterwards using other nodes/wrangles.
  10. it depends on how you are controlling the translation. if you are using local variables like: $TRANSLATION you need to make sure that local attribute is actually transferred with the attrib transfer. the best way to enforce this is by adding an attributecreate SOP on the left side of the attrib transfer with the same attribute name.
  11. If you are in running in any mode other than detail mode, the entities do not know about what is processed on the other entities. I personally like to think of VEX per points or primitives, as a shader language, as it uses a lot of the same logic. In detail mode, you can basically treat it as most other languages, Java would be a language that is one of the most close to VEX I think. So if you want have your wrangle do operations based on iterative results of the different objects (points/primitives) you either need to put the wrangle in a forloop, use detail mode instead, or revise you logic, so it would be compatible with "shading-logic"
  12. for reference: @Cd = {1,0,0}; only affects the point itself (that it is currently processing) So it would apply the "sun" color to the "sun", one time for every point found, but since it is the same color, that would be hard to see of course.
  13. Yeah I also was unaware of it, lol... I guess if you are really patient it will give you the tooltip when you hover your mouse over a function long enough.. but aint nobody goh time fo dah, imma right ?
  14. I also tend to use the built-in editor for those reasons. Usually I'll have the documentation open in chrome/firefox on a secondary screen; Usually I just need: http://www.sidefx.com/docs/houdini15.5/vex/functions/ and then just use the browser's ctrl+f to find stuff Using a wrangle and editing the code using alt+e works reasonably well enough I suppose. The function names themselves already have auto-completion suggestions. the only real thing that would be really nice to have, would be a preview of the variable overflows as soon as you type "(" after a function call, or something to that effect. For example, you could get the stuff below after you type "vertexattrib(" type vertexattrib(string geometry, string attribute_name, int linearvertex, int &success) type vertexattrib(int opinput, string attribute_name, int linearvertex, int &success)
  15. hmm if it is a camera "gimbal lock"-like issue, usually I try to rotate my camera upside down with shift+mousedrag or alt+mousedrag and then upright again with the other (alt or shift) or something else to that effect.