Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Skybar last won the day on April 14

Skybar had the most liked content!

Community Reputation

296 Excellent

1 Follower

About Skybar

  • Rank
    Grand Master
  • Birthday 11/28/1991

Personal Information

  • Name
  • Location

Recent Profile Visitors

8,067 profile views
  1. cluster constraint

    You can set up constraints pretty easy with RBD Cluster SOP and RBD Constraint Properties SOP. If you switch the Cluster Type on RBD Cluster to "Group Constraints" it sets up groups for you, so you can have different constraints for the clusters and between clusters for example.
  2. Tab Menu

    I usually just press tab twice, to close and open a new one. It's kinda quick.
  3. From 9 primitives to 1 primitive

    Yeah kinda depends what you are referring to specifically. Polysoup or packing will turn it into 1 prim.
  4. [SOLVED] Normals point away

    Why? If you check the geometry spreadsheet, a point at the origin will have P = (0, 0, 0). A point further away from origin might have (2, 0, 5), which is a larger value. If you use P as a direction vector (without normalizing), a point further away from origin will have a longer vector. Say your A vector is (0, 1, 0). This is a constant number, and the same for all points. You add this to a point at origin (0, 0, 0), and your N will point straight up (0, 0, 0) + (0, 1, 0). If you add A to something further away, it will get (0, 1, 0) + (2, 0, 5). So that point will get an N that isnt pointing up. In your code in the first post I think you want to do this: @N = normalize(a+normalize(@P));
  5. Everything falls in the same speed in a vacuum regardless of size or mass. Try apply some drag.
  6. fake fire rnd

    Hey thanks for sharing, this is great! I have a question: in the dopnet this vop "gasturbulence_with_normalize_vel/add_forcvel_temp_to_vel" you are binding 'forcevel_temp' as a float even though it is a vector. Is there a purpose for this or just a mistake?
  7. Mouse causing hand wrist pain

    Definitely go for a wacom. I've exclusively used a wacom for houdini for a many years now and it's just wonderful, and it's a lot faster getting around and laying down nodes than with a mouse ontop of being ergonomic. If I only have a mouse I can barely get anything done and it's just tedious, I don't know how you people do it. Get a wacom.
  8. Well what you get from a POP simulation is not a particle system. If you middle-click you can see that its just points basically. When you "Add Particle System" on those points you do get a primitive and an actual particle system, so the points will belong to this primitive. I think this particle system thing is a bit legacy from the old POP system before it was moved into DOPs, it's not really used for anything else that I know of.
  9. (Animated) dashed line?

    Create a line, resample it and delete every second segment?
  10. The geometry light doesnt need geometry per se, but it does need a primitive. So instead of copying geometry to the points, you can use Add SOP and turn on "Add Particle System" and geo light should work fine. The size and color can also be controlled per-particle with pscale and Cd which is useful too.
  11. Assign volume shader at SOP level

    I dont know why, but if you pack the box before applying the material it works.
  12. not sure what that refers to specifically but in vex it is i@group_foo = 1;
  13. Od Studios launch

    Cool good luck! Will you be running Houdini at all?
  14. Put an Ends SOP before your polyframe and set 'close u' to "unroll", essentially converting your geo to a curve. Then put another Ends SOP after the polyframe and set 'close u' to "close" to close the polygon again.
  15. Yeah, not sure about the technical terms but vex will only create geometry/modify attributes at the end of the code execution. vector thePos = point(0, "P", 0); // Input point's pos is {0,0,0} thePos += {1,2,3}; setpointattrib(0, "P", 0, thePos); thePos = point(0, "P", 0); printf("%d ", thePos); // Prints {0,0,0} instead of {1,2,3} Here you first set 'thePos' to the incoming P. You then add some values to it, and set P to be this new value. You then overwrite 'thePos' with the incoming P again, mind you the code execution isn't done yet so this will still be the original position.