Poly Carve SOP can also carve closed polygons where it will still use the points but instead of creating multiple curves, it will keep a single polygon.
This method will carve geometry like a torus as you expect.
Because of this, the higher resolution the surface is, the more detailed carving you can achieve.
Here I used 2 separate nodes for ease of use, but the same result can be achieved using a single Poly Carve node if you have the appropriate primitive attributes on eac...
2019-11-13 12:59:51 +0000 UTC
View Post
Based on regular feedback regarding the technical level required to fully understand my content, I have decided to create regular video tutorials on Patreon, ideally around 30 minute mark per video for ease of consumption. Because it's orders of magnitude more work than packaging my tools, I will create a separate tier, possibly $29 a month, which is still very accessible and is for people who want deeper understanding of advanced topics inside Houdini.
I will post the first one free fo...
2019-11-12 10:18:13 +0000 UTC
View Post
Carves out polygons using a point attribute with the ability to define the carve values per primitive using primitive attributes.
Pure VEX implementation, 10x faster than the default Carve SOP (compiled). It preserves all available attributes.
It supports both open and closed polygons.
https://www.dropbox.com/s/63k1eek78rxfzm0/PolyCarve_SOP_Animatrix.otl?dl=1
2019-11-12 08:37:16 +0000 UTC
View Post
This operator will cook its input at the nearest available (sub)frames. The values are then blended according to the fractional position within the nearest available (sub)frames.
After using the subframe interpolation method extensively that I posted here the last time, I realized this functionality should be turned into a new operator, a new TimeBlend SOP, a successor to the old one, which have significant improvements over it.
Before explaining the differences, it's worth noting...
2019-10-19 02:55:13 +0000 UTC
View Post
In Houdini, dealing with substeps is a complex phenomenon. Writing them is easy, but reading and interpolating between the subframes is tricky.
To write subframes on disk, all you have to do is to use $FF, instead of $F. That's it.
Now to read them, if you use the same file sequence used for writing subframes to disk, and you have the Integer Frame Values option turned off in Global Animation Options, you will have a lot of read errors as you scrub the timeline.
What you hav...
2019-09-29 17:16:04 +0000 UTC
View Post
Transforms a polar image into a rectangle.
Reverse operation of To Polar COP. This operation will preserve the aspect ratio of the image provided the input image has the appropriate size.
COPs are really powerful but unfortunately the architecture is old. 2d volumes is a better generalization of image operations where you can do a lot of homogenous operations.
I am a strong proponent of software orthogonality and generics so I will implement this system in the future, ...
2019-09-07 06:38:33 +0000 UTC
View Post
Transforms a rectangle image to polar coordinates.
This operator demonstrates a lot of useful techniques that can be applied in any contexts as a generic operator. In the future, there will be a larger effort to implement these in VOPs so that they can be used on any data, and not just COPs. I have to come up with a unified method as I can't use context specific functions.
COP context has some very specific properties and functions as they use VEX, as opposed to CVEX functions. In...
2019-08-18 15:16:57 +0000 UTC
View Post
Retimes ocean spectra by altering the time scale directly on the spectra volumes, rather than at the evaluation step, and computes the new time offset to keep the same ocean look by using the reference frame, that will appear in both time scales.
If you are passing spectra data over other departments like lighting, you have to bake the retime operation on the spectra volumes.
Another advantage of using this node is, if you just change time scale directly on the Ocean Spectrum node...
2019-07-23 13:53:53 +0000 UTC
View Post
Computes a blend between 2 values.
The list of supported attribute types are float, vector, vector2, vector4, matrix3, matrix and float array.
In the case of vectors (vector2/3/4), it has the option to treat them as normals as opposed to positions.
https://www.dropbox.com/s/v6cfpttoacvx3b3/Blend_VOP_Animatrix.otl?dl=1
2019-06-30 10:23:55 +0000 UTC
View Post
Linearly interpolates between two colors.
By default it blends colors using the LCh color space. LCh is the perceptually uniform equivalent of HSV, and defines colors using intuitive and perceptually-based luminance (perceived brightness), chroma (richness) and hue. If you are doing any kind of image analysis, it's likely that LCh will be much more useful to you than HSV or RGB.
To implement the LCh color space, you first need to implement the Lab color space. Note that the Lab co...
2019-06-01 12:00:03 +0000 UTC
View Post
Evaluates attributes at the subdivision limit surface using Open Subdiv.
It can be used to preserve the curvature of a geometry after adding new geometric detail, or to create an isoline display for a geometry or to sample the normals at the limit surface so the current geometry can have the smoothest normals it can ever have, etc.
https://www.dropbox.com/s/2mr3j...
2019-04-15 06:27:58 +0000 UTC
View Post
Volume Sharpen SOP can now sharpen VDB volumes on the non-OpenCL branch.
I implemented a lot of new enhancements for the Path Deform SOP. It's a much more powerful deformer now that can perform a lot of complex deformations, undo and redo them (undeform and redeform).
1. 3 Operations: Deform, Undeform and Redeform.
2. Redeform operation: If a second path is provided using the 3rd input, the geometry will first be undeformed using the first path, and then redeform...
2019-03-15 07:07:44 +0000 UTC
View Post
Path Deform can supersede a lot of deformers like bend, bias, gain, stretch and twist with the ability to describe much more complex deformations along a path.
That's why I decided to enhance this deformer quite a bit. So far I added 3 new features. Bias shifts the points to accumulate at one end of the path. Gain shifts the points to accumulate at or away from both ends of the path.
I also added a new mode called Undeform that allows you to restore geometry to its undeformed stat...
2019-02-11 05:51:55 +0000 UTC
View Post
Here is the list of compilable SOPs as of right now:
Bend SOP
Bias SOP
Boxify SOP
ClusterFoam SOP
ColorRandom SOP
ConvertPackedToPoints SOP
CurveFrame SOP
Cylindrify SOP
Displace SOP
Flatten SOP
Gain SOP
Jitter SOP
Lambda SOP
Melt SOP
Mountain SOP
Neighbour SOP
PathDeform SOP
PCA SOP
PointConnect SOP
Proximity SOP
Ripple SOP
Skew SOP
Spherify SOP
Spli...
2019-01-19 02:10:13 +0000 UTC
View Post
This operator invokes any number of operations on any number of arbitrary attributes over any geometry/element/number or no input at all, in a feedback or merge gather style.
In computer programming, lambda function is an anonymous function (function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier. Anonymous functions are often arguments being passed to higher-order functions, or used for constructing the re...
2019-01-07 03:51:12 +0000 UTC
View Post
Hi everyone, the year is almost over. Just want to inform everyone that I have been updating a lot of HDAs in the background, for bug fixes, new features, improved performance and making sure the HDAs are compilable unless there is a default Houdini node inside that is not compilable yet.
I am not posting each time I make a change to reduce clutter, but you can download the latest version of each node I posted here to enjoy the improvements.
Next week I will try to finish a new to...
2018-12-31 08:10:30 +0000 UTC
View Post
Smooths out points using a low pass filter either by Taubin or Laplacian algorithm.
1. OpenCL acceleration.
2. VEX code branch.
3. Two algorithms to choose from: Taubin and Laplacian. I merged the Relax SOP code into this operator as Laplacian.
4. Ability to use edge or primitive neighbours with any depth.
5. Ability to use point clouds to find neighbours instead of connectivity.
6. Ability to reproject geometry onto original input geometry at each iteration.
<...
2018-12-03 04:57:07 +0000 UTC
View Post
The built-in Gas Strain Forces DOP is single-threaded. This is the VEX version of the Gas Strain Forces DOP, that uses a strain field to determine what forces should be applied to mitigate that strain. This acts as a restorative force to undo the distortion that caused the strain. You can use it as a drop in replacement for the original one.
It's meant to be used in conjuction with Gas Strain Integrate DOP.
These microsolvers are not as straight forward to multi-thread as face and edge s...
2018-11-18 23:22:53 +0000 UTC
View Post
Convert Packed To Points SOP allows you to convert packed geometry into points and stores the packed transform and pivot data on the points. It has an option to convert the transform primitive intrinsic attribute into a quaternion to save memory and disk space. It's on by default.
Transform Packed SOP allows you to transforms packed geometry using transform data found on a point cloud from the second input.
Together these VEX operators allow the fastest and the most efficient way to stor...
2018-10-29 00:13:35 +0000 UTC
View Post
Creates poly lines between points.
Has a lot of parameters that streamlines constraint network creation, such as inter/intra-clusters.
Can optionally connect between the same/differing attribute values while also being able to optionally remove duplicates using another attribute.
https://www.dropbox.com/s/c49lkpb2ifbg1hd/PointConnect_SOP_Animatrix.otl?dl=1
2018-09-23 06:25:03 +0000 UTC
View Post
Applies Gaussian blur to a volume.
Features:
1. It is orders of magnitude faster than the default Volume Blur SOP when significant number of iterations are used and OpenCL acceleration is turned on.
2. Min/Max Cut Off thresholds
3. Both OpenCL and C++ network branches.
4. No radius option by design. Using radius creates a large kernel to execute. It's much faster to use 3x3x3 kernel with many iterations that yields a much higher quality result. Using radius also ...
2018-08-25 16:24:48 +0000 UTC
View Post
A quite useful and a hidden gem inside Houdini is its feature to record the name (and computer) of the creator of every single node ever created. It's not displayed anywhere by default so I wrote a Python script to color nodes by their creator and also add this name as a suffix to each node.
Very handy when debugging and/or inheriting someone else's scene/setup or HDA. Now you know who to blame :P
After installing the preset, just create a Null node and then load the preset, or run...
2018-08-09 05:10:24 +0000 UTC
View Post
Sharpens the voxels of a volume using the unsharp mask technique that enhances edges via a procedure that subtracts a blurred version of the volume from the original volume.
Features:
1. It is orders of magnitude faster than the default Volume Wrangle SOP when significant number of iterations are used and OpenCL acceleration is turned on.
2. Separate controls for blurring and sharpening iterations.
3. Min/Max Cut Off thresholds
4. Ability to use a mask volume to mask ou...
2018-07-22 19:50:37 +0000 UTC
View Post
Convolves a volume by a 3×3×3 kernel using OpenCL acceleration.
This operator takes each 3×3×3 neighbourhood of a voxel, multiplies it by a set of coefficients, and combines the result into a total. It can be used for blurring, sharpening, embossing, edge detection, and more.
It is orders of magnitude faster than the default Volume Convolve SOP when significant number of iterations are used and OpenCL acceleration is turned on. I also added a non-OpenCL (C++) branch.
Includes a...
2018-06-24 20:57:46 +0000 UTC
View Post
How to delete points from a camera view using occlusion in a point cloud with variable radius, without instancing actual geometry.
Because of the perspective distortion, it might look like there are overlapping points but I added a planar camera projection preview mode that shows that no point is actually overlapping.
Based on a question on the Sidefx forum.
https://www.dro...
2018-06-06 02:55:06 +0000 UTC
View Post
Moves points away from each other using their edge or primitive neighbours.
1. OpenCL acceleration.
2. VEX code branch.
3. Ability to use edge or primitive neighbours.
4. Ability to specify any depth of neighbours.
5. Ability to reproject geometry onto original input geometry at each iteration.
6. Ability to constrain borders.
https://www.dropbox...
2018-05-21 18:23:38 +0000 UTC
View Post
Adaptively subdivides geometry using proximity look ups to another geometry.
Subdivision depth: 14
6.5M vs 26.8B polygons (about 4K less)
To avoid having holes in the geometry, use the Houdini-Catmull Clark algorithm. However this will be significantly slower, and prohibitively expensive at these subdivision levels.
Adaptive Subdivide SOP
2018-04-22 17:47:39 +0000 UTC
View Post
Creates connections between adjacent pieces of a geometry where each piece has a unique attribute.
This is a much more generalized version of what's shown in the video.
It has a lot more features such as the ability to create connections using piece centers or face centers. This plays an important role when using these polygons as Bullet constraints.
I will update the video later on.
2018-04-08 01:20:58 +0000 UTC
View Post
Creates foam clusters from a point cloud.
Can be used for a variety of effects like creating whitewater foam.
Implemented entirely using VEX. Shows a couple tricks like pre-generating points to achieve max performance as creating points in VEX is a sequential operation.
https://www.dropbox.com/s/9v4li0cgmr4l9y9/ClusterFoam_SOP_Animatrix.otl?dl=1
2018-03-13 04:00:04 +0000 UTC
View Post