Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Leaderboard


Popular Content

Showing most liked content since 02/23/2017 in all areas

  1. Hello Everyone, This is a recording of the presentation I gave at the sidefx booth at GDC. Topic: Creating a custom grooming system in Houdini for VFX and Games. Chapters: --Hair grooming For VFX. --Auto generating cards with texture for Real-time rendering. --Exporting the hair for real-time rendering using Nvidia Hairworks. I hope you guys like it! If you have any questions please feel free to email me at sabervfx@gmail.com Link: https://vimeo.com/sabervfx/hairfx Thanks Saber
    9 likes
  2. Hey everyone! Here's a demo of some point cloud tools I created to calculate concave and convex curvature as well as gradient and curl direction, also sharpening. Forgot to mention in the demo that the curvature calculation is a great way to do differential growth by advection along normal * curve * noise * parm. Also, the curl calculation can be used to make grass patches and groom fur by orienting curves along the direction to add swirly variance. There's a lot of ways these tools can be handy, interested to see what you all come up with! Let me know if you have any questions, enjoy! curveGradientCurlSharpen_v002.hipnc
    9 likes
  3. Thank you @MrScienceOfficer ! Here's one I did today
    8 likes
  4. Hello, I've revamped this thing in H16. Basically it's same, just changed a long distance geometry query to VDB sampling, it seems to fits best. Also added some auxiliary functionalities, like reversing polygons if needed, uv creation and such. It's created by H SOP and VOP arsenal. Get hiplc here. How it works: First step is volume sample of VDB representation of another mesh. Sampled SDF is saved as float attribute, zero SDF is used by PolyCut SOP to create intersection curve. Final offset Cuts on meshes are also PolyCut SOP done by spatial query, XYZ Distance VOP and such. Intersection curve is re-sampled down and converted to NURBS, to get as much smooth fillet. From that curve, there's spatial query to cuts on meshes, to get closed points. In next step, curve is re-sampled again to final fillet resolution, also there's new spatial query to cuts, this time only to match the final position, while orientations are derived from low res curve. This is to avoid 'bulging', invoked by linear cuts over polygons. Last step is six point bezier curve, well known as G2 blend in NurbS world, used to loft the fillets, by Skin SOP. More specific, what it can and can not do: - it automatically creates NURBS style fillets around intersections of two polygon meshes. - it wants two closed meshes as inputs, while second mesh has to be perfectly closed (no boundary edges) - will see is there a simple way to improve that. - it is able to perform fillets over fillets - only in case of closed second input. - it is able to deal with multiple intersections, or multiple (closed) volumes, let's say created by Merge SOP. - it creates fillets from union, intersection or subtraction. Default is union. - it creates UVs on fillets. If there are existing UVs on inputs, H will keep them. - it aligns normals (or exactly, vertex order) of created fillet, to first input. - each intersection has to be 'closed', that is, resulting in closed curve, in order to work properly. - meshes has to be nicely subdivided before inputs. It's just cutting over supplied inputs, it won't create new, smaller polygons. - it does not work well with sharp curvature - will see is there a way to improve that. - fillets should not overlap. - resulting meshes are just stacked, there is no any re-meshing, at this point.
    7 likes
  5. please take a look at the attached file. it´s an example how you could create bezier curves with arbitrary degree and another one relying on beziers in hermite form since you wrote about blending curves... petz curves_vex.hipnc
    6 likes
  6. Recently I wanted to make constraints based on impacts. I finally managed it. Here's the basics of the system. It uses a couple of ForeEach SOPs to step through and delete any constraint between the same two rbd's. Phew! This one was really tricky to work out. The hip file is available here
    6 likes
  7. Put all point positions into an array and make parameter "t" slide e.g. from 0 to 1 inside a for loop. int steps = chi('steps'); vector all_points[]; resize(all_points, npoints(0)); for (int i = 0; i < npoints(0); i++){ all_points[i] = point(0, "P", i); } int prim = addprim(0, "polyline"); for(int i = 0; i < steps; i++){ float slide = i / float(steps - 1); vector pos = spline("catrom", slide, all_points); int inter_pt = addpoint(0, pos); addvertex(0, prim, inter_pt); } Also a simple function for interpolating 4 points to a curve by yourself would be: int steps = chi('steps'); vector pt0 = point(0, "P", 0); vector pt1 = point(0, "P", 1); vector pt2 = point(0, "P", 2); vector pt3 = point(0, "P", 3); int prim = addprim(0, "polyline"); for(int i = 0; i < steps; i++) { float slide = i / float(steps - 1); vector pos0 = lerp(pt0, pt1, slide); vector pos1 = lerp(pt2, pt3, slide); vector ipol = lerp(pos0, pos1, slide); int inter_pt = addpoint(0, ipol); addvertex(0, prim, inter_pt); } VEX_spline.hipnc
    5 likes
  8. Here is collection of breakdowns for a project I was working on during last half of a year Vimeo album: https://vimeo.com/album/4471569 Or individual videos:
    5 likes
  9. "Sine Cube" Sphere packing on a rounded cube with pscale defined by a sine function. Post in Lightroom & PS. Cheers, Tom
    5 likes
  10. "Bubbles" Followed Ben Watts' tutorial on sphere packing via the grain solver: Quick Tip 05 - Object Packing In Houdini - very cool stuff! Thanks Ben! Went my own merry way from there :-) Rendered in Thea Render. Cheers, Tom
    5 likes
  11. I thought I had lost the hip file for the Multi-scale Turing Patterns, but finally I found it. It was using the old proto_install Feedback SOP so I converted that to using Solver SOP. 2017_02_28_ee_mccabe_v001.hiplc
    5 likes
  12. drive.google.com/open?id=0B5Ol7zmvIewTQlRVYkN0cWVDUnc
    4 likes
  13. This tutorial goes over from start to finish the creation of a rudimentary fence asset that can easily be expanded upon. This is an introductory lecture on procedural modeling in Houdini I gave at Drexel University's SIGGRAPH chapter as a Junior Animation & FX major. Let me know if you have any questions, enjoy! Link To Demo File: drive.google.com/open?id=0B--RBrg9u--oWkNDU2ZUYnFpUjQ Link to Documented File: drive.google.com/open?id=0B--RBrg9u--odEhVYnluaFRGeGs
    4 likes
  14. Hello, I've been finally getting around to learning Houdini constraints and motors. Here's a first set of tests that I've ran. They are all quite simple beginnings, but I've learnt alot, particularly about ways to generate constraints in SOPS and then apply to DOPS, which seems really powerful. Im also using this to have a little peek at mantra, and learn how to set up really simple scenes. Heres the hip files for anyone else trying to work this stuff out. They are a bit disorganised, and alot of them contain ROPS that will need to be rerendered. hip_file hip_file hip_file hip_file hip_file
    4 likes
  15. Hey Graham, and anyone else trying to do this I just put out a video with a little explanation of the gotchas of the process as well as the project that I showed at GDC with source files and an updated HDA (which should be going into the build anyday now) A lot of people have been asking for more info on this, so hopefully this clarifies it a bit
    4 likes
  16. youtube.com/watch?v=QHEQuoIKgNE disk.hipnc
    4 likes
  17. Move, rotate and scale components independently on their local axis...as per Mcnistor's feedback.
    4 likes
  18. helpful little tip for people who hate waiting for the tooltip info that pops up when you hover over a shelf tool, or parameter, etc.... if you hold the CTRL key while you hover, the tooltip pops up instantly.
    4 likes
  19. Just so happens that I created my very own bubble tool that works just as you've described it! Here's some videos: I simply implemented a spherical particle intersection algorithm. I intend on releasing the file soon in a tutorial once I have some time after this term's finals week. -Tighe
    4 likes
  20. Here's another test. Im experimenting with making chains of rbds and adding different forces to the motors at regular intervals. I got some pretty nice movement! I posted the hip files for the scene here - http://richardlord.tumblr.com/post/141237935366/hipfile-hipfile-hipfile-hipfile
    4 likes
  21. http://www.openvdb.org/download/openvdb_particle_storage_2015.pdf
    3 likes
  22. AFAIK people generate vectors in external apps (usually After Effects or Nuke with plugins like Twixor or go fancy with openCV libs or hacked ffmpeg builds), and then use that image sequence to make a velocity field. I assume that's how the amazing video below was done. (edit) Ah, he says in another video he uses deep flow: https://thoth.inrialpes.fr/src/deepflow/ (/edit) Had a quick look around last night and this morning, found this javascript image processing library. They have an implementation of 'Lucas-Kanade optical flow', I have a suspicion it'd be good starting point to port to vex: https://github.com/inspirit/jsfeat https://github.com/inspirit/jsfeat/blob/master/src/jsfeat_optical_flow_lk.js -matt
    3 likes
  23. There is also a new course on pluralsight.com that addresses this: Practical Houdini Math Tips By Beau Garcia "This Houdini course will take the user over the fundamental math concepts that are pivotal to working within Houdini. Software required: Houdini 15." https://www.pluralsight.com/courses/houdini-practical-math-tips
    3 likes
  24. Read this. This is base knowledge you need to work. https://drive.google.com/file/d/0B7D36pm7TOBCUk9RaXpDZ3NMbUU/view?usp=drivesdk Its for XSI but its simple.
    3 likes
  25. Ok, Just 2 days to figure this out! I tried so many things, but ended up just using a foreach SOP to step through each constraint and compare it. Its not the fastest...... I also do the same thing on the initial impact points too, which seemed to be a little faster as I cull some points before I even build the constraint. The constraints are currently just made at the center of each rbd, but its easy to shift it to the exact point by using the info in the DOP Impacts. Get the hip here - http://richardlord.tumblr.com/post/158126297816/hipfile-making-collisions-based-on-impacts-is-way
    3 likes
  26. Hi! Just want to share my last work, a magic reconstruction of a world globe. It contains DOP sop solver, smoke by color, advection by smoke and fog, basically. Hope you like it. Pol https://vimeo.com/207149300 Job searching as vfx generalist. https://vimeo.com/polvilla particles.mov
    3 likes
  27. Getting servos working has been bugging me for a long time. I want to set exact rotation values for them rather than just setting motor forces. I finally got them working for both packed and unpacked geo. you can get the hip from here :- http://richardlord.tumblr.com/post/157323581986/hipfile-got-servos-working-using-both-normal-geo
    3 likes
  28. 3 likes
  29. There's no such thing as "proper way" in Houdini, there's only better or worse way's, faster or slower way's, more or less controllable way's - and most complex scenes end up being a mixed bag, all of that at once, depending on where you look... I would set this up heavy to light, big to small, so one sim for the big pieces, cache that. Then you'd start breaking those cached pieces up around the edges, simming that in one go, cache that. Then you'd add the first layer of the road, the second layer, debris, dust with Pyro, etc, caching each step, building it up in layers. So I'd say you're in the right spot to start at least.
    3 likes
  30. Had some strange shapes, I guess Affinity "booleans" are not well suported ! Here is an updated svg, Genji style ! cut.svg
    3 likes
  31. This is H16. To add Displacements you have to build this in to the Core shaders. Core shaders only do surface shading. If you want to add a texture displacement, use displacetyexture VOP. To build a single non-mixing shader, you add two output VOPs one of type surface and one of type displacement after the skinshadercore and displacetyexture. Add a Collect VOP and wire in the two outputs. You also have to add a Properties VOP. RMB (RightMouseButton) on the properties and choose Edit Render Properties. In the dialog that pops up, in the render property list, in the bottom search field type displace. Then find the Mantra > Render and choose all the render properties as in the snapshot image. See the attached Houdini scene file for a working skinshadercore with displacements in /mat. skinshader_with_displace.hiplc
    3 likes
  32. 3 likes
  33. Hey guys! Here's my latest short called REACTION that I've been working on and off with for a couple of months. Enjoy! All Houdini and rendered with Octane
    3 likes
  34. Since I couldn't figure out how to really fuse and connect points of different wires while still getting the wire solver to work properly I just connected the points with spring contraints. Much easier solution even though there's still lots of space for improvement... wire_constraints.hipnc
    3 likes
  35. I've done some more tests with motors. This time trying to create a bunch of them procedurally at once. Getting all the name attributes to line up was a little tricky on some of them, but I understand all this so much better after doing this. Getting the axis of the motors to do what I want was also a bit tricky, but I've mostly cracked it now. I've put all 5 hips that make up this video on my tumblr here - http://richardlord.tumblr.com/post/139634705771/hipfile-hipfile-hipfile-hipfile-hipfile. The sims will need to be re-rendered into the ROPs for you to see anything. Thanks! Hope you enjoy!
    3 likes
  36. I didnt check your file but just an idea, if the RBD pieces are bullet and packed , you can put a pop speed limit to automatically cull crazy max speeds, this usually solves a lot of explosive behaivour
    3 likes
  37. 3 likes
  38. 2 likes
  39. 2 likes
  40. I would say some huge studios are spinning up some departments upon some scope of work on Redshift. Most huge studios have thousands of headless blades in their render farm and far fewer with matching GPU resources. Software rendering will be around for years to come. Switching renderers is not trivial for for large, established pipelines for very many reasons. That said, Redshift does a great job. It's not nearly as flexible, broad and pipelineable (from Houdini) as Mantra, but produces good images, fast.
    2 likes
  41. Here is a Redshift conversion of your test scene. It comes in just over a minute at 1:21 using the 1070GTX. redshift_instancelights_bldgs_H15.5.hiplc
    2 likes
  42. there were many people telling us that the 'one node to rule them all' was often confusing and they had trouble figuring out where/what was going on, and there was interest here to split them up to make fixes/features easier to do in simpler code. personally I find copy/paste faster, easier and far less error prone than dragging nodes around. and there would have to be lots of logic for what you want to do after the drop - copy of nodes, move nodes, make reference etc RFE it if you think it's worth it
    2 likes
  43. A while back I put together a little experiment to see how hyperthreading affected Houdini. Mainly I was curious to see what the effect was for myself; every place I've worked seemed to have a different opinion, and some sys admins were very adament about HT have no improvement on performance, but rather had a negative affect. I think that info is outdated, as from what I've read HT was like that when it first debuted. http://blog.cerebero.com/post/157399715043/hyper-threading Hope its helpful!
    2 likes
  44. I will also nominate the node to create a volume from geometry, of course called "IsoOffset".
    2 likes
  45. I made myself a Katana icon You can grab my svg and put it in your Houdini folder (may be hidden) ..\Houdini 16.0.504.20\houdini\config\Cursors Make sure you backup your old cut.svg, just in case you want those scissors back ! cut.svg
    2 likes
  46. http://www.awn.com/news/deluxe-names-craig-zerouni-head-technology-vfx
    2 likes
  47. https://beesandbombs.tumblr.com/post/57971648339/hexagons-pulsin One of the easier ones and its not a perfect replica, but i certainly learned a lot by trying to recreate it! The hipfile turned out to be more of a little vex playground... hexagons_pulsin.hipnc
    2 likes
  48. You could use a point VOP, or just timeshift to your desired length then use a wrangle node: f@frameFraction = ((@Frame - firstFrame) * (oldLength / newLength)) % 1; @P += @v * @frameFraction * @TimeInc;
    2 likes
  49. And some non-houdini stuff, dont know if its allowed, if not please delete (cinema 4d, zbrush, MoI3D)
    2 likes
  50. Basic: // Primitive wrangle. int pts[] = primpoints(0, @primnum); vector rest = point(0, "P", pts[0]); vector prev_pos = rest; matrix3 frame = ident(); for (int i = 0; i < len(pts); i++) { vector pos = point(0, "P", pts[i]); rotate(frame, 0.1, {0, 0, 1}); vector new_pos = (pos - rest) * frame + prev_pos; rest = pos; prev_pos = new_pos; setpointattrib(0, "P", pts[i], new_pos); } Advanced: // Primitive wrangle. #define TWO_PI 6.2831852 addpointattrib(0, "N", {0, 0, 0}); int pts[] = primpoints(0, @primnum); int npt = len(pts); // Loop variables. vector rest = point(0, "P", pts[0]); vector prev_pos = rest; matrix3 frame = ident(); for (int i = 0; i < npt; i++) { vector pos = point(0, "P", pts[i]); vector delta = pos - rest; rest = pos; // Make normal. Point normals could be used instead. vector normal = normalize(cross(cross({0, 1, 0}, delta), delta)); if (length(normal) == 0) { normal = {0, 0, 1}; } // Drive a shape with ramps and multipliers. vector axis; float ramp, angle; // Twist the bend axis. axis = normalize(delta); ramp = chramp("twist_profile", (float) i / npt); angle = fit01(ramp, -TWO_PI, TWO_PI) * ch("twist") / (npt - 1); rotate(frame, angle, axis); // Bend the curve. axis = normalize(cross(normal, delta)); ramp = chramp("bend_profile", (float) i / npt); angle = fit01(ramp, -TWO_PI, TWO_PI) * ch("bend") / (npt - 1); rotate(frame, angle, axis); // Compute new position and normal. vector new_pos = delta * frame + prev_pos; prev_pos = new_pos; setpointattrib(0, "P", pts[i], new_pos); setpointattrib(0, "N", pts[i], normal * frame); } curl.hipnc
    2 likes