Deal of The Day! Hurry Up, Grab the Special Discount - Save 25% - Ends In 00:00:00 Coupon code: SAVE25
Welcome to Pass4Success

- Free Preparation Discussions

NVIDIA NCP-OUSD Exam - Topic 7 Question 11 Discussion

Suppose you had the following layer:#usda 1.0(defaultPrim = "ParentXform")def Xform "ParentXform"{def Mesh "ChildMesh"{}}If you wanted to add a property to "ParentXform" such that it would automatically propagate to "ChildMesh" without having to add the same property to "ChildMesh", which of the following changes to "ParentXform" would make this work?
C) Add the property as a primvar, with 'constant' interpolation: string primvars:myProperty = 'TestValue' ( interpolation = 'constant' )
A) Add the property as a custom attribute: custom string myProperty = 'TestValue'
B) Add the property as a relationship to </ParentXform/ChildMesh>: rel myProperty = </ParentXform/ChildMesh>

NVIDIA NCP-OUSD Exam - Topic 7 Question 11 Discussion

Actual exam question for NVIDIA's NCP-OUSD exam
Question #: 11
Topic #: 7
[All NCP-OUSD Questions]

Suppose you had the following layer:

#usda 1.0

(

defaultPrim = "ParentXform"

)

def Xform "ParentXform"

{

def Mesh "ChildMesh"

{

}

}

If you wanted to add a property to "ParentXform" such that it would automatically propagate to "ChildMesh" without having to add the same property to "ChildMesh", which of the following changes to "ParentXform" would make this work?

Show Suggested Answer Hide Answer
Suggested Answer: C

The correct mechanism is a constant-interpolation primvar. NVIDIA's Learn OpenUSD glossary defines primvars as primitive variables authored using the primvars: namespace and interpolation metadata such as constant, uniform, vertex, and faceVarying. Primvars are designed to carry geometric or shading-related data in a way that consumers can discover through UsdGeomPrimvarsAPI and UsdGeomPrimvar. (docs.nvidia.com)

Option C is correct because constant primvars can inherit down the namespace hierarchy. The OpenUSD UsdGeomPrimvar documentation states that constant interpolation primvar values can be inherited by child prims unless those children author their own opinion for the same primvar. (openusd.org) This allows primvars:myProperty authored on /ParentXform to be discovered on /ParentXform/ChildMesh without duplicating the property on the mesh.

Option A is incorrect because ordinary custom attributes do not automatically propagate to descendant prims. Option B is incorrect because a relationship targets another object; it does not create inherited property data on that target. This aligns with Data Modeling Primvars, Constant Interpolation, Namespace Inheritance, and Geometric Property Authoring.


Contribute your Thoughts:

0/2000 characters

Currently there are no comments in this discussion, be the first to comment!


Save Cancel