Jump to content


Popular Content

Showing most liked content since 02/21/2020 in all areas

  1. 8 points
    Hi, Here is a personal project that uses a new iteration of my small scale pipeline. I still need to improve some things regards the micro-ripples but I think they are working well for this one. I hope you like it! Thanks!!
  2. 5 points
    Hey guys, I am working on new personal project and I would like to share some playblasts I did. I guess it's useless to say where this idea comes from This was the first iteration. I kinda liked it but I decided to move on and do some other iterations. THe splitting was a bit unnatural. After finalizing the RBD setup I started with the main fireball. Here is a playblast of it. Could be better. That's the current stage of it and I don't think I will have time to do more versions. RIght now I amrendering everything and started to work on the secondary elements. Updates soon, I hope
  3. 4 points
    @iosif I'm making a small tutorial about it now, a hip file wouldn't explain much, there are quite a few steps...
  4. 3 points
    Hi! I posted on the Gumroad page a PDF File with shortcuts for Houdini, in total 53 pages, optimized for printing. A way to increase efficiency in Houdini. Download: https://gumroad.com/rart#AoHKBQ Download: https://gumroad.com/rart#AoHKBQ
  5. 2 points
    Is this what you are after? I hope it helps. ftaswin_cam_triggered_alembic_animation.hip
  6. 2 points
    You'll need to effect the system that created the point cloud that the file sop is looking at. One way of doing this is to set the up and N vectors on the original point cloud, and then rotate. Example attached. rotate_v1.hiplc
  7. 2 points
  8. 2 points
    Thanks Andrea! Attached are two screens where you can see the general particle count. I tend to not abuse the particle count to have good meshing results (so I don't use re-seeding), that's mainly because if you need to re-time you can have weird pulsing artifacts, so the only way to overcome this is to over-smooth, and that can be very expensive sometimes and will kill nice details, also boundary conditions can have flickering as well with overcrowded particle clusters closer to colliders. Instead of this I use a method to redistribute the particles to have a more uniform distribution between them, this way you can have very nice and smooth edges without so many particles and have a more clean and smooth mesh without sacrificing details.
  9. 2 points
    How to select the highest points and make the Dome. or use instancing to place already Build a model on the top of the highest PIK. ( or just make something crazy) Color its . odforcefun.hipnc
  10. 2 points
    You could also use noise and check whether it's above or below 0 to offset those lines. offset_lines.hipnc
  11. 2 points
    This‘s an breakdown of Pompeii we made. Hope you like it ~ Software: Houdini17.5 , Fusion Details : Memory: 64GB Processor: AMD Ryzen 1950X Graphics: GeForce GTX 1070Ti Simulation : 10H Space disk : 500G Render:Mantra Render time: 1920*1080 (40H) I recommend to use Linux for heavy simulation, because Linux has a better ram usage than windows.
  12. 2 points
    Can't work with this personally, but can give some helpful time saving advice... get yourself a storyboard with a timing sound track. Maybe start with miming what you want to happen with your hands or some props or drawn on paper in front of a camera. Then edit the beats to what you like. This will save you tons of time and money and frustration. Buy maybe you already know this. I have no way of telling. If you do, then please ignore me.
  13. 2 points
    4 lesson . I learned more about colors, for-each and chops from ( 簡單黎講 C Plus Plus [廣東話, Cantonese] and Jaroslava Chalásová(vimeo).
  14. 1 point
    Yes for sure this is advanced stuff, but I think you may find useful infos in this video : https://vimeo.com/360573161 The technique he shows, I think , can be used to distribute a rbd sim when you want to up res it. To me, it seems the only way to distribute a rbd sim : make a low res simulation, split by objects, and then up res each one independantly in a new simulation
  15. 1 point
    So I have my own that does this. I pulled it off Orbolt when SideFX came out with theirs. It still resides here : https://github.com/LaidlawFX/LaidlawFX/blob/master/otls/LaidlawFX.sop__rbdfbx__1.0.hda with the python needed here : https://github.com/LaidlawFX/LaidlawFX/blob/master/scripts/python/LaidlawFX/fbx.py You would need to pull the whole repo if you want to use it directly to add it to your $HOUDINI_PATH. If you do know python, then you can just grab the code and modify it. For an FBX export, you need to build an object tree of your geometry cloud at your initial state. Then extract the transforms from the moving objects, and reference the transforms on the object level nodes. There are a few examples if you look for that workflow out there. Since Houdini does support what you want from the exploded directly out of the box, you will have to pick your poison. There are a few ways to extract the positions you need, but you will need some python to create the object tree.
  16. 1 point
    Do you have a NAS at work? Otherwise you might run out of disk space pretty quickly with only 1TB of storage. Maybe throw in a 7200RPM HDD or a SATA SSD for medium-to-long-term storage.
  17. 1 point
    Mantra ROP -> Rendering -> Render -> Use Max Processors
  18. 1 point
    Looks nice Tim, thanks for sharing!
  19. 1 point
    I would use a hard constraint with type set to ''position'' for the hinge. For simple one-way collision with the fluid I'd mesh the fluid, convert that to vdb and get a collider for bullet with vdbtospheres. eg. like in the attached file it would probably be a good idea to match the flip solver substeps to the bullet substeps. constd.hipnc
  20. 1 point
    oh! it's a way of teaching... I didn't realize that. My bad then
  21. 1 point
    If you add a Cluster SOP after your Cluster Points SOP, it has a checkbox to output Cluster Centers. -b
  22. 1 point
  23. 1 point
    Does your server expect a common, ready to use file formats like obj or fbx? If so, then you should delegate the writing to Houdini. You can't do it any better yourself. If you sending a custom data format then yes, you have to write a custom exporter and Python might not be your best friend for this. In the case of obj, collada or fbx you can save the geo with Python (hou.Geometry.saveToFile), read and back and send as binary. The downside is it uses the filesystem as an intermediate step. If you want to avoid this step, you could write an HDK extension for Python which would convert the geometry in memory and return you a binary blob, which you then send to the server.
  24. 1 point
    - Grid set to Rows - Random Selection of Points - Group Expand to fill up "holes" between random selection of points (avoids triangles) - Offset group in Z Direction See attached scenefile: SciFy_Grid_Yader_02.hiplc
  25. 1 point
  26. 1 point
    Progress between lessons. Must learn expression and more about delete frames ( `ifs($F<4, 0, '24-29')` , restposition ojoj oj , too much fun, too much to learn. But it's the progress that feels the best.
  27. 1 point
    10 lesson. More patterns and more attributes, now learning about promoting and intersections, combining with colors( and using in solver with vertices) ., and how to project those patterns to some other 3d figures (shapes ) Learned a lot from Anastasia Opara ...and ...wordpress.discretization.de/houdini/... projectione from cgwiki Now having fun with NURBS modeling like a Rhinoceros with wonderful examples from @Aizatulin that I hope in the future he does more stuff
  28. 1 point
    Hi, You can just average out all the points found in the point cloud lookup where you are coloring them, and either create new points at the computed center or store it as an attribute.
  29. 1 point
    best thing is to contact SideFX support, they are very helpful
  30. 1 point
    Your attribute is already a string, so dont use the quotation marks. point(s@mystring,"Cd",@ptnum);
  31. 1 point
    9 lesson. Now I must learn more about triangle carve and generally how to find in triangle something else . I found this Dude @sweetdude09 and @petz thanx for lessons and examples. I always wanted to have in Houdini (procedural for a tattoo , UI, Fui, Gui, UNx, Mechanic shapes, etc) roof tutorial @konstantin magnus Basically triangles in copy stamp bunch of ...endless possibility... then a group by the edge with various angle and just finding those shapes with some luck.
  32. 1 point
    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://github.com/LucaScheller/VFX-LYNX/projects/1 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, including full release logs: https://www.lucascheller.de/blog/ Houdini User Group Munich Presentation: https://vimeo.com/334887452
  33. 1 point
    Update: LYNX tools are now easier to install via the new LYNX Update Manager, available on all platforms. See the updated GitHub (https://github.com/LucaScheller/VFX-LYNX) installation instructions for more information.
  34. 1 point
    Here is a procedural workflow to model a static slime tree based on curves and voxels. slime.hipnc
  35. 1 point
    3d flame rendered with renderman23 rendered with octane
  36. 1 point
    Corner Points: groupexpression/snippet Corner Points chf("concav_vexity")==0?@curvature<-1:chf("concav_vexity")==1?@curvature>1:abs(@curvature)>chf("concav_vexity") 0 - concave only 1- convex only other - both concave/convex depending on magnitude, note magnitude can exceed 1. works best on 2D objects, ie. if you extrude some flat object, I'm not sure how the measure curvature algo works for this. EDIT: ahh got it, I thought it didn't work properly but it did, I just forgot to enable Output Back in the extrude, so once Output Back is enabled, it will select the corners correctly on both top and bottom level of the extruded object. I will not select 'inline' points tho.
  37. 1 point
    What do you mean by baking ? You want to output a displacement map ? If you want to bake a disp map, you need a Bake Texture ROP (OUT context), indicate your high rez object and the low rez object - also called UV render object - (who gets propoer UV), and then check the Displacement or Vector Displacement output in the Images / Main part of the node. You need to tell which rez you wants your map, and you can select various "look up" options between high rez and low rez object (called Unwrap method). I guess yours would be by Trace closest surface but you can use a UV matching option if you work on objects that were created from a subdivided low rez object and that the UV didn't changed (like to get disp map from sculpting details on a subdivided object in ZBrush). Then you hit render button. Hope this helps you a bit, but for grass, I would go with point instancing if that's for rendering. If that's for a realtime render engine and you want to bake a map, of course that's different :-)
  38. 1 point
    I posted some results of first tries of adapting your workflow on my behance, Konstantin, i hope it's not a problem for you. https://www.behance.net/gallery/85035827/Dogs-of-Tindalos
  39. 1 point
    This is super cool Thanks!!!
  40. 1 point
    Just a quick update on this..2 years old entry! As I had issues with this and found a way thought I'll share it, so basically after packing with Pivot set to "Centroid" add a wrangle vector pivotOffset= chv("PivotOffset"); vector pivotCentroid = primintrinsic(0, "pivot", @ptnum); vector newPivot = pivotCentroid + pivotOffset; setprimintrinsic(0, "pivot", @ptnum, newPivot); @P += pivotOffset; Just one another way
  41. 1 point
    There's a SideFX video on vimeo for this project that Akira Saito made. A couple of weeks ago they added English subtitles to it so you should be able to learn a lot about his process from watching this. On the video play bar click on CC to call up the English subtitles.
  42. 1 point
    you were dotting with @P.y instead of the up vector u created ripple_example_5.hipnc
  43. 1 point
    I tried recreating your method in a VOP and have something almost identical (I think). There is still a difference in the amount of colour your way picks up compared to mine. I defined my up vector before the vop using the old point sop node and didn't create the min and max values because I assumed they were for your fit in your wrangle example so I just promoted the source min and max in my vop after I fit the dot product. Then I multiplied the colour by the dot product and hooked it back into the output color. Screenshot from your method Screenshot from my VOP ripple_example_4.hipnc
  44. 1 point
    Stack: attribexpression/snippet Stack @P; int stackaxis=chi("axis"); float stackoffset=ch("offset"); @P+=getbbox_center(1); if(stackaxis==0){ @P.x+=getbbox_max(1).x-getbbox_center(1).x-getbbox_min(0).x+stackoffset; } else if(stackaxis==1){ @P.y+=getbbox_max(1).y-getbbox_center(1).y-getbbox_min(0).y+stackoffset; } else{ @P.z+=getbbox_max(1).z-getbbox_center(1).z-getbbox_min(0).z+stackoffset; }
  45. 1 point
    Hey ejr, sorry this took a while. Was right in the middle of something when I first took a look and then left everything on my work machine. I just rebuild it at home quickly as it's pretty simple. I haven't delved into getting the SBD constraints to work as I'd need to look into more about how it matches up constraints - I'll try and get round to it as having multiple techniques in your bag is never a bad thing. Here is a version using the pintoanim that Jordan and I are talking about above. I've put in a couple of ways to select the base points of the curves. It's assuming the base point is the lowest ptnum but there's a visualizer in there to easily see what either method has selected for you. Knowing that you can use an integer attribute called pintoanimation, which is an attribute recognised by the solver to constrain that point to its position in the target animation. I use point deform to match the animation to the model. At this stage you will see all the wires moving as one, but it's only the motion of the pintoanimation points we care about. Once in dops the animation on the rest of the curve will be ignored and the wires will move as per the sim. Something I did, which may or may not be what you want, is set the 2 base points as pintoanimation, so the curve still stays pointing in the general direction of its rest state. This was just a quick fix to stop it essentially pivoting around just the one base point constraint. I haven't set up any collisions etc so if you had those maybe that wouldn't matter, but hopefully this helps if you had no joy with the regular SBD constraints. hair_herbert_pintoanim.hipnc
  46. 1 point
    See attached file with a purely SOP houdini approach which is the best and easiest, and another one, with a part done in VEX (a pseudo poly extrude). H15.5_hexa_deform.hip
  47. 1 point
    I was playing with Jeff Wagner's file and it might be a better solution. I have added in some movement and extended the grid pump for a longer hull. ap_jw_flip_pump_bow_curl.hiplc
  48. 1 point
    Look at the help file for the Scatter SOP: http://www.sidefx.com/docs/houdini15.0/nodes/sop/scatter The Tip section right at the top describes three different scenarios to scatter fixed point positions on deforming geometry including an example file. Very fast and you only evaluate the Scatter SOP from the frame you use in the Time Shift SOP. Btw rarely do you want to lock operators to get a rest frame in an input deforming archive. Always use the Time Shift SOP and 9 times out of 10 you are setting it to frame 1 or the start frame of the sequence which is $FSTART (in case you are dealing with simulations that start at frame 1001 for example). See the example file as to how to take in deforming unpacked geometry (from your alembic archive) and use an Ends SOP set to unroll then scatter and stick with the Attribute Transfer SOP using the recipe indicated in the help. See the attached example file for scattering on deforming edges. stick_scatter_points_on_deforming_geometry.hip
  49. 1 point
    what do you mean doesn't play nice? wrangle always plays nice so let's assume you have color ramp parameter named "color_ramp" and to make it more flexible add 2 float parameters, "min_speed" and "max_speed" then your code will be something like: float speed = fit(length(v), ch("min_speed"), ch("max_speed"), 0, 1); @Cd = chramp("color_ramp", speed);
  50. 1 point
    You can't "reglue" objects by increasing their glue strength (even to -1); once the glue breaks, the strength value is ignored. In your scene, your animated glue strength is breaking the glue of all your pieces once it hits zero, and once your pieces are all unglued, the strength value is no longer relevant. What you can do is re-initiate their glue using the "Glue to Object" field on the rbdstate node (remember, all the pieces of RBD Glue setup are glued to an empty object that takes the name of the node, in this case "box", so merely switching between "" and "box" in that field will do the trick). The next problem is you need a way to separate out the pieces you want to reglue from those you don't, otherwise the entirety of the shattered glass will behave as a single piece again. There a few ways to do this, for artistic control it probably makes more sense to isolate the pieces you want in SOPs, and either use two RBD Glue objects in the Dopnet, or use an attribute to control this. For the purposes of demonstration though, you can cheat what you're going for by using an expression to reglue the pieces that don't move much in X, leaving the pieces that do move far enough away from the middle to keep moving freely. I've attached a modified scene that does this. All the changes are on the new RBD State node. Note that I'm not animating the strength at all, only the "Glue to Object" field. Other notes: You can't glue to static objects, so right now your Glue to the "floor" object doesn't do anything. I also reduced your collision substeps drastically on the RBD Solver node merely for testing, but really you can probably get away with much less than the default settings for an effect like this, in order to drastically reduce sim times. Hope that helps! radial_implementation_darric.hipnc