all  /  full_assets  / Teapot  / Teapot .usd

Teapot Model

Teapot Models with different Draw Modes File: DrawModes.usd

A model of the classic Utah Teapot, with other Teapot variations.

Details

The Teapot asset is a model, specifically a component. Among the other expected features of a component (such as a payload), it demonstrates properly configured draw modes. Also represented are geomsubsets, model and shading variants, and UsdPreviewSurface 2.4 materials.

Draw Mode provides a light-weight representation of models in a scene, while still providing useful information and context to the viewer. When lofted outside of a payload, draw mode can provide a rich representation for unloaded models.

The DrawModes.usd scene demonstrates all of the various draw mode options in the asset.

For technical details on draw mode, see the UsdGeomModelAPI documentation.

modelVariants

UtahTeapot FancyTeapot File: Teapot.usd

The modelVariant variant contains two options: Utah and Fancy. Each references its corresponding geometry layer stored in the geo folder.

When drawMode is set to “cards”, each model variant has one set of texture maps. these are all stored in the cards folder. Both “box” and “cross” options are demonstrated with all axes.

shadingVariants

Each model variant has its own set of shading variants. drawModeColor is setup to reflect the different shadingVariants.

All texture maps are stored in the textures folder.

Ideas for Future Contributions

  • Python script to produce and configure the images using usdrecord
  • Add fromTexture card mode example
  • 1- or 2-axis card examples
  • Create texture cards for every permutation of model and shading variants
  • Other examples of draw mode for assembly models
  • Provide richer examples of materials, perhaps using UsdMaterialX

Sources

The asset was produced by Chris Rydalch at SideFX Software, with feedback from the Houdini and USD communities.

The original Fancy Teapot data was part of the Tea Set created by James Ray Cook, Jurita Burger, and Rico Cilliers at PolyHaven. They generously made it available under a Public Domain - CC0 license.

License

Public Domain - CC0


Edit this page

Teapot.usd

#usda 1.0
(
    endTimeCode = 1
    framesPerSecond = 24
    metersPerUnit = 1
    startTimeCode = 1
    timeCodesPerSecond = 24
    upAxis = "Y"
    defaultPrim = "Teapot"
)

def DomeLight "MyCustomDomeLight"
{
    float intensity = 500
    color3f color = (1, 0, 0)
}

def PointLight "MyPointLight"
{
    float intensity = 100.0
    color3f color = (0, 1, 0)
    float3 translate = (2, 2, 2)
}


def Xform "Teapot" (
    assetInfo = {
        dictionary credits = {
            string FancyTeapot = "PolyHaven | Public Domain - CC0 | https://polyhaven.com/a/tea_set_01"
            string UtahTeapot = "Public Domain - CC0"
        }
        asset identifier = @Teapot.usd@
        string name = "Teapot"
        string version = "1.0"
    }
    prepend payload = @./Teapot_Payload.usd@
    variants = {
        string modelVariant = "Utah"
    }
    prepend variantSets = "modelVariant"
)
{
    variantSet "modelVariant" = {
        "Fancy" (
            prepend apiSchemas = ["GeomModelAPI"]
            kind = "component"
        ) {
            float3[] extentsHint = [(-0.1526284, -7.450581e-9, -0.262063), (0.1526284, 0.22956148, 0... (truncated)]
            asset model:cardTextureXNeg = @./cards/Fancy/XNeg.png@
            asset model:cardTextureXPos = @./cards/Fancy/XPos.png@
            asset model:cardTextureYNeg = @./cards/Fancy/YNeg.png@
            asset model:cardTextureYPos = @./cards/Fancy/YPos.png@
            asset model:cardTextureZNeg = @./cards/Fancy/ZNeg.png@
            asset model:cardTextureZPos = @./cards/Fancy/ZPos.png@

        }
        "Utah" (
            prepend apiSchemas = ["GeomModelAPI"]
            kind = "component"
        ) {
            float3[] extentsHint = [(-0.1526284, -7.450581e-9, -0.262063), (0.1526284, 0.22956148, 0... (truncated)]
            asset model:cardTextureXNeg = @./cards/Utah/XNeg.png@
            asset model:cardTextureXPos = @./cards/Utah/XPos.png@
            asset model:cardTextureYNeg = @./cards/Utah/YNeg.png@
            asset model:cardTextureYPos = @./cards/Utah/YPos.png@
            asset model:cardTextureZNeg = @./cards/Utah/ZNeg.png@
            asset model:cardTextureZPos = @./cards/Utah/ZPos.png@

        }
    }
}