Isotropix Forums

What is "Building tessellation UV maps of object..." doing?

General Discussion about Isotropix and CG related topics

What is "Building tessellation UV maps of object..." doing?

Unread postby bvz » Thu Mar 16, 2023 9:15 pm

I am trying to replicate one of our internal scenes that uses a lot of USD assets in the PLE version of Clarisse. (trying to evaluate it as a potential set dressing tool).

But often the scene gets stuck on this step:

"Building tessellation UV maps of object '<some object>'"

For some assets this can take up to 2 or 3 minutes to complete. On others it appears to get stuck indefinitely on this stage (or at least I give up after 20 minutes or so). What is this step doing, and is there a way I can either skip it or restructure our assets to optimize it?

Edit: Could it be that if the asset contains meshes that do not have UV's defined that it can really slow down? I'm trying to find the commonality between the assets that take a long time to go through this step.

Thanks!
bvz
 
Posts: 107
Joined: Tue Dec 03, 2013 9:55 am

Re: What is "Building tessellation UV maps of object..." doi

Unread postby dcourtois » Fri Mar 17, 2023 12:08 pm

Hi,
This happens when an object has subdivision enabled: In this case, we need to also tessellate the UV maps.
Now why does it take this long on some assets, I've no idea. Maybe a bug? Or maybe the asset in question is huge (e.g. if a mesh with a million primitives is tessellated, this step can take quite a while) If you can share the USD assets where this happens, we could have a look at it.
And if you don't want tessellation, then you have 2 choices: The first one is to disable them directly in the USD stage (subdivisionScheme attribute set to "none", see https://openusd.org/dev/api/class_usd_g ... 6cfafb7c0a)
And the second is to disable it in Clarisse directly: "Enable Subdivision Surface" attribute in the "Geometry > Subdivision Surfaces" category on all geometry objects.
User avatar
dcourtois
 
Posts: 130
Joined: Tue Jul 25, 2017 3:15 pm

Re: What is "Building tessellation UV maps of object..." doi

Unread postby bvz » Fri Mar 17, 2023 2:45 pm

Thanks so much. I will try disabling it in Clarisse directly for now. Unfortunately I cannot share the USD itself.

Now that I know what this step does, I can try to figure out why some assets are so slow. None of them are particularly large - often no more than tens of thousands of polygons per asset as far as I recall - but now I can inspect each asset more closely. If I can figure it out, I will let you know. Thanks again.
bvz
 
Posts: 107
Joined: Tue Dec 03, 2013 9:55 am

Re: What is "Building tessellation UV maps of object..." doi

Unread postby bvz » Fri Mar 17, 2023 6:31 pm

I am trying to disable the subdivision on these assets, but I don't see the option for "Enable Subdivision Surface". This is because, apparently, USD bundles do not offer that option. Unfortunately I cannot reference the USD assets directly because:

1) I need to move them as single assets, not as a completely expanded hierarchy of individual meshes
2) The number of nodes in the Explorer becomes far too large with close to 10,000 instances of about 300 individual assets, each with hundreds of sub-meshes. Clarisse basically shuts down with so many individual nodes.

Is there any way to disable subdivisions for USD bundles?
bvz
 
Posts: 107
Joined: Tue Dec 03, 2013 9:55 am

Re: What is "Building tessellation UV maps of object..." doi

Unread postby dcourtois » Tue Mar 21, 2023 9:45 am

Hi,
Sorry for the late reply. For some reasons there isn't :/
I'll try to see if we can add the possibility to either add a checkbox like in referenced geometries, or at least allow the tesselletion level to be 0.
User avatar
dcourtois
 
Posts: 130
Joined: Tue Jul 25, 2017 3:15 pm

Re: What is "Building tessellation UV maps of object..." doi

Unread postby bvz » Tue Mar 21, 2023 7:02 pm

That would be a nice addition. Thanks!
bvz
 
Posts: 107
Joined: Tue Dec 03, 2013 9:55 am

Re: What is "Building tessellation UV maps of object..." doi

Unread postby bvz » Sat Mar 25, 2023 12:30 am

I did a little more work with this and discovered that the assets that are slow throw a LOT of warnings like this:

Code: Select all
warning: The property set to drive the tessellation level of the sub-object 0 in the bundle 'build://project/DRESSING/asset_a' does not exist.


There can be anywhere from dozens of messages up to several thousands of messages like this per asset (with incrementing sub-object numbers). I don't know if there is a way to speed up Clarisse on your side when it comes across mal-formed assets like this or not. I think it would be a benefit if you were able to somehow speed that up.

But on my end I am going to investigate what property it is missing (I assume some sort of a subdivision surface property) and try to ensue the model is properly constructed in the hopes of speeding up the load times.

If you know offhand which property this is, that would - of course - be helpful as well. Thanks.
bvz
 
Posts: 107
Joined: Tue Dec 03, 2013 9:55 am

Re: What is "Building tessellation UV maps of object..." doi

Unread postby dcourtois » Tue Mar 28, 2023 10:35 am

The property is the one set in your project on the bundle iteself: Geometry > Subdivision Surfaces > Advanced section, Subdivision Level Mode = Use Property, and then the Subdvision Level Property is the one telling which property is being used to control subdivision level.

As for "fixing malformed" assets, yes, we could try, but: First, it's a rabbit hole. Once we start fixing something, we end up trying to fix everything, people will start complaining about their own problem not being addressed, and we'd end up spending most of our time trying to fix broken assets instead of actually working on what's important.
Secondly, it would just hide the dirt under the rug: fixing assets would mean doing work under the hood every time the asset is loaded, so you'd end up with loading times worse than if the asset was correct in the first place, without you ever realizing or caring (who pays attention to warning unless there's a big performance issue..)
So for both of those reasons put together, nope, it wouldn't benefit Clarisse to try and tackle those things :) Assets should be authored correctly in the first place.

That being said, this case is a bit special, it's not reason a case of a "broken" asset, it's more a case of how Clarisse works vs how USD does. The thing I mentioned in an earlier post (e.g. a tessellation level of 0 to disable tessellations, either for the whole bundle, or on a per-geometry basis, using properties) has been implemented, so it should be available in the next SP, and that should allow you to "fix" those assets.
User avatar
dcourtois
 
Posts: 130
Joined: Tue Jul 25, 2017 3:15 pm


Return to General Discussion
cron