Working with Variants and LODs

   2334   8   1
User Avatar
Member
4 posts
Joined: July 2019
Offline
Do LODs always need to be prefixed with LOD#? How does this work if you want to have LOD of a model with other model variants?
User Avatar
Member
4 posts
Joined: July 2019
Offline
To elaborate more, say I have a chair asset. This asset has 3 model variations of different chairs and I need LODs for each of these variants. Would they be LOD0_CHAIR_A, LOD1_CHAIR_A, LOD0_CHAIR_B, LOD1_CHAIR_B, etc?
User Avatar
Staff
4159 posts
Joined: Sept. 2007
Offline
Nope variantSets don't intrinsically have a concept of “LOD”, though they can be used for that. That HDA in LOPs is just an example setup; maybe SESI have plans for something that looks for LOD-prefixed variants in a given variantSet?

USD has some other mechanisms for LOD, such as Purpose and Draw Mode. As VariantSets can't be animated over time, they couldn't work for any dynamic LOD conventions.

Hope that helps!
I'm o.d.d.
User Avatar
Staff
4435 posts
Joined: July 2005
Offline
As to your second question, where you have three chair varaitions, each presumably with its own set of LODs, you would use two separate variant sets. The first set would be “ChairModel”, which could give you the choice of “ChairA”, “ChairB”, and “ChairC”. Then you'd have a variant set called “MyLod”, and each chair variant would be responsible for defining the choices available within this second variant set (mybe “MyLodA”, “MyLodB”, and “MyLodC”). You'd presumably want all the chair to have the same number of LOD variants with the same names so that you could set the MyLod variant set selection without caring which chair model variant was selected (though having them match up like this wouldn't be enforced in any way, and you may in fact want to have more LOD variants for some chair models than others).
User Avatar
Member
190 posts
Joined: Dec. 2016
Offline
Hello i made this post where i explained my specific problem.
https://www.sidefx.com/forum/topic/94486/ [www.sidefx.com]
does annyone know if this is possible or if i have to do the varient selection in diferent nodetrees ?

PS.
goldleaf
Nope variantSets don't intrinsically have a concept of "LOD", though they can be used for that. That HDA in LOPs is just an example setup; maybe SESI have plans for something that looks for LOD-prefixed variants in a given variantSet?

USD has some other mechanisms for LOD, such as Purpose and Draw Mode. As VariantSets can't be animated over time, they couldn't work for any dynamic LOD conventions.

Hope that helps!
PS. if you use drawmode and switch between those, wouldn't they still be in memory?
Edited by NicTanghe - Feb. 16, 2024 13:04:42
User Avatar
Staff
4159 posts
Joined: Sept. 2007
Offline
NicTanghe
Hello i made this post where i explained my specific problem.
https://www.sidefx.com/forum/topic/94486/ [www.sidefx.com]
does annyone know if this is possible or if i have to do the varient selection in diferent nodetrees ?

PS.
goldleaf
Nope variantSets don't intrinsically have a concept of "LOD", though they can be used for that. That HDA in LOPs is just an example setup; maybe SESI have plans for something that looks for LOD-prefixed variants in a given variantSet?

USD has some other mechanisms for LOD, such as Purpose and Draw Mode. As VariantSets can't be animated over time, they couldn't work for any dynamic LOD conventions.

Hope that helps!
PS. if you use drawmode and switch between those, wouldn't they still be in memory?

No, Variant Sets are like references, the things they are changing must be encapsulated beneath the primitive w/ the variant set.

With LOPs they may still be in memory, since the Viewport stage and Network's stage can differ.
I'm o.d.d.
User Avatar
Member
190 posts
Joined: Dec. 2016
Offline
Does this no refer to the variants and the lods being separate sets not being possible ?

i guess i wilhave to export them as seperate entries then as i could only figure out how to get and set the drawmodes working as described. only get and set them on a per primitive basis not what to select on a component basis.
Edited by NicTanghe - Feb. 17, 2024 14:03:12
User Avatar
Member
9 posts
Joined: Jan. 2024
Offline
I just wanted to remark something that came up on recent USD-Asset Workgroup meeting:

Note that Variants in USD can not be animated over time. A single USD stage cannot author e.g. timesamples for variant selections and thus within a single USD file it would be impossible to say animate the LOD variant of a prim based on whether it would get closer or further away from the camera.

This by itself makes Variants a bad candidate for those uses of LODs where it would switch dynamically.

You could always write a USD per frame and render that instead - but I just wanted to mention that it might give you problems in certain cases.

What the "recommended" workflow was instead for switching LODs dynamically didn't really find a definitive answer in that meeting if I recall correctly - so I'll leave that to others to answer. Just wanted to highlight the potential issue you might face in the future.
User Avatar
Member
273 posts
Joined: Nov. 2013
Offline
If you want to use variants along with dynamic lod your best (out-the-box) option is probably a pointinstancer. The prototype a pointinstancer point is looking at can be time-varying. In practice it can be tough to do without visible pops though.
  • Quick Links