Jump to content


Popular Content

Showing most liked content since 07/16/2019 in all areas

  1. 2 points
    Using the "Planar Patch From Curves" gives really nice results. Leaf_v0103.hiplc
  2. 2 points
    alternatively just append Repack SOP after native Assemble SOP and check Repack Packed Fragments
  3. 2 points
    Hey folks, proud to present LYNX Tools, a collection of production proven open source tools to accelerate your workflows! All mentioned tools are free to download via the links below and are licensed with a full HoudiniFX license. All Houdini Assets have complete Houdini native documentation available. Repository: https://github.com/LucaScheller/VFX-LYNX Lastest stable release: https://github.com/LucaScheller/VFX-LYNX/releases Please give them a test drive, so we can improve them further Roadmap | https://trello.com/b/f8Pgip7s/lynxpipeline So far there are three tools: LYNX_force_general | Tweak your sims with this all purpose & intuitive force field. Built to mimic force fields in other DCC applications, but with support for more features and a natural Houdini user experience. https://www.lucascheller.de/vfx/2019/03/24/vfx-lynx-houdini-force-general-asset/ LYNX_fabric | Create fabric/weave patterns with ease. Perfect for creating that holiday sweater you never wanted. https://www.lucascheller.de/vfx/2019/03/16/vfx-lynx-houdini-fabric-asset/ LYNX_velocity | Get control of your velocities via an intuitive UI or groom them for absolute fine tuned control. https://www.lucascheller.de/vfx/2018/11/01/vfx-lynx-houdini-velocity-asset/ More info on my website: https://www.lucascheller.de/blog/ Houdini User Group Munich Presentation: https://vimeo.com/334887452
  4. 2 points
    Hey guys, just a quick update on the tools: All Houdini Assets now have complete Houdini native documentation available. LYNX_fabric has a new LYNX_fabric_color node to control the color/Alpha/width attributes in a layered based fashion. LYNX_fabric_resample (LYNX_fabric_thread uses this heavily) is up to 10 times faster & LYNX_fabric_weave up to 70% Full install instructions are now available on GitHub . The download is now also only via Github and not via my website anymore. Various bug fixes & performance improvements on LYNX_force_general, LYNX_fabric, LYNX_velocity.
  5. 2 points
    I have posted a RFE which is now implemented. Thanks SideFX UV Relaxation of existing UV islands is now a feature of the UV Flatten node when "Preserve Seams" and "Preserve Layout" is turned on in Houdini 17.5.319.
  6. 2 points
    Thanks Aslak! Your tool did pop up already when trying to find an answer, I'll give it a try I did by accident find the solution, little button to switch to a images, then you can "shift + LMB drag" to sample an area. Doc's for other people interested: https://www.sidefx.com/docs/houdini/ref/windows/coloreditor.html#image
  7. 1 point
    1. Integrate Solids++ library 2. Improve viewport render - AA, AO, PBR, etc. 3. More polygon tools
  8. 1 point
    Check out the cloth+pyro.hipnc, at this link. It demonstrates how to achieve lift in cloth (not vellum) by making it responsive to the temperature field of a pyro simulation.
  9. 1 point
  10. 1 point
    add a peak after the tube, this is to 'inflate' the tube a tiny bit, then feed that into the creep
  11. 1 point
    Because today was another day where I went nuts trying to figure out retiming to be 'right', I now took a bit of time to build this retimer, which works a bit more intuitively. It works via a solver - so now you can animate the speed of the input, like in Premiere, and the output duration essentially gets stretched and squashed automatically. Because the solver is simply a recursive calculation, the solving is instant - when you re-animate the input time, just hit "Reset Simulation" and you're good. Maybe it's useful to somebody! Here it is for download: retime_solver.hdanc (H17.5) (While it's just a non-commercial asset, it can easily be rebuilt in a couple of minutes. The groundwork is done. All the best, Martin PS: I also added a fun-toggle, where you can tweak your retime with spinning test-geo in case you have heavy input geo! (... which we always do, right?)
  12. 1 point
    Try Alembic then! if you import in Houdini you will have a Alembic Xform Node that should hold all the pivot information you need.
  13. 1 point
    Hi I'm not sure about you problem as FBX import usually give the correct pivot. I try it (from an older version of maya), and I get the correct pivot. See the attached file. The pivot of pCube1 is on the top left corner. Normally you should see at the bottom of the geometry transform tab, the pivot offset parameters. These settings are not normally usually visible, they are added when importing FBX. But you can access it or add them from "Edit parameter interface". I also added a box, where I added the rotate offset (but in the transform tab to make it more visible), and move the pivot to the left side. If you want to use these "not centered" pivots at the sop level you have to use several transform node to recreate the transformation sequence. hope this helps Box pivot.zip
  14. 1 point
    If you want something more visual you could always use the Mops Fall-offs or I believe in 17.5 H also add it a falloff node, which in my opinion isn't that great or you also have Lynx by Luca https://www.motionoperators.com/
  15. 1 point
    Thank you very much, guys The Planar Patch from Curves was exactly what I was looking for in the beginning although Fred's example gave me some great insides! Still a lot of work to make it good but its going were i want Leaf_v0111.hip
  16. 1 point
  17. 1 point
    I was playing around with an RBD domino setup and extended it to accept a graphics based image (i.e. logo) for input. The Trace node converts the image to the outline of the logo, which is connected to a CopyToPoints, to setup the dominoes. ap_logo_dominoes_071819.hiplc
  18. 1 point
    Triangulate2D node can get you started, then you can play around with remeshing or poly reduce. ap_Leaf_v0102.hiplc
  19. 1 point
    Turn the particles into fuel in order to trigger burn in your pyro sim. I think that would be done through rasterize particle SOP.
  20. 1 point
    Thats great! Going to use that, thanks for sharing your findings The techie tool is not my creation though, just really like it. Forgot to upload the little asset I created. attached it here. avg_color.hiplc
  21. 1 point
    We are only able to consider applications sent directly through our website. Please apply here: www.lumapictures.com/careers The Texture/Look Dev Artist is responsible for the creation of textures and shaders for CG creatures, characters, hard-surfaced and organic models to the highest quality possible. You can: Facilitate the creation of high quality displacement and normal texture maps prior to publishing to ensure consistency Design and write Arnold and Katana shaders to create the look desired by the client or VFX Supervisor Work closely with the Modeling and Lighting teams to ensure all textures/shaders are both technically aesthetically sound Generate and edit UVs Research and build your own reference library as well as contribute to the studio's reference database You have: At least five years of experience as a Texture Artist/Look Dev in a VFX Production environment A Bachelor's degree in computer science, computer graphics or the equivalent combination of education and experience A mastery of Mari, Photoshop, Substance Painter, Maya, Arnold and Katana Mudbox, ZBrush knowledge is a plus A technical understanding of color space A cultivated aesthetic sense and a keen eye for detail A traditional arts background is preferred but not required An inherent understanding of plate and image based lighting as well as full CG lighting Basic compositing skills in Nuke TD skills are beneficial An understanding of multi-pass rendering and 3D scene layout Experience as a Modeler is preferred but not required Strong communication and organizational skills An approachable, proactive, and accommodating attitude An innate desire to stay informed of current technologies Strong time management skills and the ability to balance priorities under the pressure of a deadline-driven production A team oriented mentality with a 'get it done' attitude An ability to thrive in a high-pressure environment An ability to take direction and implement feedback with a positive attitude
  22. 1 point
    Hello Everyone, We're HONORED to present a brand new workshop called "MASTERING THE ART OF MAGICAL FX IN HOUDINI" created by JAYDEN PATERSON. Jayden started his career as an animator and after 7 years of working in the industry he migrated to work as an FX artist where we was able to achieve some of most iconic FX shots. Jayden is currently working as Lead FX Artist at Axis Animation. https://www.youtube.com/watch?v=5egQ2BIVJB4 One of our rebelway goals is to provide a complete education to our students on how to use Houdini and master all it's techniques aspects and we think we have covered this area quite well. The NEXT goal is to start teaching the Art side of things which is rarely talked about and one of the best fx artists out there are the ones who have strong animation background and even better if they have worked full time as animator and jayden is one of them.During this workshop Jayden will cover various fx animation concept that every artists should master while creating complex visuals and shares some of the best techniques his using to create awesome FX. SEATS ARE LIMITED! https://rebelway.net/mastering-the-art-of-magical-fx-in-houdini/ Students who took houdini for fx artists workshop will get $100 discount Students who took any rebelway workshop will get $50 discount. We hope that you guys like this. Regards Saber
  23. 1 point
    Hi, I took a shot at this, threw up a scene to show you what I found to work. What I have done is, 1. Put the particles I want in flip into a group "particles" 2. Delete the particles the next solve step. 3. Import the pop particles in a sopnet delete everything but the "particles" 4. Use that sopnet for importing to flip. Hope that helps pop_to_flip.hiplc
  24. 1 point
    Popnet with particles moving along surface, with some noises.
  25. 1 point
    For now I have achieved some similar things but I want to learn more. How could we achieve something similar without a lot of experience and without a team of 10 people? Here is the file with some organic lines deforming, I'm sure we can get something interesting! Lines_growth_03.hiplc
  26. 1 point
    Hi Jorb, there are four detail intrinsic, as in the attached image ... which store what you need. You can access these intrinsic attributes with python or VEX. With VEX, you can access them like this: s[]@pointattributes = detailintrinsic(0,"pointattributes");
  27. 1 point
    vector min; vector max; getbbox(min,max); v@bbox_min = min; v@bbox_max = max; //or as array containing both v[]@bbox = array(min, max);
  28. 1 point
    My two cents, I raised my desk, lean my chair back and lower it, so that my arms lay on the desk and there is no bend to my wrist. I can work many continuous hours this way.
  29. 1 point
    The snippet parm in the Wrangle is a String Parm, Multi-line String, and it has a tag named "editorlines". That tag is set to 8-30, so the maximum displayed lines is 30. It is a "factory" default, and that Attribute Wrangle HDA definition is in the Houdini installation directory. You could probably redefine that factory HDA (my terminology here is probably incorrect) by right clicking on the node and then "Type Properties..." and saving to another library, which will override the factory one. For me it is a thin ice, I don't want to do it Just for an illustration, I just I duplicated the Parm interface and set bigger "editorlines" in a spare parameter:
  30. 1 point
    I'd like to share a project I have been on for the last 3 weeks as the sole creator. All CG work was done in Houdini, Redshift, and Nuke. Some minor work was also done in PS and AE. Shoutout to the Gridmarkets team for the support and helping me meet this tight deadline! Feedback/criticism is welcome. https://vimeo.com/346944545
  31. 1 point
    Better tools for direct modeling like in Maya.
  32. 1 point
    the box that i made from an instance point actually had an orientation, its defined by the @N = {1,0,0}, and @pivot, with this you can do something like that video, apart from the resize timing. can't share the file for this, but like i said apart from the timing, thats all you need. mine is a little different since im creating the boxes at rest field solves, so i can plant a noise later.
  33. 1 point
    animating restlength is the way to go, but you can't animate it in SOPs as that will not be reflected in DOPs so you either animate Rest Length Scale using Vellum Constraint Property DOP or if it's not just curve (rope), but actual ribbon band like in the video then you can use Vellum Rest Blend DOP to blend towards shrunken version, that will update rest lengths accordingly and result in contracting
  34. 1 point
    Yes, you want the Vellum Rest Blend DOP, which you can point at an external SOP that animates your rest geometry. It will update the rest state of a specific set of constraints based on the input Rest geometry. With 17.5 there is a help example for Vellum Rest Blend SOP that shows some uses of it. Attached is an example of lengthening hair curves over time. Note the rest topology has to match the original geometry, i.e. you can't add points, but you can transform them in various ways. grow_hair.hip
  35. 1 point
    Divergence isn't adding or subtracting density... it's a property that's automatically computed by the Gas Project Non Divergent microsolver inside the Pyro solver. It represents areas where the velocity field is collapsing or expanding, which is generally a no-no when you're trying to simulate incompressible fluids. The microsolver does some complicated wizardry to remove the divergence from the velocity field, which gets you that characteristic swirly motion you expect. That microsolver also has the option to provide a "goal" divergence field, which allows the user to define areas where they actually want the gas to expand or contract. If you create a scalar field named "divergence" and source it into your sim, positive areas will expand and negative areas will contract.
  36. 1 point
    It refers to different density - density of the fluid like air or water is assumed to be more or less constant, however in sims divergence affects how much the fluid compresses or expands which can be linked to temperature or other fields to achieve more realistic results of "changing" density of the fluid - but density field in pyro doesn't represent density of the fluid. It is more like density of the solid matter suspended in the fluid, that is observed as smoke As regardless of whether you have nonzero density field or not, you can solve for fluid motion
  37. 1 point
    I pared the scene right back and rebuilt it using stuff I learned at the start of the year, its behaving as expected now I think. constrain_to_animated_anchors_matts_soft_rotation.hipnc
  38. 1 point
  39. 1 point
    Extracting the rotation this way worked great. Thank you. Here's the vex code in case someone is looking to something similar, note that the intrinsic attribute is a 3x3 matrix with only the rotation and scale, just ignore the last row and column from the examples above. matrix3 m = primintrinsic(0, "transform", @ptnum); // extract scale float s[]; for(int i=0; i<3; i++) { vector r = set( getcomp(m, 0, i), getcomp(m, 1, i), getcomp(m, 2, i) ); s[i] = length( r ); } // extract rotation for(int row=0; row<3; row++) for(int col=0; col<3; col++) { float val = getcomp(m, row, col); setcomp(m, val/s[col], row, col); } float scale = 0.5; matrix3 mm = ident(); scale(mm, set(scale, scale, scale)); mm*=m; setprimintrinsic(0, "transform", @ptnum, mm, "set");
  40. 1 point
    in general you do not want to do an equal tests on floats (other than for 0 maybe) I would suggest doing: if(abs(ptu - t_start) < 0.0001) //add how many zeros after the decimal point for how much precision you need alternatively, if you really require the numbers to be exactly the same, the best way is to use integer values only, note that the rint() function still outputs a float, so you may need to also cast it like int(rint(floatValue));
  41. 1 point
    The Rop has a tab call archive, check that and make sure that you render the whole sequence, if you want to make sure that you are just saving the particles go the object tab use the force objects. or just select the particles and and check "Export only selected objects"
  42. 1 point
    No matter the orient or resolution of the wires you can determine the point nearest the surface. You can use the vertex prim index function to determine which points are the 0 point on the primitive. http://www.sidefx.com/docs/houdini/vex/functions/vertexprimindex Then if the points that equal vertex zero are actually the furthest from the surface you can determine how many points are on the primitive by the prim vertex count function and then the point that has that corresponding vert number is the nearest point. http://www.sidefx.com/docs/houdini/vex/functions/primvertexcount Furthermore if you have varying wires where the nearest point is sometimes the zero point and sometimes the end point then you can determine which one is closest to the skin by measuring the length to the nearest point on the nearest primitive. Hope this helps, -Tighe
  43. 1 point
    Hey Guys! In the mean time, I found the solution. I realized that if I put my code inside a function, I can recall that function with the HDA Callback Script. I know this must be pretty basic information to most of you, but for me it opened up many mental doors and windows. And just in case anyone is interested, here is the code that is inside my HDA's Type Properties Scripts Tab: import toolutils def sel(): viewer = toolutils.sceneViewer() geo = viewer.selectGeometry() s = geo.mergedSelectionString() n = hou.parm('./grid/group1/pattern') n.set(s) And this code goes into my Callback Script under my Button parameter to call back my function defined above: kwargs['node'].hdaModule().sel() And here are my example files as well: selectedPrims_python_problem_v002_SOLVED.hip colorzied_geo_asset.hda Thanks anyway for taking a look at my problem, and I hope some of you may find it useful as well! Best, Laszlo
  44. 1 point
    YAY! I stopped being scared and dived inside the RBD Angular Spring Constraint node and worked out how to alter it so that rotations can be keyed. This means animated servo's seem possible with this setup(Though I'm not sure if this is the best method still) When I dove inside, I noticed that there was an extra parameter not exposed. Rotation. I set that to evaluate always, and created a new parameter on the top level node. Worked a treat. Now you can key rotation and it should work as expected. Now, how to get it with procedural constraints and packed geo....... rl_servo_04.hip
  45. 1 point
    Gifstorm! First I've used a visualizer sop to show @v coming out of the trail sop: That makes sense so far. To make the next step easier to understand, I've shrunk the face that sits along +Z, and coloured the +Y face green, +X red, +Z blue. So, that done, here's that cube copied onto the points, with the v arrows overlaid too: The copied shapes are following the velocity arrows, but they're a bit poppy and unstable. So why are they following, and why are they unstable? The copy sop looks for various attributes to control the copied shapes, @v is one of them. If found, it will align the +Z of the shape down the @v vector. Unfortunately what it does if it has only @v is a little undefined; the shapes can spin on the @v axis when they get near certain critical angles, which is what causes the popping and spinning. To help the copy sop know where it should aim the +Y axis, you can add another attribute, @up. I've added a point wrangle before the trail, with the code @up = {0,1,0}; ie, along the worldspace Y axis: you can see all the green faces now try and stay facing up as much as they can (note the view axis in the lower left corner), but there's still some popping when the velocity scales to 0, then heads in the other direction. Not much you can do about that really, apart from try some other values for @up, see if they hide the problem a little better. What if we set @up to always point away from the origin? Because the circle is modelled at the origin, we can be lazy and set @up from @P (ie, draw a line from {0,0,0} to @P for each point, that's a vector that points away from the origin): Yep, all the green faces point away from the center, but there's still popping when @v scales down to 0 when the points change direction. Oh well. Maybe we can venture into silly territory? How about we measure the speed of v, and use it to blend to the @up direction when @v gets close to 0? Better! Still a bit poppy, but an improvement. Here's the scene with that last setup: vel_align_example.hipnc To answer the other key words in your topic title, I mentioned earlier that the copy sop looks for attributes, obviously @v and @up as we've used here, but if it finds others, they'll take priority. Eg, @N overrides @v. @N is still just a single vector like @v, so it too doesn't totally describe how to orient the shapes. You could bypass the trail and the wrangle so that there's no @v or @up, set @N to {0,1,0}, and all the shapes will point their blue face towards the top. Without any other guidance, it will point the red side of the shapes down +X. If you give it @N and @up, then it knows where point the green side, and you get a well defined orientation. While using 2 attributes to define rotation is perfectly valid, there are other options. The one that trumps all others is @orient. It's a single attribute, which is nice, and its party trick is that it defines orientation without ambiguity, using a 4 value vector. The downside is quaternions aren't easy to understand, but you don't really need to understand the maths behind it per-se, just understand what it represents. The simplest way is to think of it as @N and @up, but glommed into a single attribute. Another way is to think of it as a 3x3 matrix (which can be used to store rotation and scale), but isolated to just the rotation bits, so it only needs 4 values rather than 9 values. In houdini, you rarely, if ever, pluck quaternion values out of thin air. You normally generate what you need via other means, then at the last minute convert to quaternion. Lots of different ways to do this, coming up with ever funkier smug ways to generate them in 1 or 2 lines of vex is something I'm still learning from funkier smug-ier co-workers. Eg, we could take our fiddled @v, and convert it to a quaternion: @orient = dihedral({0,0,1} ,@v); What that's doing is taking the +Z axis of our shape-to-be-copied, and working out the quaternion to make it align to @v. You could then insert an attrib delete before the copy, remove @N, @v, @up, and now just with the single @orient, all the shapes rotate as you'd expect. vel_align_example_orient.hipnc
  46. 1 point
  47. 1 point
    Christmas has come early :-) http://robotika.com....solvers_dev.rar
  48. 1 point
    For any newbs finding this later: I had the same problem, having a bgeo sequence that I hadn't properly uv'ed and needing to give it uv's retrospectively. The vertex sop worked perfectly by: 1) Plugging the File node with the bgeo sequence into the desired uv sop (uvproject, in my case). 2) Locking the uv sop on the desired frame (probably frame 1). 3) Feeding that into the second input of a vertex sop, and the File node into the first input. 4) Hit Add Texture on the vertex sop, and add a 2 at the end of the x, y, and z variables to tell it to use the second input. 5) Cake.
  49. 1 point
    Higher speed will only give new mikrosolvers(HDK) with more optimized algorithms. But you can get a lot of different custom effects, or a small acceleration of the standard model, by removing some of the additions. I couple of years ago studied the effects of these guys, the projects were made for h10. http://dl.dropbox.com/u/4265149/microsolvers%20dev.rar
  50. 1 point
    The Rest SOP adds a rest attribute which is hopefully represents the position of the geometry at a non-deforming rest. You need to have a shader that uses the rest attribute in place of P. Supermaterial handles rest by the way. Given what you are doing though, I suspect you don't need a rest but to generate your uv's on a static piece of geometry. In your specific case, applying the uv's before the twist should do it. The only time you need rest is if you have a shader that utilizes P as in point position in procedural shaders such as a granite material that uses noise based on the point positions. Use rest instead of P in this specific case. Rest is not applicable to anything else really. Just shaders that use geometry position instead of uv's (st's). As for any texture maps that rely on uv's, rest is not at all relavent. If you are using uv's and your material is sliding, you need to move the uv's up the SOP chain where the geometry does not deform. If this is not possible because you are reading a sequence of deforming geometry off disk or other reasons, then fork off a SOP from the current chain, lock it and apply your uv's to this. Then with a point SOP for point uv's or a vertex SOP for vertex uv's pass this locked and uv'ed geometry to the right input and in the left your deforming geometry. Now for the texture parameter in either the point or vertex SOP, use $MAPU2 $MAPV2 and $MAPW2. Now this is only a last ditch save. It is best to naturally apply the uv's to a static model before any deformations. Hope that helps you out.