Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by TomRaynor

  1. Hi, I have a model with UVs laid out from u1_v1 all the way to u10_v1. Multiple textures have been painted for this model, one texture per UV tile. I would like to make a little tool that is effectively a UV quickshade but allows me to access all the different textures for each tile in one node. I have attached a hip which shows a technique I have used in the past to access this UV tile data in the shader and render with multiple uv tiles and only one file input. BUT... Annoyingly I can't see my textures on my model in the viewport. Can anyone tell me how the hell I get opengl to do what I want and get my textures to show up in the viewport in this case? Thanks!
  2. Hi, I'm trying to set up a simple rig that allows me to animate a lattice's points by selecting nurbs curves in the viewport and using them to translate, rotate and scale the lattice points. I want to assign each control curve to four points as in my example scene. I currently have a rig set up where I can dive into sop level and select transform nodes and manipulate them but I would like to not have to do that and use the curves instead. Can anyone point me in the direction of a solution? Thanks in advance! rigTest_v01.hip
  3. Edge divide in vex?

    Is there any way to split a polygon down the middle using vex and something like an attribwrangle in the same way that an edgedivide SOP works? Thanks. edgeDivideInVex.hip
  4. RBD Packed Object Dynamic Constraints

    I'm hoping someone can put me out of my misery... The aim of the game is to create a bunch of glue constraints half way through a simulation of a bunch of RBD packed objects depending on certain test criteria. As you will see in the attached scene, some RBD spheres are being attracted towards goal positions and I am trying to create some constraints between neighbouring RBD spheres within a given radius IF they are within a given distance of their goal. I have got pretty close. In a SOP Solver I have managed to create the constraints using an attribwrangle but whilst the polygon lines connecting the RBD objects look correct, when viewed from withinside the SOP Solver, when I jump out to DOP level and view the guide geometry on the constraints, the red connecting lines don't seem to be going from the center of each sphere to the center of the sphere I want to constrain to. Instead the connection points seem off in space. I'm sure there is a perfectly logical explanation why, but could someone please enlighten me? Thanks! rigidBodyCreateDynamicConstraints_v01.hip
  5. Accessing $YSIZE in attribwrangle

    Hi, What I am trying to do is use an attribwrangle set to loop over primitives to work out the y-size of each primitive on my geometry and store that as a primitive attribute. I am trying to do it using an attribwrangle rather than using a foreach node looping over primitives and using the bbox() expression for speed purposes. Where I am stuck is working out the what to use instead of bbox in my attribwrangle that will give me the y-size of each primitive... Can anyone ofer up any suggestions? (with a snippet of example code preferably) Thanks very much
  6. Accessing $YSIZE in attribwrangle

    That is right on the money! Exactly what I needed, cheers Tomas.
  7. Accessing $YSIZE in attribwrangle

    Well thought was to do something like use the attribwrangle to run over each primitive, and for each of the points in each primitive, find the minimum and maximum P.y values (and hence the range). I guess I would have to store these point positions in an array for each primitive... Stil, I'm hoping that someone is going to pipe up and tell me that I can run a nice vex function to access the bbox information PER PRIMITIVE. What about primitive intrinsic attributes? Do they help me and if so how can I access them?
  8. Hi, I have included a hip file with a few examples of shader based ambient occlusion, each of them slightly different and I was wondering if anyone could tell me what is going on in them...? Example 1: Nothing plugged into AO position or surface normal inputs. So it should use the global variables by the same names. Fine... But what space are the surface position and surface normals in in this case? Camera space? Object space? World space? Example 2: Same as example 1 except that the AO position is using the global variables surface position transformed into object space. Do we need to do this kind of conversion? If so what space should we be converting to? Object or world space? Example 3: Same as example 2 except the unaltered surface normals from the global variables are being passed into the AO surface normal input. Why should this look any different to example 2??? Example 4: Same as example 1 except that the object scope is set to: * ^/obj/EXAMPLE4/torus In my understanding this means that /obj/EXAMPLE4/torus is now not contributing to the occlusion on any object this shader is assigned to. If you look at the result, even surfaces on the torus with normals that are facing away from the grid seem to be occluded by the grid. Is this the expected behaviour? Surely we only want areas on the torus that have normals pointing at the grid to be occluded? How can we do this? Do we need to get a dot product involved or is this somehow built into the occlusion vex node? Can someone clear all this up for me!? Thanks. AO_testing_v01.hip
  9. I'm a bit stuck... Hopefully someone can help. I have a camera that has animation in it's translate and rotate channels and also is following a path object. I am trying to bake out this camera animation (with the curve path motion) onto a fresh new camera. I have no idea how to do this. Any help would be much appreciated! I have attached a scene file showing what I am trying to do. Thanks. bakeCameraAnimation_v01.hip
  10. Baking out camera animation!

    Figured out a way using vtorigin and vrorigin expressions but if anyone has any better ways then let me know. Cheers.
  11. I have two cases. One: A grid being rendered with displacement (an attribute on the geo defining how much the grid is displaced from the centre outwards) Two: The points from the grid only. Trying to displace these in exactly the same way. The damn things won't be displaced at render time. Anyone have any idea why "case1" works and "case2" doesn't? Cheers, Tom displaceOddness_v01.hip
  12. Displace points at render time

    That's great, Thanks.
  13. Displace points at render time

    Cheers for that Petr, very useful! The help card for the point replicate proc says that you have access to the global variables "P", "id" and "pid". It also says: "You can use additional attributes of the points being instanced on. The available attributes are controlled by the Attributes To Copy parameter." I understand this to mean that I can bring ANY attributes on the points into CVEX and use them to do stuff - this part works fine. I am curious if I am able to set other attributes on points in the CVEX shader such as colour? Can I modify the colour in the CVEX shader and have my material pick up that modified colour? I have tried and so far no luck... Thanks again.
  14. I was wondering if anyone had any nice ways to script the saving of a selection of nodes to a clean (new) hip file? a function like hou.saveSelectionToNewHipFile() would be nice Thanks.
  15. Saving selection of nodes to a new hip file

    the opscript and opwrite commands I had considered and I will definitely look into using those. Thanks Petr. Vlad, would you care to share your tool or maybe suggest what method you used? Thanks!
  16. Saving selection of nodes to a new hip file

    I am aware of the first method. Annoyingly the latter was what I was going for. I started off looking for an "Export selection" option under the main houdini "File" menu and was quite surprised when I didn't see one as both Maya and XSI have one.
  17. Calling all shader making wizards... I am trying to make a simple shadow catching material like the shadowMatte material that has the option to be able to toggle on and off "enable self shadows". If this tickbox is on, then each object can cast a shadow on itself. If it is off, then each object cannot cast a shadow on itself. As a bonus it would be great to have something like an "object scope" parameter similar to the occlusion vex node, where I could pass in a list of objects that the shader would use to enable or disable self shadowing. I have attached a file showing where I have got to. This works for enabling or disabling self shadows on a single object but it seems to require one shader per object to work properly if I want to apply the shadow catcher to multiple objects. I would prefer to do this by wiring vops together than writing in vex but whatever works Thanks in advance! shadowCatchingShader_v01.hip
  18. Shadow Catching Material - no self shadows.

    That would be amazingly helpful! Thanks
  19. Shadow Catching Material - no self shadows.

    Hmmm. I have tried plugging a few nodes together and am not getting too far. Are you saying that I can use the fast/filter shadow vops mimic the behaviour of the shadowMatte vop or do I need this vop in my shader network as well. If you get any time to throw together an example scene that would be really helpful, as I am a bit lost at the moment.
  20. vex - removepoint not working

    Anyone have any idea why the removepoint() vex expression doesn't work in the following example? removePointVex_v01.hip
  21. vex - removepoint not working

    Perfect! Thanks for clarifying this Jeff!
  22. vex - removepoint not working

    Really weird. I would have expected it to work the same way with the point wrangle unless I am missing something... I might ask sidefx. Thanks.
  23. Open Color IO

    Does anyone know if Houdini has any support for Open Color IO? http://opencolorio.org/ Cheers.
  24. Open Color IO

    That's really cool Timm, thanks for sharing! Great work.
  25. [Animated Short] Helga

    Hah, love the DIY aspect of it all. Nice one! You've got me wanting to make one now... Thanks for the python script and arduino code. Really interesting post - Look forward to hearing more.