I have models/uv's/texture/st working fine. As soon as I wire in a UsdTransform2d the texture read stops displaying.
Try this example from here https://graphics.pixar.com/usd/docs/Simple-Shading-in-USD.html [graphics.pixar.com] in a python_lop.
I'm not 100% sure the wiring is correct;
node = hou.pwd() stage = node.editableStage() from pxr import Gf, Kind, Sdf, Usd, UsdGeom, UsdShade modelRoot = UsdGeom.Xform.Define(stage, "/TexModel") Usd.ModelAPI(modelRoot).SetKind(Kind.Tokens.component) billboard = UsdGeom.Mesh.Define(stage, "/TexModel/card") billboard.CreatePointsAttr([(-430, -145, 0), (430, -145, 0), (430, 145, 0), (-430, 145, 0)]) billboard.CreateFaceVertexCountsAttr([4]) billboard.CreateFaceVertexIndicesAttr([0,1,2,3]) billboard.CreateExtentAttr([(-430, -145, 0), (430, 145, 0)]) texCoords = billboard.CreatePrimvar("st", Sdf.ValueTypeNames.TexCoord2fArray, UsdGeom.Tokens.varying) texCoords.Set([(0, 0), (1, 0), (1,1), (0, 1)]) material = UsdShade.Material.Define(stage, '/TexModel/boardMat') pbrShader = UsdShade.Shader.Define(stage, '/TexModel/boardMat/PBRShader') pbrShader.CreateIdAttr("UsdPreviewSurface") pbrShader.CreateInput("roughness", Sdf.ValueTypeNames.Float).Set(0.4) pbrShader.CreateInput("metallic", Sdf.ValueTypeNames.Float).Set(0.0) material.CreateSurfaceOutput().ConnectToSource(pbrShader, "surface") stReader = UsdShade.Shader.Define(stage, '/TexModel/boardMat/stReader') stReader.CreateIdAttr('UsdPrimvarReader_float2') stInput = material.CreateInput('frame:stPrimvarName', Sdf.ValueTypeNames.Token) stInput.Set('st') stReader.CreateInput('varname',Sdf.ValueTypeNames.Token).ConnectToSource(stInput) #Texture2d node, bypassing this in the diffuseTextureSampler will work transform_2d = UsdShade.Shader.Define(stage, '/TexModel/boardMat/transform_2d') transform_2d.CreateIdAttr('UsdTransform2d') transform_2d.CreateInput("in", Sdf.ValueTypeNames.Float2).ConnectToSource(stReader, 'result') transform_2d.CreateInput("scale", Sdf.ValueTypeNames.Float2).Set((0.5, 0.5)) diffuseTextureSampler = UsdShade.Shader.Define(stage,'/TexModel/boardMat/diffuseTexture') diffuseTextureSampler.CreateIdAttr('UsdUVTexture') diffuseTextureSampler.CreateInput('file', Sdf.ValueTypeNames.Asset).Set("$HFS/houdini/pic/texture/bricks001_basecolor.rat") diffuseTextureSampler.CreateInput("st", Sdf.ValueTypeNames.Float2).ConnectToSource(transform_2d, 'result') pbrShader.CreateInput("diffuseColor", Sdf.ValueTypeNames.Color3f).ConnectToSource(diffuseTextureSampler, 'rgb') UsdShade.MaterialBindingAPI(billboard).Bind(material)