Transforms an image using polar inversion.
Custom multisample anti-aliasing (MSAA) as well as bilinear and full filtering options.
Can mirror or repeat outside bounds.
Can also be adapted to 2d or even 3d volumes. Though you would have to decide what to do with the 3rd dimension.
2020-09-26 16:29:01 +0000 UTC
View Post
VEX Select Edges By Primitive Attribute SOP
Selects edges using a primitive attribute that have different values for each primitive of the edge.
This is a VEX-based operator, and it's much faster than the built-in Group from Attribute Boundary SOP, which is single-threaded. Multi-threaded operator...
2020-09-14 09:59:14 +0000 UTC
View Post
Subdivision surfaces are piecewise parametric surfaces defined over meshes of arbitrary topology.
It's an algorithm that maps from a surface to another more refined surface, where the surface is described as a set of points and a set of polygons with vertices at those points. The resulting surface will always consist of...
2020-09-13 05:53:22 +0000 UTC
View Post
We have already seen how to apply gradient ascent, descent and contour lines to heightfield like planar geometry. The same concept can be applied to heightfields.
Because heightfields are volumes, getting the gradient is very easy by using the volumegradient function. The normal of a heightfield is (0, 1, 0) if the heig...
2020-09-07 11:11:28 +0000 UTC
View Post
Hey guys, I will be presenting for Singapore HUG on September 15 [9PM Singapore Time, 9AM Montreal/Toronto Time] about:
Retiming Ocean Spectra and the Pragmatic Approach to Solving Technical Problems in VFX
When you have complex ocean spectra layered together using masks with varying speeds, and e...
2020-09-04 08:39:33 +0000 UTC
View Post
When computing oriented bounding box (OBB), it's very desirable for the bounding box to be robust, i.e. not flip arbitrarily when the input geometry is animated.
Bound SOP doesn't support temporal data. To compute a robust oriented bounding box that takes temporal data into account, we first need to establish a st...
2020-09-01 16:53:31 +0000 UTC
View Post
Now that we know about gradients, there is another concept that's related to them that can be acquired quite easily, and that concept is contour lines.
A contour line (also isoline) of a function of two variables is a curve along which the function has a constant value, so that the curve joins points of equal value. The...
2020-09-01 06:50:37 +0000 UTC
View Post
Subdivide SOP previously implemented an improved OpenSubdiv Catmull-Clark and OpenSubdiv Bilinear algorithms using VEX, which handles a lot more topological cases and produces better results than the default OpenSubdiv algorithms for certain geometry, i.e. open polygonal curves, non-manifold geometry, mixed topology, etc.
...
2020-08-24 05:04:42 +0000 UTC
View Post
We have implemented gradient ascent and descent on planar geometry, much like a terrain where we used the gradient of the height.
For an arbitrary geometry, what can we use as the cost attribute? One thing we can use is depth.
2020-08-23 13:49:21 +0000 UTC
View Post
Gradient descent is an optimization algorithm used to minimize some function by iteratively moving in the direction of steepest descent as defined by the negative of the gradient.
www.pragmatic-vfx.com
2020-08-16 08:15:20 +0000 UTC
View Post
After more than 5 months of unimaginable amount of work, I am proud to release my first in-depth Houdini course on VEX. More details in the video description and the website: www.pragmatic-vfx.com
Active Patreon members will receive additional discou...
2020-08-13 06:23:39 +0000 UTC
View Post
These are two of my favourite utility SOPs. They can make the handling of multiple attributes of all types and classes much easier, thus avoiding to write convoluted VEX code to do the same.
As you know VEX doesn't have generics like C++ or C#. Therefore handling multiple attributes of different types cause unnecessaril...
2020-08-10 07:25:42 +0000 UTC
View Post
Rigid Transform SOP will now transform all appropriate attributes based on their type info using the computed transformation matrix.
https://www.dropbox.com/s/5bd7uftfqr33vhx/RigidTransform_SOP_Animatrix.o...
2020-08-05 15:30:57 +0000 UTC
View Post
Good news: The course is ready to launch :)
Another good news: Due to a potential partnership with a major hardware manufacturer, I have to delay the launch by about a week or two max. We will discuss the specifics and how to proceed next week.
This will create a lot of value for both parties so it will prove to b...
2020-08-05 15:30:22 +0000 UTC
View Post
Nearing the release, I wanted to post the table of contents of my upcoming VEX course for my patrons. I still have to do a few things left to do like the promo video, rendering everything, distribution, reviewing the scene files, etc. But the hardest part is finished at least after unimaginable amount of work.
Enjoy :P<...
2020-07-24 07:28:57 +0000 UTC
View Post
I have been working on an advanced VEX course for the last 5 months, that's 11+ hours, spanning more than 130 videos.
There will be more details in the upcoming weeks, as I am nearing the release, but I wanted to give patrons some sneak peek.
It will be a commercial course, but existing patrons will receive discou...
2020-07-16 18:36:19 +0000 UTC
View Post
Subdivision surfaces are piecewise parametric surfaces defined over meshes of arbitrary topology.
It's an algorithm that maps from a surface to another more refined surface, where the surface is described as a set of points and a set of polygons with vertices at those points. The resulting surface will always consist of...
2020-07-03 08:34:29 +0000 UTC
View Post
Computes the gradient of a scalar attribute using connectivity or proximity.
Gradient of a scalar value is an extremely useful concept, and even though we have this as volumegradient in Houdini in the form of a volume operation, it's still very beneficial to know how to compute this manually, particularly without using ...
2020-06-28 02:01:00 +0000 UTC
View Post
Instead of writing custom Python code like above to generate the tokens and labels for a parameter menu, listing the geometryβs attributes, you can use the hou.Geometry.generateAttribMenu function that's added and improved very recently:
2020-06-09 16:02:38 +0000 UTC
View Post
The natural progression from VEX Edge Divide to bilinear subdivision is quite linear. That's also why I started with Edge Divide first as a stepping stone, both in terms of relevancy to the previous topics that led up to that moment, as well as logically dividing up the tasks to fully implement Catmull-Clark subdivision in VE...
2020-06-03 10:35:57 +0000 UTC
View Post
Splits edges of polygons by a number of divisions.
Splitting edges of a polygon is pre-cursor to subdividing a polygon. So doing this will move you closer to implementing subdivision surfaces using VEX, if you choose to do it.
There are many ways to implement this. You can perform everything using a single detail ...
2020-05-22 19:34:42 +0000 UTC
View Post
Adaptively subdivides geometry using proximity look ups to another geometry.
Performance gains can range from 10 to 1000s of times over Houdini Catmull-Clark subdivision surfaces algorithm where the gains increase a lot more at higher subdivision levels. t0*2^n vs t0*5^n to t0*5.7^n where n is the number of iterations a...
2020-05-02 05:01:00 +0000 UTC
View Post
This operator computes a transformation matrix using SVD (Singular Value Decomposition) by looking at the difference between 2 point clouds, which is projected into a rigid transform consisting of a rotation, non-uniform scale and translation. The resulting matrix is then used to transform the input geometry.
You can s...
2020-04-18 13:12:25 +0000 UTC
View Post
This operator procedurally selects edge rings given an edge group.
It has the same performance characteristics of Select Edge Loop SOP, so expect same speed gains over the native methods.
I also want to extend both of these SOPs to allow intelligent edge pairing. For example if you select 2 edges in the same loop/...
2020-04-01 10:52:19 +0000 UTC
View Post
I did a comparison of 3 methods of selecting edge loops from a given edge group. To my surprise my Select Edge Loop SOP I wrote back in 2014 is 35x faster than both the Group Find Path SOP which is a compiled C++ SOP node and the hou.Geometry.edgeLoop Python function which if I am not wrong, simply calls the same HDK function...
2020-03-14 06:59:29 +0000 UTC
View Post
PCA SOP now uses SVD (Singular Value Decomposition) to compute the PCA, instead of EVD (Eigen Value Decomposition).
SVD is more precise, robust and numerically reliable than EVD.
The new version is completely redesigned, where the computed eigen vectors and the orient attribute will be on the points, and P will re...
2020-02-17 13:00:01 +0000 UTC
View Post
In this video I will show you some of the inner workings of the context-sensitive rule-based hotkey system that I implemented and one I have been using for a while to speed up my workflow inside Houdini.
It's a very light-weight and flexible system that allows an arbitrary number of actions to be assigned to any key, wi...
2020-01-18 11:24:45 +0000 UTC
View Post
2019 is about to end, which will start a new decade. I hope the new year will prove to the best one there is. I wish everyone happy holidays.
Always keep learning and hustling. The best things are yet to come π
2019-12-27 07:30:00 +0000 UTC
View Post
In this video I will go through the GUI customizations I did for Houdini 18. There will be another video for the new hotkey system I implemented after I finish the implementation and post it on patreon. So let's get into it.
2019-12-26 15:41:23 +0000 UTC
View Post