Jump to content


Popular Content

Showing most liked content since 12/12/2018 in all areas

  1. 2 points
    You can also use Attribute Create SOP to edit. Set it to the same as the attribute you want to edit, un-tick "write values" and you can change the float type to color/vector etc. edit: Also it actually does matter for Houdini what type it is, sometimes. If you set it to "position", and then put down a Transform SOP and move the geo - you will notice the attribute will translate too. The same applies for "vector"/"normal" and rotations etc.
  2. 2 points
    Those modules exist in $HFS/houdini/python2.7libs/ So if your on a mac you can do open -t $HFS/houdini/python2.7libs/objecttoolutils.py in the shell to check out what's going on with the customStateTool function.
  3. 2 points
    Thanks Magneto. Kinda hard to give you a correct awser. Process, workflow and idea processing are always differents for each one. Anyway you 're kinda right most of the time i think to seamless looping in a very early stage but it's not always the case. But i don't have any general planification or something. Most of the time i'm messing into Houdini and a idea pops when i'm working on a complete different subject. For the last serie, the steel marbles one : At the very beginning i was asking myself how to make an efficient asset in order to create things like construction game, rollercoaster, tracks, pipe etc. My goal was to have something you just CTRL+C CTRL+V with a type selector parameter, an orientation parameter and some auto snapping features. The idea was to have an asset who will be efficient enough to be faster than doing it in real life with a contruction game, electric toy car track etc... After all this background work it took me something like 1 hour to create this 2 lanes track from a blank scene. The looping was not so much a problem in this scenario. Only 2 marbles are simulated. One for the Yellow lane, one for the blue lane. i've simulated 6000 frames (very close to real time). Then i just copystamp a point representation with a stamped time sop to loop this. At the end i just have a 6 frame endless motion setup where i can freely put any camera.
  4. 2 points
    Hello everyone! My name is Daniele, I'm new to Odforce. This is my first post, nice to meet you! I've been a character animator for a few years but recently I started learning Houdini. I'm learning using resources I find online, including some super useful posts from this forum. I would love to use this post to keep track of my progress and share my results with you. My first project is a procedural building, hip is attached. Cheers! Daniele procedural_house_01.hipnc
  5. 2 points
    This isn't exactly the same but couldn't you create your own parameter, edit the range, then copy the relative reference to the other parameter?
  6. 2 points
    "Distant Thunder" Yesterday I wrote my first Python-node ever. With the help of this page: https://github.com/mgeier/python-audio/blob/master/audio-files/audio-files-with-wave.ipynb I managed to load a 24 bit stereo wav file (of distant thunder, which I recorded this summer at our cottage in the woods) and create geometry from it. Makes for a great desktop background, so I uploaded it as 24 bit png... :-) Created in Houdini Core 16.5, rendered in Redshift and post treatment in Luminar 2018. Cheers, Tom
  7. 2 points
  8. 1 point
    There are many ways to do this, one easy way is just to group the points that you do not want to affect, then in a wrangle add the group in the tab group !mygroup and vexpression add this i@active = 1;
  9. 1 point
    Playing with Redshift and making use of recent VEX learnings from Shawn Lipowski's VEX course.
  10. 1 point
    Hi Everyone, Wanted to share a little person project I'm working on. Nothing too special but its got some neat ideas in it. The idea is to have a bunch of cubes sitting on the ground that will spontaneously "erupt" into a few more cubes. (Now that I think about it its a similar idea to the multiplying treasure in Harry Potter). I've got a crude but effective setup going. I think its got the basics in place and it seems to be somewhat stable. I didn't like how bland the actual "eruption" was looking so I've been working on a way to add some flair to it. At the moment I've got a simple hand-made animation done using two transform nodes. I then take each of the cubes, transform them into a specific place and orientation, run them through the transform nodes with a delay to get the animation, then transform them back to the original position. The transformation is mostly done through VEX. Transforming the pack prims in the right way turned out to be much more involved than I expected but now that its all actually done its not too difficult. The above animation is not integrated with the bullet sim. Its just a proof of concept to make sure that I can actually instance an animation to the cubes while taking into account their various orientations. The next step is to get the hand-made animation working within the DOPs sim, which I don't actually think will be as bad as I initially thought. Though time shall tell. The scene is a mess at the moment so I'll clean it up and post it along with some more detailed notes at a later date for those that are interested
  11. 1 point
    ZBrush live link: https://vimeo.com/306682275
  12. 1 point
    It works if you are more explicit about whats a vector and whats a float: eg. v@target instead of just @target. v@a=normalize(v@target-v@P); f@angle=dot(v@N, v@a); v@Cd=vector(f@angle); Also it does not make sense to put vector pt into the for loop, when there is nothing to change. vector pt = point(1, "P", 0); for( int i = 0; i < npoints(0); i++){ setpointattrib(0, "target", i, pt, "set"); } May I ask why you want to put this into a detailwrangle with a for loop after all? The thought behind a point wrangle is already that its running over all points.
  13. 1 point
    Hi everyone, At this link you'll find three new color schemes: Ash-Smoke-Soot.zip They are meant to be flatter and a bit more subtle compared to the standard themes. Smoke has similar values to the Houdini Dark theme, Soot is a bit darker and more desaturated, and Ash is a replacement for the Houdini Pro theme. Please let me know if you discover any usability issues or ugliness and I will do my best to update the file above. I'm 100% certain that I've overlooked some things... quite possibly obvious things. Edit 12/15/18 - Updated Ash theme to fix audio waveform visibility in playbar and visibility issues with node wires and node secondary text.
  14. 1 point
    any other s/w can do this ? No coding....just noding...
  15. 1 point
    promote the pt attrib to prim ? can't remember how i exactly did this but look here, footprint fx:
  16. 1 point
    Split your viewer into 2 viewports, don't use 2 viewers. Separate viewers do not share selections, viewports within the same viewer do.
  17. 1 point
    You can also use the VEX function setattribtypeinfo() to change the signature of a given attribute after the fact to things like "color", "normal", etc.
  18. 1 point
    1) in houdini it doesnt matter if it's xyz, rgb, 012. Any vector component can be accessed with any of those conventions (attrib.x and attrib.r but attrib[0]) 2) use a attribcreate, set type to color and you get rgb in the spreadsheet instead of 012
  19. 1 point
    No, all the same. then i tried render MONUMENT geometry and got this and when i unpacked It seems that something wrong with your alembic.
  20. 1 point
    Just compare both directions using the dot product: vector target = point(1, 'P', 0); vector dir = normalize(target - v@P); f@angle = dot(dir, v@N); target refers to the position of point 0 of the second input. dir contains the direction from each point of the mesh towards the target. angle compares the target direction with the surface normals, ranging from 1 (facing towards) to -1 (facing away). You can switch the wrangle to either points or primitives. facing.hipnc
  21. 1 point
    can also do this, just move the target around to see effect vu_facing.hipnc
  22. 1 point
    all you need to do to create a vector that goes from each point to your target point is the following: vector p0 = point(1,"P",0); vector myvector = p0 - v@P; to calculate the degrees between the two vectors you can use this formula angle = arccosine((vector1*vector2)/(length of vector1*length of vector2)) and this will yield the angle in radians which you then can convert to degrees. you can read more about that here: https://www.wikihow.com/Find-the-Angle-Between-Two-Vectors in vex that looks like this in a point wrangle: //normalize normal vector to make sure the vector length is 1 v@N = normalize(v@N); // get the length of myvector float length = length(myvector); // get the dot product between the two vectors float dotproduct = dot(myvector,v@N); //get the angle between in radians. Note that we do not have to multiply length of my vector with the length of v@N because we know that v@N = 1; f@angle = acos(dotproduct/length); //convert from radians to degrees. f@angle = degrees(f@angle); Lastly you can isolate whichever points you want based on a threshold of f@angle
  23. 1 point
    This is an amazing node that can help you a lot!!!! I think is also part of the Vellum post process, if I'm not wrong! http://www.sidefx.com/docs/houdini/nodes/sop/detangle.html Cheers, Alejandro
  24. 1 point
    The team I work with has some full-time openings. We use Houdini for part of our pipeline and we're wanting to grow it. I can answer some general questions but I'm not the hiring manager. 462928BR - Full Time https://www.lockheedmartinjobs.com/job/grand-prairie/multimedia-design-engineer-grand-prairie-texas/694/10153801 462927BR - Full Time https://www.lockheedmartinjobs.com/job/grand-prairie/multimedia-design-engineer-grand-prairie-texas/694/10151727 462583BR - Full Time https://www.lockheedmartinjobs.com/job/grand-prairie/multimedia-design-engineer-grand-prairie-texas/694/10151739
  25. 1 point
    Here's another little building I made using a similar set up this was inspired by a restaurant I walked by in London
  26. 1 point
    Your work is great. Is there any planning to make them loopable, i.e. your last gifs, how do you make sure they are seamlessly looping? From composition to animation you must think about it? How do you pick your topics/subjects? They are amazing to look at.
  27. 1 point
    if I understood the question correctly, you are trying to generate an array of integers with newly created points: You have to run over detail only once. vector P; int btmSideArray[]; for (int i=0;i<@numpt;i++){ P = point(0, "P", i); int btmSide = addpoint(0, set(P.x, P.y-1, P.z)); append(btmSideArray, btmSide); setdetailattrib(0, "btmSide", btmSideArray, "set"); } hip file attached. appendarray.hip
  28. 1 point
    Hi Aj! I'm not the most knowledgeable person but here are a few things that might help > #1 You're wanting to convert btmside2 to an integer to append it to the array btmside? If you're stuck on "names" perhaps you should use strings instead? If you want to use the name btmside and convert btmside2 to an integer and append it to the end of btmside, sprintf is perfect for you! (I think) String btmside = sprintf(“%s%d”, btmside, integer); #2 Have you checked if your wrangle is running over points vs detail? #3 I'm still learning vex as well, but this method might be of use to you > Whenver I run over points in a loop and I want specific points to do specific things, I just check if the point number is = to the looping number. for (int i = 0; i<@numpt; i++) { if (i == @ptnum) { setpointgroup(0,btmside,i,0); } } Let me know if any of this helped, or if I'm just stupid. Good luck!
  29. 1 point
    I've not looked at that specific example, but to break constraints I typically do it in a SOP Solver wired into the Constraint Network DOP. Then in the SOP Solver, connect the relationship_geometry > Primitive Wrangle > Output SOP. In the Primitive Wrangle you can set @group_broken=1; based on some condition. It's worked fine for me in my Soft Constraint tests. :-)
  30. 1 point
    I guess isn't possible to change that. Have you consider to use spare parameters or HDA? Modifying that parameter may implies changing all nodes of the same type. That's why it's restricted
  31. 1 point
    pyro solver -----> relationships -----> collisions -----> enable collision relationship. There is that option, but I am not sure about ignoring per cluster. Maybe another pyro container for the cluster you don't want to collide is another option.
  32. 1 point
    Without looking into that classes, I would assume that UT_JSONValueMap->append() takes ownership of its contents and deleting rootMap also deletes the floatV data, and so you're getting a "double free" error. See if UT_JSONValueMap owns the values and if so, you don't need to delete floatV yourself.
  33. 1 point
    did this on a job recently. here's the process more or less: split your cache about in half and timeshift / timewarp each half so that the first half becomes the second half, and vice versa. this means that the first and last frames are now identical and will loop. now you just have to blend the middle part. overlap each half of the cache in time so that you have some room to blend. keyframe a blendshape or the equivalent so that the caches blend from one to the other during this overlap period. to make this less jarring, you can animate a "blend" point attribute that wipes across the mesh from 0 to 1. then use a wrangle to blend your point positions from the retimed cache to the blend shaped positions: @P = lerp(@P, blended_P, @blendAttr); this works best if the wipe moves in the same direction as the prevailing ripples in the cloth. you might need to do a detangle afterwards, or do a secondary vellum sim during the blend shape animation in order to detangle parts that end up interpenetrating during the blend. totally depends on your original sim.
  34. 1 point
    All of the light presets have the "uber" ASAD Lights shader bind to them by default. You can find ASAD Light in the SHOP context. If you right-click the ASAD node and select "Type Properties" and open the Code tab you'll find the lights shader code for all the standard lights in one shader. You can override this shader by attaching the "shop_lightpath" rendering property to a standard light object and set it to point to your own light shader. You can create light shaders with Light Shader builder in SHOP for example. Remember that light and shadow shaders are two separate things and sometimes you need to create the both. In this case you'd also attach the "shop_shadowpath" rendering property and set you shadow shader as well.
  35. 1 point
    Hey OdForce! Lately I've been doing weekly quick-tips that I'd like to share with you all. Be sure to follow me on youtube & vimeo for new videos. Also, keep an eye out for my new course - Houdini For the Artist - Modeling I which I'll be finishing up shortly. Cheers,
  36. 1 point
    Footprints: vu_MOPs_Footprints.hipnc ver 2: less points accumulation...and 'spring' in steps.. vu_MOPs_Footprints2.hipnc
  37. 1 point
    Hey all. I tend to read these sorts of forums a lot but never actually contribute anything, so I figured I should change that. Here's a somewhat lengthy write up of an approach to peeling paint off of a wall: http://www.pixelninja.design/paint-flakes-in-houdini/ I haven't been using Houdini long (only a couple of months) so there's probably much better ways of doing this. If so, let me know! Hopefully it's easy enough to follow along with. Blog/tutorial writing isn't something I generally do, so if you've got any feedback I'd love to hear it. Edit: added a hip file as per a request paintFlakes.hipnc
  38. 1 point
    Nice man! Houdini's learning curve is quite steep but definitely worth it. Great work, keep them coming!
  39. 1 point
    Houdini will still be aware of it, but you can visually hide nodes. The quick way, is to RMB > Flags > Hide Node, and to Unhide Nodes in the network pane go to Edit > Unhide all (Shift+E). You can set the hide function to a hotkey if you want, which used to be the case. This is generally associated in VOPs, with the little nub parameter inputs. You may be better making an HDA, and black boxing the content, this would be a lot safer in that regard.
  40. 1 point
    man, that is some amazing stuff.
  41. 1 point
    Hallo Konstantin I finally had time to go trough my old work and find an example file. It takes a curve or line and creates transform handles for each point. The handles are then linked to parameters. From the parameters they could be linked back to attribute data. I't might be possible to directly attach handles to attribute data but i'm not sure about that. Hope this helps you on your way. custom handles.hipnc
  42. 1 point
    I usually do it like this: vdb_maskvel_dv.hip
  43. 1 point
    Hi!! Here is another update for the Tension asset! I hope you like it! Thank you!
  44. 1 point
    Hope you don't mind, Karl, I coded a version of this in vex after checking out your file. Slightly different than yours, but using the same principle. I put two options in there, one to do even divisions between particles, and another to use a step size for divisions, so you always get a somewhat even distribution of new points. Match this to your flip particle step size, and I think that will provide optimized results. I also approximate normals on the point cloud and provide a random spread along the surface tangents which can further help fill in the gaps. There's an option in there to try and detect isolated particles and delte them, but that will slow things down a lot. HIP and OTL attached. splashExample.hip pc_gapfiller.hda
  45. 1 point
  46. 1 point
    I found here on forums quite good solution: * lower collision padding in rbd object * pop drag node (works with packed prims) with vex code: if (length(@v)<0.4) { airresist = 30; } * pop wrangle: if (length(@v) < 0.4) { v@w *= 0.85; // rotational velocity drag v@v *= 0.85; // velocity drag } if (length(@v) < 0.05 && @Frame > 50) { i@active = 0; }
  47. 1 point
    Project Non-Divergent Step and Mushrooms The Project Non-Divergent DOP is responsible for 99.9% of the simulation's behaviour. Yes hundreds of DOPs inside the Pyro Solver all playing a part but all funnelling through that single Non-Divergent step. This means that if you don't like the look of your sim and the mushrooms, it's ultimately because of the Non-Divergent step creating a vel field that doesn't do it for you. If you want to see for yourself, unlock the Pyro Solver, dive in, find the Smoke Solver, unlock that, dive in and find the projectmultigrid DOP and bypass it, then play. Nothing. For most all Pyro sims, this is the Project Non-Divergent Multigrid as it is the fastest of the Non-Divergent micro-solvers. This specific implementation only takes the vel and divergence field and assuming across the timestep that the gas is non-compressible when divergence is 0, will create a counter field called Pressure and then apply that pressure field to the incoming vel to remove any compression or expansion and that gives you your velocity, nice turbulent and swirly, or combed straight out. Just tab-add a Project Non-Divergent Multigrid DOP in any dop network and look at the fields: Velocity Field, Goal Divergence Field and Pressure Field (generated every timestep, used, then removed later on). All the other fields in Pyro are there to affect vel and divergence. Period. Nothing else. At this point I don't care about rendering and the additional fields you can use there. It's about vel and divergence used to advect those fields in to interesting shapes, or mushrooms. If you want to create your own Pyro Solver taking in say previous and new vel, density, temperature, and then in a single Gas Field VOP network, create an interesting vel and divergence field, then pass that straight on to the Project Non-Divergent Multigrid microsolver, then advect density, temperature and divergence afterward, go for it. Knowing that only vel and divergence drive the simulation is very important. All the other fields are there to alter the vel and divergence field. So if you have vel vectors that are combed straight, divergence (combustion model in Pyro) or buoyancy (Gas Buoyancy DOP on temperature driving vel) have a lot to do with it. Or a fast moving object affecting vel...
  48. 1 point
    I've wanted to tackle mushroom caps in pyro sims for a while. Might as well start here... Three things that contribute greatly to the mushroom caps: coarse sub-steps, temperature field and divergence field. All of these together will comb your velocity field pretty much straight out and up. Turning on the velocity visualization trails will show this very clearly. If you see vel combed straight out, you are guaranteed to get mushrooms in that area. If you are visualizing the velocity, best to adjust the visualization range by going forward a couple frames and adjusting the max value until you barely see red. That's your approximate max velocity value. Off the shelf pyro explosion on a hollow fuel source sphere at frame 6 will be about 16 Houdini units per second and the max velocity coincides with the leading edge of the divergence filed (if you turn it on for display, you'll see that). So Divergence is driving the expansion, which in turn pushes the velocity field and forms a pressure front ahead of the explosion because of the Project Non-Divergent step that assumes the gas is incompressible across the timestep, that is where where divergence is 0. I'm going to get the resize field thingy out of the way first as that is minor to the issue but necessary to understand. Resizing Fields Yes, if you have a huge explosion with massive velocities driven by a rapidly expanding divergence field, you could have velocities of 40 Houdini units per second or higher! Turning off the Gas Resize will force the entire container to evaluate which is slow but may be necessary in some rare cases, but I don't buy that. What you can do is, while watching your vel and divergence fields in the viewport, adjust the Padding parameter in the Bounds field high enough to keep ahead of the velocity front as that is where you hope for some nice disturbance, turbulence and confinement to stir around the leading edge of the explosion. or... Use several fields to help drive the resizing of the containers. Repeat: Use multiple fields to control the resizing of your sim containers. Yep, even though it says "Reference Field" and the docs say "Fluid field..", you can list as many fields in this parameter field that you want to help in the resizing. In case you didn't know. Diving in to the Resize Container DOP, there is a SOP Solver that contains the resizing logic that constructs a temporary field called "ResizeField", importing the fields (by expanded string name from the simulation object which is why vector fields work) with a ForEach SOP, each field in turn, then does a volume bound with the Volume Bounds SOP on all the fields together using the Field Cutoff parameter. Yes there is a bit of an overhead in evaluating these fields for resizing, but it is minor compared to having no resizing at all, at least for the first few frames where all the action and sub-stepping needs to happen. Default is density and why not, it's good for slower moving sims. Try using density and vel: "density vel". You need both as density will ensure that the container will at least bound your sources when they are added. Then vel will very quickly take over the resizing logic as it expands far more rapidly than any other field in the sim. Then use the Field Cutoff parameter to control the extent of the container. The default here is 0.005. This works for density as this field is really a glorified mask: either 0 or 1 and not often above 1. Once you bring the velocity field in to the mix, you need to adjust the Field Cutoff. Now that you have vel defined along side density, this Field Cutoff reads as 0.005 Houdini units per second wrt the vel field. Adjust Field Cutoff to suit. Start out at 0.01 and then go up or down. Larger values give you smaller, tighter containers. Lower values give you larger padding around the action. All depends on your sim, scale and velocities present. Just beware that if you start juicing the ambient shredding velocity with no Control Field (defaults to temperature with it's own threshold parameter so leave there) to values above the Field Cutoff threshold, your container will zip to full size and if you have Max Bounds off, you will promptly fill up your memory and after a few minutes of swapping death, Houdini will run out of memory and terminate. Just one of the things to keep in mind if you use vel as a resizing field. Not that I've personally done that... The Resolution Scale is useful to save on memory for very large simulations, which means you will be adjusting this for large simulations. The Gas Resize Field DOP creates a temporary field called ResizeBounds and the resolution scale sets this containers resolution compared to the reference fields. Remember from above that this parameter is driving the Volume Bound SOP's Bounding Value. Coarser values leads to blurred edges but that is usually a good thing here. Hope that clears things up with the container resizing thing. Try other fields for sims if they make sense but remember there is an overhead to process. For Pyro explosions, density and vel work ok. For combustion sims like fire, try density and temperature where buoyancy contributes a lot to the motion.
  49. 1 point
    You could also take a look here ftp://ftp.sidefx.com/public/ There are some old version still on the ftp. A 9.5 for windows is also there.
  50. 1 point
    there is all info in help http://www.sidefx.com/docs/houdini11.0/ref/windows/optype#parms_tab you should try for AND operation: { option1 != 1 option2 != 1 } for OR operation: { option1 != 1 } { option2 != 1 } combination: { option1 != 1 option2 != 1 } { optionX > 0 } and so on