Skip to content

Instantly share code, notes, and snippets.

@meshula
Last active June 3, 2024 06:38
Show Gist options
  • Save meshula/ed8d387ed418ca8065b44a0085d47578 to your computer and use it in GitHub Desktop.
Save meshula/ed8d387ed418ca8065b44a0085d47578 to your computer and use it in GitHub Desktop.
template.usda
#usda 1.0
(
endTimeCode = 241
framesPerSecond = 24
metersPerUnit = 1
startTimeCode = 101
timeCodesPerSecond = 24
upAxis = "Y"
)
def Scope "Templates" (
def Xform "Card" (
kind = "component"
customData = {
string templateKind = "create"
string[] recipe = [
"(print 'Creating a card for' ${IMAGE_FILE} `\n`)",
"(connectMaterial ${SCOPE}/cardMaterial ${SCOPE}/cardMaterial/PBRShader)",
"(bindMaterial ${SCOPE}/cardMesh ${SCOPE}/cardMaterial)",
"(connect ${SCOPE}/cardMaterial/PBRShader diffuseColor ${SCOPE}/cardMaterial/diffuseTexture rgb c3)",
"(connect ${SCOPE}/cardMaterial/diffuseTexture st ${SCOPE}/cardMaterial/stReader result f2)",
"(connect ${SCOPE}/cardMaterial/stReader varname ${SCOPE}/cardMaterial frame:stPrimvarName token)",
"(setShaderInput ${SCOPE}/cardMaterial/diffuseTexture file ${IMAGE_FILE})",
"(createImageQuad ${SCOPE}/cardMesh ${IMAGE_FILE})",
"(computeExtent ${SCOPE}/cardMesh)"
]
}
)
{
def Mesh "cardMesh" (
apiSchemas = ["MaterialBindingAPI"]
)
{
float3[] extent = [(-430, -145, 0), (430, 145, 0)]
int[] faceVertexCounts = [4]
int[] faceVertexIndices = [0, 1, 2, 3]
point3f[] points = [(-430, -145, 0), (430, -145, 0), (430, 145, 0), (-430, 145, 0)]
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
interpolation = "varying"
)
}
def Material "cardMaterial"
{
token inputs:frame:stPrimvarName = "st"
def Shader "PBRShader"
{
uniform token info:id = "UsdPreviewSurface"
float inputs:metallic = 0
float inputs:roughness = 0.4
token outputs:surface
}
def Shader "stReader"
{
uniform token info:id = "UsdPrimvarReader_float2"
float2 outputs:result
}
def Shader "diffuseTexture"
{
uniform token info:id = "UsdUVTexture"
#asset inputs:file = @IMAGE_FILE@
float3 outputs:rgb
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment