Jump to content


Popular Content

Showing most liked content since 09/26/2020 in all areas

  1. 11 points
    Here is my take on the schizophyllum commune: Project a distorted grid on a displaced torus. Iterate over remeshing and relaxing the grid. Scatter random points along the outer edges. Find their shortest paths across the mesh. Convert the curves into a signed distance field. Offset the SDF contour based on curve orientation. The gills can be flipped by negating the orientation along the path curves. mushroom.hipnc
  2. 8 points
    Midnight recording on how to do a basic texture bombing shader: https://www.youtube.com/watch?v=sUkyHbSocUE texture_bombing_shader.hipnc
  3. 6 points
    Only sharing files and links for peoples that want to learn ..including mine self Here its snippets(File) useful for Tricks and Links for Video Tut INC ...WITH FILE. https://vimeo.com/454127040 https://vimeo.com/207724703 https://vimeo.com/305429043 uiHud.hiplc
  4. 6 points
    Here's another plant generator this time growing from crevices / occluded areas. It's essentially blending the volume gradient with some curl noise based on distance. mushroom_grow_out.hipnc
  5. 6 points
    I tried. I couldn't think of a clever way to do it, but I hope it helps. Mushroom.hiplc
  6. 4 points
    Here is a procedurally animated creature using some of the all new rigging tools. Had to brush up my russian skills1 to get this working ; ) 1 H18.5 Rigging Tutorial: https://www.youtube.com/watch?v=-AFJ5j47pwE spider.hipnc
  7. 4 points
    Point cloud based / smoothed occlusion texture going the 2D voxel field / SOP import route. This time featuring a butter squab ; ) texture_occlusion_VOL.hipnc
  8. 3 points
    Just Have Fun Now Flower Effects and much more Its Crystal Case mystiqueTransform.rar
  9. 3 points
    Just gave the gills a little update.
  10. 3 points
    Here is the VEX version of the streaking texture procedure. It's pretty flexible now: Starting curves from uncovered areas to any angle, jumping over gaps, gradually changing target direction, measuring curve length for any point and of course texture mapping. Model taken from threedscans.com streaks_VEX_2.hipnc
  11. 3 points
    Currently working on a from-scratch texturing procedure that simulates water running down surfaces. Models shamelessly taken from @animatrix course files. Starting with projected points, the curves run along a volume until they drop onto the next underlying surfaces using nested while loops. The watery effect is achieved in COPs where the texture is drawn based on measuring distance from texture positions to these curves. Alright, enough art, here comes the proof of dripping :
  12. 3 points
    Hello, I recently started Houdini and I realized it can be used as a powerful visualization tool for learning mathematics. I visualized the slope field of Lotka-Volterra equations, which are commonly known as predator-prey model. Also, I posted a more detailed explanation of my work on my website. Now, I'm very interested in learning lighting/post-processing skills. So I'd like to know if there are great tutorials on it. Thank you!
  13. 3 points
    Just found the link and Names sharing . LINK
  14. 3 points
    Hello everyone! Every Monday at 12am for the last 3 weeks I have been uploading VEX snippets as mini-tutorials on my website: https://aaronsmith.tv/1-Minute-VEX Here, through '1 Minute VEX', I'll try to walk you through some of the more obscure and advanced functions that exist, and add as much explanation as possible to accompany the images in text based form. These are not for Houdini beginners! I also intend on all of my website's educational content being free - permanently. No donations, no subscriptions, no coupons. Below is 1 Minute VEX III as an example; Let me know if anyone has any suggestions for improvement! - 1 Minute VEX III - Ray-Cast Ambient Occlusion
  15. 3 points
    Particles, L-system more Snippets chops Growth UI31OD.hiplc
  16. 3 points
    Distance from Target SOP -> Target parameter to Plane. fo.hiplc
  17. 2 points
    Instead of using @tan, you should use v@tan. Houdini only recognizes default attributes correctly. So if you use @tan, it is interpreted as one single float for all three axis. Ah.... juse a few minutes too late
  18. 2 points
    Hello once again! Since the last time I posted here I've added three new tutorials, all of which briefly cover textures, mapping and colour in VEX. Thanks to everyone once again for all of the support and useful suggestions! 1 Minute VEX VII - OCIO transformed attribute from image - https://aaronsmith.tv/1-Minute-VEX-VII Using colormap() and ocio_transform() to read an sRGB image and convert it to an ACES-compliant attribute. 1 Minute VEX VIII - sampling nearest texture with UDIM filename expansion - https://aaronsmith.tv/1-Minute-VEX-VIII Using xyzdist(), primuv() and colormap() to sample the nearest UDIM-friendly texture on a surface. 1 Minute VEX IX - triplanar mapping & projection - https://aaronsmith.tv/1-Minute-VEX-IX Using simple vector math, for loops and colormap() to create a triplanar projection. Please feel free to PM me with any questions or suggestions.
  19. 2 points
    You can add vertices to any edge by converting a polygon to a polyline and then sorting it using Intrinsic UV. addvertex.hiplc
  20. 2 points
    Hi, here is another version: With VEX you can insert your point into the point array of a primitive and rebuild the primitive with the new point. choose a primitive, a point and an index get the point array of the primitive and insert the new point to the position given by the index rebuild the primitive with the new pointarray and remove the old primitive insert_point.hipnc
  21. 2 points
    I assume that a triangle has always the same order, so if you add a point between point 0 and 1, just offset the point number after point 1. Let's say you have a triangle, this should work : int pts = primpoints(0, @primnum); removeprim(0, @primnum, 0); vector pos1 = point(0, "P", pts[0]); vector pos2 = point(0, "P", pts[1]); vector new_pos = avg(pos1, pos2); int new_pt = addpoint(geoself(), new_pos); addprim(geoself(), "poly", pts[0], new_pt, pts[1], pts[2]); Cheers,
  22. 2 points
    Hello @kiryha, first of all the torus is a NURBS surface, meaning it's treated as one single primitive which is also already unwrapped in UV space. This makes it an easy target for the primuv-function that is returning the position (or any other attribute) on a primitive at an primitive's intrinsic UV location. Here is what primuv() does to a grid based on a mesh (left) as opposed to a NURBS surface (right): Now when you want to apply a geometry (mesh, points, curves) onto a primitive, it needs to have UV coordinates first. In this case the UVs are based on the grid points positions in relation to the bounding box: v@uvw = relbbox(0, v@P); Because the grid lay on the XZ plane (for no reason in this case) I had to exchange the Z with Y coordinate: @uvw.y = fit01(@uvw.z, 0.2, 0.5); The Z coordinate should then be set to 0 for correctness: @uvw.z = 0.0; So in other words: if the grid was set to the XY plane right away, it's sufficient to transfer the position attribute from the NURBS torus like this: vector UV_grid = relbbox(0, v@P); v@P = primuv(1, 'P', 0, UV_grid); primuv_example.hipnc
  23. 2 points
    the testing Lee Griggs tricks with a textured volume inside a class object Arnold rendering this is rendered with Cycles in Gaffer, next I will try Hydra version from Cycles inside Houdini
  24. 2 points
    The `transform` 3x3 matrix intrinsic controls both rotation and scale. If you're assigning rotations based on quaternions, you're going to run into scale issues because quaternions can't contain scale information. The `w` attribute is for angular velocity, not rotation, so it won't help you here. What you can do is use cracktransform() in VEX to extract the scale from a matrix as a vector, then use the `scale()` VEX function on your rotated matrix to scale it back to the original value, either before or after your rotation (depending on whether you want your scaling to happen in world or local space). You could also consider using MOPs Apply Attributes to handle this for you.
  25. 2 points
    Started to get some cool things myself for a project, using my own ways, still feel a limited to code my own subdivision rules Obviously how not to mention master Michael Hansmeyer here? _______________________________________________________________ Vincent Thomas (VFX and Art since 1998) Senior Env and Lighting artist & Houdini generalist & Creative Concepts http://fr.linkedin.com/in/vincentthomas (Available soon, feel free to contact for reel and resume=
  26. 2 points
    HA! Never mind... i found the problem myself. In case it helps somebody else: I had my spawn points in the same GEO node as my terrain. This messes up the point attributes. Actually I was aware of that before - so i added another GEO node for the spawn points and use Object Merge to collect the points from my terrain geo. Nothing showed up though. The problem was, that you need to use the relative path in the object merge. Not "obj/..."
  27. 2 points
    Here are the single passes for now:
  28. 2 points
    I wrote a custom render engine in COPs today. While 'engine' is probably a bit far fetched, it's a little ray tracer experimentally supporting: Meshes with UV coordinates Shading on diffuse textures Multiple point lights (including color, intensity, size) Area shadows and light attenuation Ambient occlusion Specular highlights Reflections with varying roughness The snippet basically transforms the pixel canvas to the camera position and shoots rays around using VEX functions like intersect() and primuv(). The rendering process only takes a few seconds. I still have to figure the licensing fees, though COP_render.hipnc
  29. 2 points
    Inside the resize container node there is Reference field. This defaults to density. However, the bounding box of density is often smaller than the heat or temperature around it. You can extend the Reference field by typing temperature after density. Then the bounding box of both volume types should be evaluated for the resize operation. I often increase the padding up from 0.2 default to 0.5 as well. Worst case scenario you can disconnect the resize container and simply manually animate the Size fields of the smoke object itself.
  30. 2 points
    Recreated all three subdivision types in VEX. It now fast and uses some input parameters. Didn't achieve any worthy results with animating this stuff, however. subdivide_triangle.hipnc
  31. 2 points
    // Point wrangle. #define PI 3.1415926535897932384 float u = fit01(@u, -PI, PI) * ch("revolutions"); vector pos = set(sin(u), cos(u), 0) * ch("radius"); matrix3 t = set(v@tangentu, v@N, v@tangentv); @P += pos * t; Where tangents and normal was computed by PolyFrame SOP, and @u is 0..1 point's position on curve. spiralize.hipnc
  32. 1 point
  33. 1 point
  34. 1 point
    Hey all, I have a pretty specific problem here. Basically, I have a pattern that repeats itself along quads. I have a piece of geometry that is copied to each quad in a mesh. I used this tutorial to do it: https://youtu.be/Z3ZkGoa3kZE Next, I want the pattern to become gradually flatter around the edges. Does anyone know how to do this? See image below: Here's the hip file. You'll also need the OBJ to import into the "file" node in the hip. FlowGradient.hiplc FlowAlongSrf.obj
  35. 1 point
    Thank you very much!! The file you attached is really helping me.
  36. 1 point
    Hello Everyone, This training series we will look at the basics of the Houdini particle system and also cover a variety of POP nodes to better understand how the Houdini particle system works. The training will also go through a variety of small projects that will combine a variety of POP nodes, smoke simulation, RBDs and various sop level tools to create a range of effects. The first 100 sales will get a 50% discount. for more details kindly click on the link given below https://www.rohandalvi.net/particles
  37. 1 point
    Thank You for those beautiful Solutions and Tricks
  38. 1 point
    seems to work exactly that way, what exactly is not working for you? attached file with the same code Specific_pscale_fix.hip
  39. 1 point
  40. 1 point
    When you have complex ocean spectra layered together using masks with varying speeds, and even animated timescales, retiming them while keeping the same approved look becomes a technical challenge. In this lesson you will see how to achieve this as a procedural post-retime operation, without having to modify any ocean spectra individually.
  41. 1 point
  42. 1 point
    It seems to work in all versions of 18.0.x up until 18.0.499. Up until then, somehow, the Transform Pieces node could apply non-named template attributes from a single point to all four wheel points. In 18.0.499 the points have to be matched by a name attribute for it to work. Possibly SideFX have fixed a long-standing bug or broken a normal piece of functionality. No idea which :-) car_rig_bullet_julian_18.0.499.hip
  43. 1 point
    A few of things. On the gasupres node make sure you set the Fluid Type to Smoke, not Pyro. Also, you have to drop down an attribute wrangle between the lores and the upres node to create a detail attribute named @timescale. When this attribute is missing the time scale defaults to 0, which is no motion. Set it to 1.0 to test, but try other values to speed up or slow down the upres. On the output of the lores dopnet, you need to add temperature and vel fields which get forwarded to the upres network. Without those, the upres simulation won't work. ap_smoke_upres.hiplc
  44. 1 point
    Here's a .hip with a sample setup, I'm sure there's a more efficient way to do this but it does work! I'd also recommend building your own meshing setup VDB from particles/particle fluid but since you can output VDB's from the PFS HDA this works too. --Dave DStewart_FLIP_Meshing_Blend2Fuilds_01.hiplc
  45. 1 point
    Here is a concept for turning blueprints into simple 3d meshes. Its basically carving silhouettes into a volume. After getting the aspect ratio for defining the volume´s dimensions ... res_front = hou.imageResolution(img_front) res_side = hou.imageResolution(img_side) res_top = hou.imageResolution(img_top) ratio_side = res_side[1] / float(res_side[0]) ratio_top = res_top[1] / float(res_top[0]) geo.addAttrib(hou.attribType.Global, 'ratio_s', ratio_side, create_local_variable=False) geo.addAttrib(hou.attribType.Global, 'ratio_t', ratio_top, create_local_variable=False) ... a wrangle is carving the silhouettes into the volume from all three sides: vector bbox = relbbox(0, v@P); float mask_front = vector(colormap(image_front, bbox.x, bbox.y)).x; float mask_side = vector(colormap(image_side, bbox.z, bbox.y)).x; float mask_top = vector(colormap(image_top, bbox.x, bbox.z)).x; f@density = min(mask_front, mask_side, mask_top); The rest is a matter of converting to polygons, smoothing and remeshing. blueprint_to_geo.hiplc blueprints.zip
  46. 1 point
    Less lazy attempt: pop_minpos_align_pig.hipnc
  47. 1 point
    Hey Cristina, So in regards to your question about masking the turbulence field. I've attached a scene file showing how to mask a turbulence field. In the example I've built there are a few steps to get this working: 1) in dops you can use the 'gas match field' node to create a new field ('turbmask_custom') based on an existing field. In this case I first want to build the field that is going to be used for masking. (this is the initialization of the variable). 2) then I need to put a value inside the voxels of the newly created field, so I am using a source volume for this, but in the sop to dop bindings, the density field will put its value in the 'turbmask_custom' field instead of adding it to density. 3) the next step is to add the gasturbulence node to create a noise field, but in the control field tab we can specify the mask. So that is where I put 'turbmask_custom' and also set the control influence to 1 so 100% of my field is used. In the case of your skull, ultimately you need a fog volume density field that contains those masking values. In the file I've added in a sphere to represent your skull. I first build an SDF from the sphere geo, then dilate the sdf, then turn it into a fog volume, then rename the field so it is not named 'surface' but instead is named 'density' so my sourcing in dops will be able to find the density field. I've also turned on the velocity visualization in the pyro object so you can see what the velocity field is doing (especially visible if you turn on/off the control field on the gas turbulence). You can get much more fancy by using dynamic fields that change over time (like temperature or heat, or some other custom field), but this should provide a good base example of masking a field in dops. Good luck and definitely post back the results of your project when you're done with it! dop_masking_v001.hip
  48. 1 point
    Orbolt Asset Guidelines This is actually explained on the Orbolt Asset Guidelines page. (about half-way down the page). "opdef:../..?test.bgeo" is what you want in your HDA.
  49. 1 point
    hi, may be this file can help:) fluid flow color.hipnc
  50. 1 point
    Hi Saugaro, I answered your post lightly in the cgalk forums, but I'll continue here... The procedural model does in no way inhibit organic modeling. There are great tools for it, in fact - paint/sculpt/comb brush tools (like Artisan) and Edit operations with allow all manners of deformations to be rolled up into one node. The Edit tools (and several others) has an amazing "soft" mode which allows edits with a soft falloff. So, in short - the procedural model only helps, even with organic modeling. You'll find yourself moving up the node tree and doing a lot of fixes upstream in organic modeling too. Things can get tricky if you start blasting away polygons upstream that are depended on downstream, but this just errors those operations (doesn't blow them away) and you can easily shoot back downstream and reselect the new polys for those operations. There is a subdivide operation to subdivide your models by a specified number of times and there are neat techniques to modeling on the cage and watching the subd surface update - (look at the Template flag). Houdini itself doesn't support subd surfaces as a primitive type - i.e. it doesnt represent the limit surface in the viewer. Mantra (the renderer) does support subd natively though. Houdini will pass it the cage and mantra will give you the limit (infinitely subdivided) surface. In modeling? The UV tools in Houdini are (IMHO) better than mayas and it would take mere minutes to get good UVs out of Houdini for fairly complex models, but the pure modeling process will vary depending on your task, I reckon. Maya is probably quicker for doing operations to multiple objects simulataneously. Modeling a hero piece of geometry is probably very similar. Nope. But you can set up fur rendering - look in the Rendering forum. I hope this helps.. Jason.