Attribute as "depth" value on the SubDivide node?

   1995   7   3
User Avatar
Member
408 posts
Joined: June 2015
Offline
It seems i'm not able to use a point or primitive attribute as Depth value on the subdivide node, why is that? What is the work around please? Cheers, A.
User Avatar
Member
275 posts
Joined: Nov. 2013
Offline
The subdivide node supports a primitive group, so I guess you could create some groups and use a separate subdivide node for each one.
Edited by antc - Aug. 21, 2022 20:53:31
User Avatar
Member
7808 posts
Joined: Sept. 2011
Offline
Adriano
It seems i'm not able to use a point or primitive attribute as Depth value on the subdivide node, why is that? What is the work around please? Cheers, A.

You can't really subdivide different parts of a mesh by different amounts. Using groups is only possible because the subdivision creates a seam between the subdivided area and the original mesh. This seam can be stitched, but the topology isn't that pretty.
User Avatar
Member
8597 posts
Joined: July 2007
Offline
doing it in feedback for loop is a way to go
however I'd use Houdini Catmull-Clark mode even though it's much slower it doesn't create cracks
OpenSubdiv for some reason splits the mesh at specified Group, which is very unfortunate
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
4530 posts
Joined: Feb. 2012
Offline
I would recommend adaptive subdivision rather than trying to store final subdivision levels as an attribute, as that won't have enough resolution to have fine subdivisions. I used this approach on ocean interactions many times:



tamte
doing it in feedback for loop is a way to go
however I'd use Houdini Catmull-Clark mode even though it's much slower it doesn't create cracks
OpenSubdiv for some reason splits the mesh at specified Group, which is very unfortunate

This caused a lot of problems for me also when I was working on the face cracks setup on X-Men: Dark Phoenix. Houdini CC works but the cooking times increase exponentially.

Needless to say there is an RFE if anyone wants to bump it up: #105822

In any case I did create 2 solutions, one using OpenSubdiv as is but merged points robustly without using proximity. The other solution involves rewriting Catmull-Clark subdivision from scratch using VEX (about 500 lines of code, nothing crazy) based on OpenSubdiv rules:



My version does a lot more than the default OpenSubdiv implementation though, particularly fixes several bugs and edges cases such as handling mixed geometry, where OpenSubdiv either messes up point positions or outright deletes geometry it doesn't like.

If anyone is interested, I do cover both approaches from scratch to final implementation in my VEX course
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
408 posts
Joined: June 2015
Offline
tamte
doing it in feedback for loop is a way to go
however I'd use Houdini Catmull-Clark mode even though it's much slower it doesn't create cracks
OpenSubdiv for some reason splits the mesh at specified Group, which is very unfortunate

Thanks, cracks are fine i can always fuse them afterward. But i don't have more time to build the set up in a fullproof fashion now so I got that affordable HDA on gumroad that pretty much does just that. Sadly the method is indeed a bit slow but it does the trick.

Cheers,

A.
User Avatar
Member
408 posts
Joined: June 2015
Offline
animatrix_
I would recommend adaptive subdivision rather than trying to store final subdivision levels as an attribute, as that won't have enough resolution to have fine subdivisions. I used this approach on ocean interactions many times:



tamte
doing it in feedback for loop is a way to go
however I'd use Houdini Catmull-Clark mode even though it's much slower it doesn't create cracks
OpenSubdiv for some reason splits the mesh at specified Group, which is very unfortunate

This caused a lot of problems for me also when I was working on the face cracks setup on X-Men: Dark Phoenix. Houdini CC works but the cooking times increase exponentially.

Needless to say there is an RFE if anyone wants to bump it up: #105822

In any case I did create 2 solutions, one using OpenSubdiv as is but merged points robustly without using proximity. The other solution involves rewriting Catmull-Clark subdivision from scratch using VEX (about 500 lines of code, nothing crazy) based on OpenSubdiv rules:



My version does a lot more than the default OpenSubdiv implementation though, particularly fixes several bugs and edges cases such as handling mixed geometry, where OpenSubdiv either messes up point positions or outright deletes geometry it doesn't like.

If anyone is interested, I do cover both approaches from scratch to final implementation in my VEX course


Thanks Mate, no disrespect to your talent and experience, i just can't afford your patreon just for this purpose, found an other HDA for 10$ that does the trick so i kinda moved on already. But great stuff you created there for sure, i watched the video over it yesterday when searching, Nice stuff.

Cheers,

A.
User Avatar
Staff
48 posts
Joined: May 2021
Offline
Regarding the performance of crack closing with Houdini's Catmull-Clark subdivision, version 19.0.683+ and version 19.5.316+ have some optimizations that should make this procedure much faster. Thanks.
  • Quick Links