Log into your account to keep track of your progress. You can work through the lessons without logging in but your progress will be lost when you refresh the page.
Pragmatic VEX series is aimed to increase the technical capacity of the artists and TDs which will allow them to tackle more complex production shots with complete control and ease by acquiring a deeper technical understanding of how things work in Houdini at the lowest level with a strong applied focus on high-end feature film visual effects production.
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.
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.
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. There are very interesting relationships between the gradients and the contour lines.
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 heightfield is an XZ volume, meaning facing up. Getting the cross product of both of these vectors will give you the contour lines.
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 a mesh of quadrilaterals.
To generate interpolating surfaces for other subdivision schemes we need a method of determining the position and the normal at a set of points on the limit surface. Because the surface is the result of repeated application of a subdivision step, we can analyze the behavior of a small neighborhood of points as they converge to the limit surface in order to determine the surface properties at the point of convergence.
There is a very practical use of the limit surface to figure out where a point is on the subdivision limit surface.
Imagine a character head like the one we were using, and you add a lot of detail to it, just like what we did before using adaptive subdivision.
That sounds all good in action, but what we are missing is the future projection of the same geometry, by additional subdivision, either as a post operation before exporting out the geometry, or as a render time operation.
In any case, this will result in the areas where there is added detail, to be flatter than before, even though it's not the case without adaptive subdivision.
Because if you recall, we were using Catmull-Clark subdivision algorithm, which will keep the original geometry nice and smooth.
If you have access to the subdivision limit surface by patch IDs and the patch UVs, then surely you can scatter points on the limit subdivision limit surface just like you scatter points on a polygonal surface.
And this is exactly what we are gonna do in this chapter.
When we are talking about creating a lot of points, we can not avoid pre-generating them for maximum performance. It might not always be applicable but when it is, the performance gains can be quite significant.
There is a useful modeling concept that's available in many 3d apps including Houdini where you see the original geometry projected onto the subdivision limit surface that allows you to see the flow of the geometry without cluttering the view with the newly added geometric detail.
And that's what we will create in this lesson.
COMMENTS
sda502 2 years, 8 months ago |
The strong accent adds another layer of difficulty to understanding what's going on...
RomainLG 2 years, 8 months ago |
Very good tuto for advanced houdini artist. You won't find this kind of in depth knowledge anywhere else. 10/10
tricecold 2 years, 8 months ago |
Very well organized course. This course really unravels the true power of Houdini.
I use Houdini for over a decade but still come back to pragmatic vex for that extra mile. Great tutorial, great tutor
Ranadeep 2 years, 8 months ago |
I keep this handy at all the time. It is like an appendix for vex. I always find solutions with it. Thank you Yunus.
onevfxer 2 years, 4 months ago |
how to set node network on view ,amazing
LINK FX 2 years, 3 months ago |
I know I know,ask me~
philippsedov 2 years ago |
how?
animatrix_ 1 year, 10 months ago |
It's my custom Python Qt extension. I talk about it in depth here:
https://www.youtube.com/watch?v=HryJBbNwqDw&ab_channel=Houdini
If you like to see this in the next version of Houdini, please send an RFE to SideFX.
Please log in to leave a comment.