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

49 Excellent


About galagast

  • Rank

Contact Methods

  • Website URL http://limjeff.wordpress.com

Personal Information

  • Name Jeff Lim
  • Location Philippines

Recent Profile Visitors

3,439 profile views
  1. Thank you for the insightful input guys. I do remember not seeing those group attributes on earlier versions of Houdini. For what I'm working on now, I did end up just converting it to an attribute instead
  2. Looking at the Geometry Spreadsheet. A Group SOP creates an attribute like "group:foo": I can easily access that group "attribute" in a Wrangle like so: i@myvalue = @group_foo; QUESTION: How do I access that group attribute on parameters that requires an attribute name? For example, in a Color SOP's Random from Attribute: Or on a Delete SOP's Filter Expression: Although I know that I could just type the group name on the group field. I'm just curious if there's a way to access the Groups data as "Attributes". Particularly, I'm asking because I want to access Groups as an "Attribute" in the Enable Solver DOP without actually creating an actual attribute to represent the group: Hopefully I'm just missing or forgetting the proper syntax.. P.S. The Enable Solver could use an option where it can check for existing groups. I'll probably send an RFE
  3. I got a python code working (so far). This collects the parameters set by the takes, then transfers those to the Main take. Simply set to a take you want to resolve to main, then run the code. mTake = hou.takes.rootTake() cTake = hou.takes.currentTake() if mTake.name == cTake.name: hou.ui.displayMessage('Please set to a Take other than the \'Main\' take.') else: tParms = cTake.parmTuples() nodes, parms, value = [], [], [] for p in tParms: nodes.append(p.node()) parms.append(p.name()) value.append(p.eval()) hou.takes.setCurrentTake(mTake) for i in range(len(nodes)): nodes[i].parm(parms[i]).set(value[i][0]) Current limitation is that this will not include parent takes. I'll try and add recursion on my next free time.
  4. Neat trick acey! I added a file with 3 samples using attributes/wrangles: 1. Using acey's trick above. 2. Using an attribute to tag primitives faces before being capped. Then using group expression to isolate by the tag id number. 3. Using attribute wrangle, almost similar to acey's method. It reads the primitive count of the tube, then grouping only primitives that has newer primitive numbers. polycap_groups.hiplc
  5. My installation goes like this (Windows 10): Download the latest nightly build. Extract the file to any location. Inside the extracted file, locate the batch file and execute it. A couple of requirements for it to work: Vray License. Compatible version of Houdini (currently 15.5.632). Notes: I also tend to simply ALT+Drag the batch file to my desktop to create a shortcut, and rename it to something that indicates it's a Houdini session with Vray. You can also run through the interim wiki/docs to get you started with usage concepts.
  6. Haha no worries man, I'll just play around this a bit more. I have already learned quite a lot from it. Thank you again EDIT: Setting the up vector to absolute seems to have fixed the flipping. (at line 17) vector up = abs(normalize(cross(dir0,-dir1))); I like that it produces a more sensible result in that the tangents are properly oriented, but it still does not match polyExtrude's version. Using a constant {0,1,0} for up is still a much closer match.
  7. @acey195: A small question regarding your code.. you created an up vector (in line 17), but did not use it elsewhere. I tried replacing line 32 from this: vector tangent = normalize(cross({0,1,0},avDir))/dot; to this: vector tangent = normalize(cross(up,avDir))/dot; But it seems it is not the way to go, as some displacements were flipped. I also tried to compare it against the result of a polyExtrude (with the same amount of displacement/extrusion): It is just a minor thing, it got me curious how polyExtrude does its tangent calculation.
  8. Awesome Twan! These are great! Thank you so much I love that you added handling of open and closed curves. I also just realized that by doing that in primitive mode, you also covered handling of multiple line primitives! Cool! Lastly, on my earlier attempts, I was scratching my head trying to figure out why upon displacing the points, their distances seems to vary.. After looking at your vex code, I noticed that i just had to divide the tangent by the the dot product! >__<
  9. Clever approach eetu!
  10. Hey Marty, thanks for the reply. I did try those before.. but I noticed that it is missing some sort of normalization. As an example, if the "Two Edges" are of equal length, I get the desired result: But if they are not equal: The tangent leans more towards the longest edge. It would be great if the PolyFrame SOP maybe had a checkbox that would normalize the edges. I guess I could try and send an RFE a bit later after getting/hearing more feedback regarding this topic :-) Houdini Indie H15.5.673 avg_tangents_v2.hiplc
  11. I have a curve with a polyFrame SOP set to create tangentv (yellow). But I was hoping that the vectors were averaged (except for the first and last points). So far, I was able to wrangle something, which currently works for what I want (green). I was just wondering if there was a simpler method (just for learning purposes)? Any insights would be very helpful. Thanks! avg_tangents_v1.hiplc
  12. Added short history on prisms from this thread. Added Info for Houdini 4.1 (TouchDesigner was derived from this version) Added a few additional sources on the 2nd post.
  13. I believe the value is 0.2627 * 255 = 66.9885 (or as an integer 67). I also played around the settings a bit, and here are the things that I changed in order to get the same values from the Inspector and the Picker.
  14. @marty: Thanks marty! After looking into your suggestion, I could now use this hscript command to set the focal values: viewtransform Build.panetab1.world.persp1 (focal) 80 Indeed! (in View Mode) CTRL+RMB seems to adjust the Screen Window Size of the View/Camera. (Help card says Zoom Camera Lens). And SHIFT+RMB does Dollying (at a slower rate). @f1480187: Thank you f1, that is also what I was doing. On my post above, I mentioned looking for a way to to adjust FOV without creating a camera.
  15. I can't seem to find the controls to adjust viewport Focal Length/Aperture/FOV. Although if I drop a Camera Object, I could set the values from there. Or alternatively, I could manually adjust them by eye using Shift+RMB, with CTRL+RMB combo.. I'm curious where does one adjust those for the vanilla viewport (without creating a camera). I skimmed through the display options and could not find any relevant parameter.