Jump to content


Popular Content

Showing most liked content since 10/07/2019 in Posts

  1. 6 points
    Just to show the blender heads how it's done ; ) I have created a tutorial on modeling a procedural donut and chose this place for posting the (updated) hip file. donut.hipnc
  2. 5 points
    The End is Nigh! Houdini 18 is COMING!!! Kicking this wish list off as by all trending and statistical estimated Houdini 18 should be arriving in the Halloween time period of old. My first wish is a call to ARMs! Seriously speaking maybe one day Python 3 inline with the Visual Effects Society guidelines for 2020, but long term a lot of hardware profiles are switching to ye-old ARM based architecture something as old as SideFX itself and installed on over a 100 Billion devices. The catch is these are the IOT, Mobile, and XR hardware of the world which to be fair is still behind server racks. However the phone has drastic computing potential that if Intel would stop fighting it due to licensing issues ARM and RISC would have taken over the market. I really hope COPs has a second a life. It's easier to use SOPs and VEX for processing images and HEIGHTFIELDS than with COPs with far less bottle necks and crashing. The amount of nodes and stability in COPs is falling far behind all other contexts including every ones darling wrangle node. I would almost wish for COPs to be fully integrated into SOPs or MATs. Streamline the support into two heavily invested areas already. Gaining several debugging abilities that are just not implemented in COPs like the Geometry Spreadsheet. There are 151 nodes in COPs in which a lot of them could become quickly redundant if ported to either SOPs or MATs. If converted to MATs we would then have a Substance equivalent, especially if they gave the node UI a little love to show per node images. The biggest risk is overloading another context, but to be fair COPs is so severely under loaded it falls into the second tier of networks, so porting those tools would be a mere blip on the radar of total node count. My most realistic wish currently if for subnets and managers to have the flatten ability like foreach loops with the ability to collapse and dive into them. This would maintain networks for those of you who fear the combined context, but also allow to flatten simple networks so you can easily trace and debug all dependencies. As always this is a non-official wish list. So please submit BUGs, RFEs, and Questions to support. Also for anecdotal questions and rants branch them to another thread people will more likely help you for dedicated issues. -Ben
  3. 4 points
    Haven't seen 18 yet so don't know if the code editor was improved, but if not, this still is my ABSOLUTE NR. 1 wish. if(code_editor_improved != true) { Code editing in Houdini Wrangles is - well - crap. It's a total shame we don't even see command parameter lists when typing since even in value fields typing expressions does it and has autocomplete for paths etc. Even only bringing that ability to the VEX editor would be very helpful. Of course it would also make a lot of sense to have other settings and helpers in there, like auto-closing brackets, more clever cursor positioning, offering existing variables and attributes when typing etc. - the Houdini devs should know ALL about that, they probably spend their life in real code editors... The use of external editors could be improved a lot if a.) we wouldn't have to press ALT+E twice for the external editor and wouldn't have to get to the floating editor first each time and b.) if that connection would be "live" like for instance the Pinegrow Web Editor does it with a little plugin for Code and Atom, where you can type in either the internal or external editor and they update each other in realtime. The current system is too clumsy and the 3rd party implementations also aren't really there (no negativity towards the authors intended at all!). Make it native! Make it goooooooood! } else { All is well. Nothing to see here. :-) } Cheers, Tom
  4. 4 points
    Trying to recreate Scott Draves' algorithm in Houdini with VEX:
  5. 3 points
  6. 3 points
    seems like logo generator asset was finally updated from using Cookie SOP to Boolean SOP
  7. 3 points
    It's actually based on our old logo.
  8. 2 points
    Hi Ahmet, just to confuse you a little bit more, here is the definite answer ; ) use addpoint(), prim_normal(), setpointattrib() and removeprim() in a primitive wrangle: int pt = addpoint(0, v@P); vector nml = prim_normal(0, i@primnum, vector(0.0)); setpointattrib(0, 'N', pt, nml, 'set'); removeprim(0, i@primnum, 1); Out of curiosity: Hasn't this already been solved in your old threads? Another thing: You keep posting in the wrong forum section: 'Education' is for posting tutorials and learning resources. Your questions belong to 'Modeling'.
  9. 2 points
    Howdo folks, Vancouver's HUG has just wrapped up its 2nd annual T-shirt design competition and I thought i'd share the designs with you. Natalia Loktionova - Circle, won it with 25% of the vote .. then Helen Ahlberg - Nodes, in second, ... and Steve Shearston - ConceptA, in third All in all, it was a very good competition and I look forward to wearing the shirt when it comes back from the printers Cheers Ed Lee VHUG Admin
  10. 2 points
    thank you "qmultiply" was the thingy i needed. In my lack of knowledge i was trying subtract/add etc. or this wrangle. as it turned out, Bullet is spitting something that has completely messed up values, and they need to be reconstructed with intrinsics FROM: http://www.tokeru.com/cgwiki/index.php?title=HoudiniDops#RBD_extract_correct_transform_attributes matrix m4 = primintrinsic(0,'packedfulltransform',@ptnum); matrix3 m3 = matrix3(m4); @orient = quaternion(m3); @scale = cracktransform(0,0,2,0,m4); v@pivot = primintrinsic(0,'pivot',@ptnum);
  11. 2 points
    Hi Johannes, have you looked into cracktransform() yet? It extracts transform vectors one at a time: // translate (c=0), rotate (c=1), scale (c=2), or shears (c=3) vector cracktransform(int trs, int xyz, int c, vector pivot, vector pivot_rotate, matrix xform) https://www.sidefx.com/docs/houdini/vex/functions/cracktransform.html
  12. 2 points
    @domsewell sorry, but i have no time to do a tutorial like this. it's a complex process mixing a lot of vex and a few part of python . it take more than three months to have a complete system (include load/save building's modification for all the stuff ) not finish at this time (a long way is in front of me) but the "base" is here. "it's not easy , but that's why we like that"
  13. 2 points
    This is a very outdated thread. UDIM textures are supported in mantra and the viewport with the (admittedly rather awkward) %(UDIM)d syntax. /path/to/image%(UDIM)d.exr Luckily the file chooser has an option to insert this token for you.
  14. 2 points
    Only ink left in our printer was orange.
  15. 2 points
    One seemingly hidden feature in Houdini is the power to attach expressions to time segments between keyframes. In this tutorial, I'm going to show you how to harness this feature to create your own custom interpolation model. We are going to make our own full-featured overshoot f-curve, which will read the incoming channel velocity and create and oscillating motion that exponentially decreases until it arrives at the exiting keyframe value. This tutorial is intermediate to advanced level, with most of it being done in python. Later, I show how convert the code to HScript. Coding experience and familiarity with Houdini is assumed. Houdini Version: 17.5 Level: Intermediate-Advanced Prerequisites: Python/HScript Running Time: 37 Minutes You can buy the tutorial here: https://gum.co/OHlDB
  16. 2 points
    What So a while back here at Filmakademie, four of us got together for 4 (!) days to hack together something that would work with Dolby Atmos, a very special sound system that is supposedly "truly surround" and just has a crapton of speakers all around you. How We just built lots of different setups that were all driven by a velocity field from a smoke sim that was based on an animation matching the audio. Quite happy with what came out at the end considering the time spent on it - it was great fun to work on it too. I would gladly share all of our setups, but unfortunately, everything was wiped as we worked on a temporary network drive. *mega-facepalm* But well, now it's art. The only thing left over is this one setup for the meshed smoke, which was one that I did: meg_glowsmoke_v16.hipnc Hope you can learn something from it. A huge shout out to my colleagues, Lucas Bruchhage, Tim Markgraf and Mike Razniewski that were such a great spirit.
  17. 2 points
    Hi Khaled, you can transfer geometry shapes and attributes to pixel maps with VEX functions such as uvsample(), xyzdist(), primuv(), volumesample() and nearpoint() inside a VOP2COP Generator. I attached examples covering: Transferring attributes Blending image textures by attributes Tracing points Tracing closed 2D curves Tracing open 3D curves Tracing flattened meshes Sampling volumes Combining those should give you a good variety of procedural image painting options, either directly or for masking: Another option esp. for baking ambient occlusion or even rendering perspective views would be raytracing with the intersect() function. GEO_to_COPs.hipnc
  18. 1 point
    You can build a hierarchy with a string attribute, and then set the alembic_rop to build one for you. In theory if you make the same structure you can layer this in. There is a primitive type called "AlembicRef", but i havent quite figured out how that works. https://www.sidefx.com/docs/houdini/vex/functions/addprim.html
  19. 1 point
    Heres a quick and dirty setup of the concept Toad was talking about. scatterbox_01.hiplc
  20. 1 point
    Same here in Houdini 17.5.293. I created the scene also from scratch and I get the same result, so it's not related just to your hip. Changing a little the parameters or decreasing the VDB resolution, helps. But seems random, I haven't noticed any correlation
  21. 1 point
    also if you have bones that you don't want to deform, just want them to deform muscles you can add them as external colliders to detangle penetration_removal_detangle2.hip
  22. 1 point
    None of the above are smaller wishes. I wouldn't worry. These wishlist have been around for well over a decade for each major version. Plus as noted this is non-official, for actual BUGs, RFEs, and Question they need to be submitted to support in order to be considered. SideFX staff may be lurking on Odforce, but they do not actually monitor outside SideFX.com forums. Mostly these threads are for ranting, venting, and once in a while a collaborate group hive mind for features that should exist. Also a lot of re-directions for features that do exist, but are obscure in the Houdini lexicon of terminology like the past and thankfully dead Cookie Sop...
  23. 1 point
    Konstantin gave you the answer already. Use cracktransform in VEX... this will return euler rotations.
  24. 1 point
    Hi, I have a point with a string attribute. A null node with a string parameter. Inside of the string param I have a point expression that should grab the string attribute of the point from add1. Instead of returning the attrib value "test" it returns "0". Can someone explain to me where my mistake is? Thank you very much. Jon pointExpression.hip
  25. 1 point
    Just stumbled over : It seems there is a special points() expression to read string attributes. That solved my error. Thank you Peter. Edit: ...and David
  26. 1 point
    Another difference is that attribinterpolate gives you the actual interpolated value in your usecase P so it's great for sticking points directly to the surface While pointdeform will keep the relative offset from the capturing point's reference frame as well as it will transform transformable attributes like N or orient In other words attribinterpolate is lower level node just for interpolating attribute values using one of several methods while pointdeform is more specialized node that acts as a simple cage deformer
  27. 1 point
    as code doesn't save geometry delta of the nodes with internal cache much more robust workflow would be using hou.Node.saveItemsToFile() or hou.Node.saveChildrenToFile() and hou.Node.loadItemsFromFile() or hou.Node.loadChildrenFromFile() which will store them as cpio files the same way as houdini's copy/paste system works
  28. 1 point
    I don't know if it's what you are looking for exactly, but the instance function create a transformation matrix. You just need to multiply to @P. https://www.sidefx.com/docs/houdini/vex/functions/instance.html Here a simple vex code to rotate all points with an axis and pivot attributes previously defined. // rotate vector scale, postrotation; vector4 orient; float angle = ch("ang"); matrix3 rotm = ident(); rotate(rotm, radians(angle), v@axis); orient = quaternion(rotm); scale = 1; postrotation = 0; matrix xform; xform = instance(v@pivot, @N, scale, postrotation , orient, v@pivot); @P *= xform; EDIT: You can also take a look with quaternion, eulertoquaternion, qrotate, etc.. for rotation
  29. 1 point
    Hi Marco, the reload texture button is located in the top bar under Render>Update Textures For saving the uv check this thread:
  30. 1 point
  31. 1 point
    I'm pretty sure you'll find where they are used if you search voplib.h for them again
  32. 1 point
    If you've worked for more than a year or two in Visual effects you've likely seen or experienced yourself the dreaded call to get something PERFECT. But, as it is said "Perfect is the enemy of good enough." I bring this up because it's certainly happened to me. I've only recently in the last couple years become really comfortable with saying "screw it, this is fine". But it seems like a skill I should have mastered earlier in my career. So, hopefully a beginner will find this post and read it and save themselves some frustration. Has this ever happened to you? Has this happened recently to you? Have you been chasing down a technical solution to something when something quick and messy and by hand would have probably worked fine? Have you ever simmed and resimmed and tweaked and resimmed again and again trying to find that one set of parameters that would look great when really those few stray particles could have been deleted by hand after it was cached?
  33. 1 point
    I have found that over the years I have developed a much better grasp on when to spend time creating the "ideal" set up vs brute force "getting it done". I guess you learn to pick your battles!
  34. 1 point
    Not sure I fully understand the question, but what I can say When it comes to this kind of materials the crucial parameter (or texture) is the rougness. the pictures below was done with a substance material (totally procedural). Basically the base roughness (surface imperfection) is "multiplied" with a mix of height and slope channel. Also reflection, but roughness is really the key. Once you get a correct roughness map (or channel) no need of multiple layer ofreflexion. The final material used for render the second image is pretty simple. (the first image is a capture done in substance) You can get it here as it is free. https://source.substance3d.com/allassets?free=true You can studie it or use it, if it can do the job. Stepmarks can easily replaced by footprints.
  35. 1 point
    Kleer, you have reached this conclusion, but I think it takes actual experience to be able to make that determination. When you say you should have mastered this earlier in your career exemplifies exactly why you couldn't at that stage, and why most beginners will not be able to apply your point of view until they get more mileage. I will go as far as saying that a good artist knows exactly where to put the most attention and detail, and where to leave it off. This is quite apparent with Renaissance painters. I think of VFX in the same way that I think about magic tricks, it's more about set up, distractions and (sometimes quite literally) smoke and mirrors than it is about the actual trick.
  36. 1 point
    It's because impacts are happening between static and active objects. Bullet solver breaks glue constraints automatically when impact attribute of constrains greater then strength. You can broke constrains manually with sop solver dop. Look at this topic, I posted an example file there, how to broke constraints manually.
  37. 1 point
    Hi Alex, many thanks for sharing your code. Kind regards
  38. 1 point
    Year 2019...had issue with this in Houdini 17.5. Solution is to add word 'function' and everything works only then. function int[] getPointsForPrim(int targetPrimID){ int pts[] = primpoints(0, targetPrimID); return pts; }
  39. 1 point
    Hey, thought I'd share this here. Preview of tree and foliage creation and layout tools now available on Gumroad. I've released them as "pay what you want" as my contribution to the community. I plan to keep supporting and improving these tools in future as well as releasing other tools. Let me know if you have any feedback/suggestions and I look forward to seeing what people create with them. Enjoy! https://gumroad.com/l/zWFNX
  40. 1 point
    Few tips and tricks to manipulate gas simulation. 1. Independent resolution grid. E.g. Overriding vel grid size independent to a density grid. 2. Creating additional utilities. E.g. gradient, speed, vorticity and etc which can be used to manipulate forces. 3. Forces via VEX and some example snippets. smokesolver_v1.hipnc P.S. Some of this technique are not Open CL friendly though.
  41. 1 point
    I found out that: "vdb"node follow by "vdb activate" will create exactly the vel attribute as one. Doesn't need to use the vector merge.
  42. 1 point
    Not sure if I understand correctly, but if you want to bake in COPs point attribute in uv space, then VEX works as usual: vector uv = set(X, Y, 0); vector clr = uvsample("op:/obj/geo/geometry", "Cd", "uv", uv); R = clr.x; G = clr.y; B = clr.z; Copy this (replacing path and attribute name) into Snippet VOP inside vopcop2filter and you should have the attribute baked into texture.
  43. 1 point
    Hello all. I wanted to share my production library of tools I have posted on Github. Previously a lot of these were posted on Orbolt.com after my 2016 GDC talks. The tools were originally designed to be used in a HOUDINI_PATH style library as opposed to individual hdas. In this manner they can include a larger array of script based tools that don't fall in the paradigm of Orbolt. This toolset is generally complementary to the GameDev, Mops, etc toolset, there are only a few overlaps nowadays. There are two primary libraries of tools. https://github.com/LaidlawFX/LaidlawFX - This is the production library built up over the last decade of work that has been cleansed of studio specific work. This currently contains a set HDA's, a common python library, shelf tools, and example files on how to used the .hdas. Some fun tools in here are an Ivy Generator inspired by Thomas Luft Ivy generator http://graphics.uni-konstanz.de/~luft/ivy_generator/ . File Cache nodes that have been tested on over a dozen productions. RBD to FBX extractors, and an array of ROP tools. Also a module of python code that includes a few sub-modules such as verbosity logging, multiple hda queuing, fbx exporting, file explorer opening, and the large set of options for file caching. Additionally it contains shelf scripts so that you no longer need to use the Material Library, you can just tab and use the shaders like normal nodes. https://github.com/LaidlawFX/HoudiniEngineDev - This is over one hundred hda's to test Houdini Engine implementations in different DCC's and game engine. Each of them test a simple principle from UI parameters to different geometry types and more. Hope they help you at some point. Feel free to branch or leave comments here and I can update the source. Thanks, -Ben
  44. 1 point
    Keep in mind that everything in your example DOPnet is a single Vellum object, not multiple objects. You can emit more points and constraints into the simulation if you like, but it's all data that's being added to a single Vellum object, "vellumobject1". There's a couple things that will make Houdini very angry when deleting geometry from a Vellum object. First, from my testing it seems that you don't want to delete individual points/prims from a Vellum patch... you want to delete the whole patch at once if you're going to take that route mid-simulation. Second, you absolutely need to delete the associated constraints as well. In DOPs, the actual Vellum mesh is "Geometry" data, but the constraints are "ConstraintGeometry". This means that you need a SOP Solver (or Geometry wrangle, depending on what you like to work with) for both of these data names to delete both the Geometry and the ConstraintGeometry so that you don't end up with constraints that no longer have anything to constrain. I'm attaching an example here... I modified the Vellum Source to change the Patch Name so that each generated sphere has a unique name (based on the frame number when they're emitted), then in the Solver SOPs I run a for/each over each patch, get the minimum P.y position, and delete entire patches at once when their minimum P.y is less than zero. vellum_culling_toadstorm.hip
  45. 1 point
    Hey community, first of all thanks everybody for all the help, couldn't have learned this soft without this forum. Here is some art I did with Houdini, feedback is always welcome.
  46. 1 point
    For those that the internet has brought them back to this thread SideFX did implement this at some point. hou.getenv http://www.sidefx.com/docs/houdini/hom/hou/getenv hou.putenv() http://www.sidefx.com/docs/houdini/hom/hou/putenv.html hou.unsetenv() http://www.sidefx.com/docs/houdini/hom/hou/unsetenv.html
  47. 1 point
    Thanks a bunch for the detailed setup! Im genuinely curious, where does one start if they want to learn these things?
  48. 1 point
    here are 2 methods: 1. blending 2 noises (in this case your mountains) with different offsets so that 1st and last frames match (will loose amplitude in the middle which you can compensate for) 2. using Periodic perlin noise in VOPs ap_animated_cell_loop_blend_or_periodic.hipnc
  49. 1 point
    here is one way ts_erode_by_particles.hip
  50. 1 point
    lots of the expressions have the "s" at the end to get string values back, these are few more I tend to use often: point -> points ch -> chs stamp -> stamps eval -> evals ...