Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Everything posted by JKeil

  1. Hey All, What is the most straightforward way to bend a line (object 1) towards a point (object 2) animating in space. Id like to do this on a point level if possible. I already have a rudimentary setup-but it is not working perfectly. Currently I am using a bend sop, and then simply specifiying the Goal direction as the second object. Fur such a rudimentary approach it works rather well. The problem is it is not 100% accurate. The last point in the line does not always point directly at the point in space. Im getting the sense that if I really want the object to bend towards the point perfectly, I might need to use some matrix rotations on a point level (using a for loop) --but that is beyond my skill at this point. Any suggestions? Thanks! Ive attached a file bend_follow_line_upl.hipnc
  2. Made some progress Did some quick wrangling, trig, and a bit of matrix math. Repurposed some code from a post that I found a while ago. Many thanks f1480187! Still working out some kinks- bend line_upl.hipnc
  3. Hello all, I am sending some geometry pieces back to the origin to do some manipulation. Im using a for loop, and within the loop Ive at least managed to move each piece back to the center. The issue is rotation. I want the objects existing normals "N" to be flush with the x axis while working, and the objects 'up' vector to be flush with Y axis {0,1,0}. I know I can use the arccos(dot(up, up2) function to get the angle I need, (and have done so), my issue is I cant figure out how to rotate the pieces accordingly. So basically--object incorrectly rotated at center-- its existing Normals should face towards +x {1,0,0}, and its "up" vector should face towards {0,1,0}. After work is done, Id like to be able to send the piece back to where it came from, but am a bit stuck. Thanks for the help!!! rotation_reset_at_origin.hipnc
  4. Thanks Tomas!-- a much more straightforward method than I was conjuring up. Solved!
  5. Hey, So I have made some progress. I found way to orient the object the way I desired within the loop for work purposes. Working on the setup for transferring the rotations back when the time comes now. now. Let me know if you have any suggestions all! rotation_update_01.hipnc
  6. EDIT: I figured out a way to do this: I you generate the group prior to the loop the iterations will merge with each pass .
  7. Hello all, I am trying to grow a selection on a geo group with each loop iteration. I am using a feedback loop rather than a merge each iteration method because I dont want the geo itself to be accumulated, just the values within the groups. Any help with this? If you turn on single pass in the scene file, you can see the point groups I am trying to create on a per loop basis. Id like to have one group or one attribute made up of all these values once the loop iterations are finished, if possible. Ive attached a scene file. Thanks! loop_help.hipnc
  8. Thanks Tomas, I realize now that the workflow wasn't necessarily that clean. The goal was to basically split a geo apart,and then upon reconstruction of the geo, have the all the primitives be exactly the same----no matter what sort of tomfoolery I applied to them. But this now seems like a pointless goal- my setups are working fine without it. Storing the original prim nums in an attribute has been helpful as well. Thanks!
  9. Hey all-- Is there a way to fuse points on a geo without changing the primitive numbers? By default, the facet and fuse both reset the prim values and start them all at one. Ideally, Id actually like to retain the original prim numbers through the operation. Ive attached a file. Thank you! fuse_v001.hipnc
  10. Hello All, This is a bit of a general advice question so bear with me here. I have a 'creature' I have designed on a point and sop level (see attached--pics as well). It is similar to a sea worm, its entire outer portions are undulating over time. I did the entire animation set up on the point level. To create a single mesh I converted the entire thing into a vdb at the end of the network, smoothed it, and then converted it back to polygons again. Ive attached a base model without the head or tail assets for your perusal. Now I have to set up a shading and texturing workflow, and I was hoping you could point me in the right direction. The art director is going to want to eventually have pretty precise control over the look of the creature so I am not sure procedural shaders are going to be enough. The creature has skin that is changing over time--not drastically, but it is still changing, and the deformation along the edges is enough to make we worry a bit about the uvs. Plus, if I want to make multiple iterations of the creature, animating differently across other curves, Ive essentially negated all the efforts I made in the first place to make this procedural if I do go the UV route for one hero asset! --each vdb to polygon conversion will generate a new mesh every single time I make a change somewhere up above in my network.......... My question is this then, what would you do to texture this creature? I understand this is a bit vague--and there are a lot of variables and questions I havent answered, but just drop of a hat, with a look at the model, would you go with procedural shaders, or does it make more sense to just lay out the UVs on a rest frame, and texture it traditionally? To make this more specific Ill create an arbitrary scenario. Client looks at the creature and requests less undulation, and larger flaps. Easy enough to adjust on the Houdini end if you look at the way I built it. However, this means creature shape changes, and the mesh changes. If the object was textured elsewhere with uvs, we have to redo the textures in Mari. If we could somehow keep the textures in Houdini, this back and forth might be alleviated. Okay, next step, creature gets approved, now they want six of the creatures, each with slightly different coloring and undulation speed, moving along a series of loosely related curves. Easy enough to change the animations and make some subtle changes in shape because Houdini is awesome! But then the texturing and shaders are the elephant in the room again. I hope this is not too vague, but Im just looking for general suggestions not complete solutions as I am a bit new to the shading and texturing in Houdini. Its a bit interesting to me-- I like using Houdini VDbs, but usually because they are used for simulations procedural shaders are the best solution---that MIGHT not be the case here. And if you think I might have to rethink my work flow too that is something I am by no means opposed to either. Looking for a bit of help! Thanks! wavy_littleguy_v002.hipnc
  11. UPDATE-- it seems like there is a fairly easy way around this. All you really need the chops network for is to perform operations on the angle, as opposed to the vectors by the angle. You can then just kick out the angle and apply the quaternion rotation within a wrangle or a vop as you prefer! See new scene file wavyguy_testing3.hipnc
  12. Hey all, Simple goal here, trying to rotate a vector (@N) around another (v@cross) in chops within a wrangle. Im not sure what I am doing wrong. Ideally I would like to import two vectors into the chop network-- @N and v@cross, rotate N by Cross, and then bring the updated N vectors back into sops using a channel sop. I've attached a file. Thanks in advance! Edit: I should point out I am trying to use quaternion rotations I found this thread on the sidefx forums but havent been able to implement the attribute create method as was suggested https://www.sidefx.com/forum/topic/31300/?page=1#post-145135 chops_rot_test_update.hipnc
  13. Texturing Workflow Help

    Ah I see. Best of luck to you! Just to stress again, do check out that first thread for some help!
  14. Texturing Workflow Help

    Kiryha, as to your question, Being completely honest, I personally would approach this with procedural shading rather than a uv approach. Uvs would be too static to look convincing as the tree grows--unless you are trying to animate textures themselves, in which case you might as well be driving this within the shader, and then using masks to 'art direct' the look of the bark along the surface. I am not an expert by any means though so take what I say with a grain of salt. check out this thread. There is a lot of useful info in there on how to approach growth within houdini general. Simon Fielder has great videos on volume trails that can also be used to generate tree like structures procedrually. Try something like that, than start getting crazy with noises and you might get a satisfying result without uvs. Youll notice that the uv based options even within that thread are a bit limited but might work. Hope this helps! here are a few picks of things ive rendering using Simon Fielders approaches Hope this helps! volumetrails_1920X1080_SRGB.tiff particles_01_1920X1080_SRGB.tiff mesh__1920X1080_SRGB.tiff
  15. Texturing Workflow Help

    Thanks for the help Dave. As of now I am trying to work through what you said and come to a solution. Now based on my understanding of what you are saying, I may or may not have a fundamental problem, because at this point my model is built off of the animation itself. I will say that the number of polygons and points on my model even now is NOT changing over time, which seems to be at least half the battle. Might be a bit of overkill but I've attached a series of pictures that show the progression of how the 'character' is being generated so you can critique the workflow if you have the time? It seems to me that I that could follow your suggestion to separate the animation from model in two ways. 1) I could continue as I have been but with a few modifications- I need a rest frame of some kind--similar to a tpose, but perhaps I dont need to build a model first separately to do this? Lets say I have a frame where the character is not animating, the wings are not bent and the curve the body is moving along is flat. This could stand as my rest pose. This could be the point where I lay out my uvs if need (as you say might want to restrict the uv workflow to a nonchanging hero version), but must importantly generate the vertex attributes that should stay the same through the animation regardless of deformation. I just need to make sure this is no recalculation of vertices or uvs over time. Correct? The alternative. A more traditional rig. The model is build in sops, but then the rig itself is built in chops and bound to the character afterwards. Only issue in that case is I would have to learn how to rig traditionally in houdini, which at this point is daunting , but I am not opposed to if need be. Looking forward to hearing back. Thanks!
  16. Hello! Can a point wrangle access sop attribute values not directly connected as inputs? The function in question is the point function. Scenario: I am driving the y position of an object "grid1" by the length attribute of sop "seg_length_height" Right now I am using point("../seg_length_height", 1, "length", 0) and putting this in the translate y scale of a transform sop. I would like to do this in a wrangle So I tried to copy and paste this into a point wrangle with a few modifications and it did not work. @P.y = point("../seg_length_height", "length", 1); If I do the following it of course works @P.y = point(1, "length", 0); provided the "seg_length_height" is hooked into the second input. Is this just the way the wrangle is set up? or am I referencing the oppath incorrectly? Thanks! modeling11_upl.hipnc
  17. Thanks Noobini. Perhaps in part----the issue is I still need manual control over each point position--with a simple p scale rig ch rig added on to your solution, I have some control, but it is not precise. I would need to be able to specify that floor one sits at 25meters, floor 2 at 34 floor 3 at 36. All the way up to 60 floors if need be. It would be a lot easier if the floor heights were consistent, but they are not. Here is the thing--if Im building all these buildings myself, it would be okay really, the majority of the buildings are below ten stories. But I wont have the digital asset setup the way it is requested if I cant generate as many floors, and their differing heights on the fly as is desired.......
  18. Hello! Is it possible to have a digital asset that generates a series of nodes within the subnetwork based on user input, and merges the nodes into the final output? This would be an example asset-- Generate a user specified number of add sops, with one point each, each connected to an attribute wrangle, and then merged into a final output. Within each wrangle would be the following code snippet: @P.y = ch('point_1_ypos'). If there were three add sops, then there would be three wrangles with the following code @P.y = ch('point_1_ypos'). P.y = ch('point_2_ypos'). @P.y = ch('point_3_ypos'). Then they would be merged into an ouput. The channels would be promoted up to the digital asset level for quick access. To do this manually I would just add a series of add nodes, append a point wrangle to each, and then set a quick wrangle up with the following @P.y = ch('point_1_ypos'). @P.y = ch('point_2_ypos'). @P.y = ch('point_3_ypos'). And then do this over and over. Id like automate this a bit if possible. Any suggestions would be awesome! Thank you! -i know in this case the channel name wouldnt matter, but in a digital asset Im pretty sure it would. The goal here if your curious, is being able to quickly dictate the number of floors and their heights for parametric building creation. Ive created a really simple manual setup file for your perusal. Many thanks! Im really inexperienced with digital asset creation, and I understand that this might be a difficult task. Any tips on where to start would be appreciated-- i am a bit familiar with python as well, and know a decent amount of vex. Asset_test.hipnc
  19. Edit-- Noobini realized you posted a loop solution while I was working on it myself.
  20. Hello! There are few specific objects on a model I was inspired by that I want to recreate in houdini procedrually (see pic). Im stuck at the moment. I need a way to generate a series of primitive groups on a tube procedurally, and then apply the same poly extrude to each group. Seems like a classic case of looping. One group would be primitives 0-23, next would be 24 to 47, etc ,etc. but I dont know how to generate this groups. My thought is using a rule in the partition sop--but how would I set a rule such that it concatenates and generates pieces for every 23 primitives? This value (23) will change by the way, and is dependent on the number of rows in the circle sop I am sweeping along the curve (see pic). This means I would also need this value 23 to be linked via channel to the circle sop within this procedure. Hopefully this isnt confusing. Please see attached. Many thanks! NOTE: As an aside I did find a bizarre way around this--the setup is in the file. I realized that when Houdini does a poly extrusion, the new polys are added onto the geo before the original primitive (structurally speaking). All this means is if you set your group to say primitives 0-22, and perform an extrusion, you can just duplicate this node multiple times and get a series of organized poly extrusions along the length of your object, without changing that 0-22 value. Bizarre, awesome, but still REALLY redundant, which is why id like to set up a loop structure. Thanks again Modeling5_upl.hipnc
  21. Many thanks Noobini. I used your partition sop, then a name sop to transfer the groups to an attribute value. Then I looped through this 'polyext' attribute. Ive attached the file and a pick in case it will help anybody else. Modeling5_v002.hipnc
  22. Hello all, I am trying to remove prims by an attribute value, here prim attr area. I understand you can do this with a blast, a delete, or a primitive wrangle. I have tried all the methods, decided on the primitive wrangle, and for some reason I cannot delete by the attribute @area (calculated in a measure sop), unless the condition is @area == 0, which is not what I want. Code is really simple, Im just confused as hell as to why it wont actually work. I have a primitive @area attribute then run the following if(@area < .1) removeprim(geoself(), @primnum, 1); What gives? Please check scene file if you can! I have used this setup in the past successfully, it doesnt seem to be working here. Many thanks! Modeling_03_Projection_upl.hipnc
  23. As you just said, I now realize that the problem wasnt as much the approach as the values. The number value I needed was very specific. After the zero value faces were deleted, I needed a number slightly less then the maximum as a filter: too far below the value and I would have no result simply because the areas of the primitives were all fairly close value wise to the maximum). Slightly above the maximum and I would obviously have no primitives left at all! I added a channel to replace the /2. In the future, I will utilize the min or max field set up you have here--and include braces . Many thanks for your help! Ive attached the result and a pic-- I used this setup to then apply a geo setup along the uvs of another geo--inspired by the entagma fabric tutorial Modeling_03_Projection_pul.hipnc
  24. Thanks ikoon-- reinforces the idea of being able to at least delete prim values set to 0. I just dont understand why I cant delete by a range of values more arbitrarily-- why would I have to specify a value that already exists within the attribute? This value might change depending on parameters