Yunus Balcioglu

animatrix_

About Me

Expertise
Technical Director
Location
Canada

Senior FX Technical Director @ Industrial Light & Magic | Feature film credits include: Star Wars: The Rise of Skywalker, X-Men: Dark Phoenix, Aquaman, Alien: Covenant, Pirates of the Caribbean: Dead Men Tell No Tales and many more

Connect

My Talks

obj-image Worldwide HUG
Retiming Ocean Spectra & The Pragmatic Approach to Solving Technical Problems in VFX

My Tutorials

obj-image Advanced
Pragmatic VEX 1 | Limit Surface Sampling | Moving Points to the Subdivision Limit Surface
obj-image Advanced
Pragmatic VEX 1 | Limit Surface Sampling | Introduction & OpenSubdiv Patches
obj-image Advanced
Pragmatic VEX 1 | Implementing Catmull-Clark Subdivision | Introduction & Rules
obj-image Advanced
Pragmatic VEX 1 | Gradient Ascent, Descent & Contour Lines | Heightfields
obj-image Advanced
Pragmatic VEX 1 | Gradient Ascent & Descent | Contour Lines
obj-image Advanced
Pragmatic VEX 1 | Gradient Ascent & Descent | 3D Geometry

Recent Forum Posts

Pragmatic VEX: Volume 1 [4K] [H18.5] Sept. 14, 2021, 5:49 a.m.


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.

But in other cases where you might have additional detail using algorithms such as Bricker, it might result in the areas where there is added detail to be flatter than before.

But we don't necessarily want this. What we want is to create detail without disturbing the future subdivided shape of the geometry.

So how can we do this?

Evaluating attributes at the subdivision limit surface gives us a way out.

Using @ptnum & npoints() to "softly" apply noise Sept. 5, 2021, 5:17 a.m.

I can point out the issues in that line but even if you fixed those, it still wouldn't work

Because you can't use actual VEX code in parameters like that. You can use either Python or hscript expressions.

Alternatively some nodes allow writing actual VEX code to override node parameters in which case it will have a toggle like "Use VEXpression".

Using @ptnum & npoints() to "softly" apply noise Sept. 4, 2021, 11:19 p.m.

Hi,

You can't write real VEX code inside parameters. Easiest way is to do it using a Point Wrangle to blend the result between the original and noised version:

float blend = relbbox ( @P ).x;

@P = lerp ( @P, @opinput1_P, blend );