diff --git a/test/models-nonbsd/USD/usda/README.md b/test/models-nonbsd/USD/usda/README.md new file mode 100644 index 000000000..e860175fd --- /dev/null +++ b/test/models-nonbsd/USD/usda/README.md @@ -0,0 +1,3 @@ +[blendshape.usda](blendshape.usda) copied from tinyusdz/models (No attribution/license cited in that project) +[texturedcube.usda](texturedcube.usda) copied from tinyusdz/models (No attribution/license cited in that project) +[translated-cube.usda](translated-cube.usda) copied from tinyusdz/models (No attribution/license cited in that project) diff --git a/test/models-nonbsd/USD/usda/blendshape.usda b/test/models-nonbsd/USD/usda/blendshape.usda new file mode 100644 index 000000000..06fc33063 --- /dev/null +++ b/test/models-nonbsd/USD/usda/blendshape.usda @@ -0,0 +1,154 @@ +#usda 1.0 +( + defaultPrim = "root" + doc = "Blender v3.4.0 Alpha" + metersPerUnit = 0.01 + upAxis = "Z" +) + +def Xform "root" +{ + float3 xformOp:scale = (100, 100, 100) + uniform token[] xformOpOrder = ["xformOp:scale"] + + def Scope "lights" + { + def DomeLight "environment" + { + custom color3f color = (0.05087609, 0.05087609, 0.05087609) + color3f inputs:color = (0.05087609, 0.05087609, 0.05087609) + float inputs:intensity = 683.0135 + custom float intensity = 683.0135 + } + } + + def Scope "materials" + { + def Material "Material" + { + token outputs:surface.connect = + custom string userProperties:blenderName:data = "Material" + + def Scope "preview" + { + def Shader "Principled_BSDF" + { + uniform token info:id = "UsdPreviewSurface" + float inputs:clearcoat = 0 + float inputs:clearcoatRoughness = 0.03 + color3f inputs:diffuseColor = (0.8, 0.8, 0.8) + color3f inputs:emissiveColor = (0, 0, 0) + float inputs:ior = 1.45 + float inputs:metallic = 0 + float inputs:opacity = 1 + float inputs:roughness = 0.5 + float inputs:specular = 0.5 + token outputs:surface + } + } + } + } + + def SkelRoot "Cube" + { + custom string userProperties:blenderName:object = "Cube" + + def Mesh "Cube" ( + active = true + prepend apiSchemas = ["SkelBindingAPI"] + ) + { + uniform bool doubleSided = 1 + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 4, 6, 2, 3, 2, 6, 7, 7, 6, 4, 5, 5, 1, 3, 7, 1, 0, 2, 3, 5, 4, 0, 1] + rel material:binding = + normal3f[] normals = [(-2.3880695e-8, 0, 1), (-2.3880695e-8, 0, 1), (-2.3880695e-8, 0, 1), (-2.3880695e-8, 0, 1), (-0.23399627, -0.9436586, -0.2339963), (-0.23399627, -0.9436586, -0.2339963), (-0.23399627, -0.9436586, -0.2339963), (-0.23399627, -0.9436586, -0.2339963), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0)] ( + interpolation = "faceVarying" + ) + point3f[] points = [(1, 1, 1), (1, 1, -1), (1, -1.9918684, 1), (1, -1, -1), (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)] + int[] primvars:skel:jointIndices = [0, 0, 0, 0, 0, 0, 0, 0] ( + elementSize = 1 + interpolation = "vertex" + ) + float[] primvars:skel:jointWeights = [1, 1, 1, 1, 1, 1, 1, 1] ( + elementSize = 1 + interpolation = "vertex" + ) + texCoord2f[] primvars:st = [(0.625, 0.5), (0.875, 0.5), (0.875, 0.75), (0.625, 0.75), (0.375, 0.75), (0.625, 0.75), (0.625, 1), (0.375, 1), (0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.125, 0.5), (0.375, 0.5), (0.375, 0.75), (0.125, 0.75), (0.375, 0.5), (0.625, 0.5), (0.625, 0.75), (0.375, 0.75), (0.375, 0.25), (0.625, 0.25), (0.625, 0.5), (0.375, 0.5)] ( + interpolation = "faceVarying" + ) + uniform token[] skel:blendShapes = ["Key_1"] + rel skel:blendShapeTargets = + prepend rel skel:skeleton = + uniform token subdivisionScheme = "none" + custom string userProperties:blenderName:data = "Cube" + custom string userProperties:blenderName:data:st = "UVMap" + + def BlendShape "Key_1" + { + uniform vector3f[] offsets = [(0, 0, 0.98508406), (0, 0, 0), (0, 0.892874, 0.98508406), (0, 0, 0), (0, 0, 0.98508406), (0, 0, 0), (0, 0, 0.98508406), (0, 0, 0)] + uniform int[] pointIndices = [0, 1, 2, 3, 4, 5, 6, 7] + } + } + + def Skeleton "Skel" + { + uniform matrix4d[] bindTransforms = [( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )] + uniform token[] joints = ["joint1"] + uniform matrix4d[] restTransforms = [( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )] + prepend rel skel:animationSource = + + def SkelAnimation "Anim" + { + uniform token[] blendShapes = ["Key_1"] + float[] blendShapeWeights = [0] + } + } + } + + def Xform "Light" + { + custom string userProperties:blenderName:object = "Light" + float3 xformOp:rotateXYZ = (37.26105, 3.163703, 106.93632) + float3 xformOp:scale = (1, 0.99999994, 1) + double3 xformOp:translate = (4.076245307922363, 1.0054539442062378, 5.903861999511719) + uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"] + + def SphereLight "Light" + { + custom color3f color = (1, 1, 1) + color3f inputs:color = (1, 1, 1) + float inputs:intensity = 5435247 + float inputs:radius = 0.10000002 + float inputs:specular = 1 + custom float intensity = 5435247 + custom float radius = 0.10000002 + custom float specular = 1 + custom string userProperties:blenderName:data = "Light" + } + } + + def Xform "Camera" + { + custom string userProperties:blenderName:object = "Camera" + float3 xformOp:rotateXYZ = (63.559303, -0.0000026647115, 46.691948) + float3 xformOp:scale = (1, 1, 1) + double3 xformOp:translate = (7.358891487121582, -6.925790786743164, 4.958309173583984) + uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"] + + def Camera "Camera" + { + float2 clippingRange = (10, 10000) + float focalLength = 50 + float horizontalAperture = 36 + float horizontalApertureOffset = 0 + token projection = "perspective" + double shutter:close = 0.25 + double shutter:open = -0.25 + custom string userProperties:blenderName:data = "Camera" + float verticalAperture = 24 + float verticalApertureOffset = 0 + } + } +} + diff --git a/test/models-nonbsd/USD/usda/texturedcube.usda b/test/models-nonbsd/USD/usda/texturedcube.usda new file mode 100644 index 000000000..980fa323c --- /dev/null +++ b/test/models-nonbsd/USD/usda/texturedcube.usda @@ -0,0 +1,101 @@ +#usda 1.0 +( + doc = "Blender v3.1.0" + metersPerUnit = 1 + upAxis = "Z" +) + +def Xform "Camera" +{ + matrix4d xformOp:transform = ( (0.6859206557273865, 0.7276763319969177, 0, 0), (-0.32401347160339355, 0.305420845746994, 0.8953956365585327, 0), (0.6515582203865051, -0.6141703724861145, 0.44527140259742737, 0), (7.358891487121582, -6.925790786743164, 4.958309173583984, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def Camera "Camera" + { + float2 clippingRange = (0.1, 100) + float focalLength = 50 + float horizontalAperture = 36 + float horizontalApertureOffset = 0 + token projection = "perspective" + float verticalAperture = 20.25 + float verticalApertureOffset = 0 + } +} + +def Xform "Cube" +{ + matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (-1.1853550672531128, 0, 1.9550952911376953, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def Mesh "Cube" + { + uniform bool doubleSided = 1 + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 4, 6, 2, 3, 2, 6, 7, 7, 6, 4, 5, 5, 1, 3, 7, 1, 0, 2, 3, 5, 4, 0, 1] + rel material:binding = + normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, -1, 0), (0, -1, 0), (0, -1, 0), (0, -1, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0)] ( + interpolation = "faceVarying" + ) + point3f[] points = [(1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1), (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)] + texCoord2f[] primvars:UVMap = [(0.625, 0.5), (0.875, 0.5), (0.875, 0.75), (0.625, 0.75), (0.375, 0.75), (0.625, 0.75), (0.625, 1), (0.375, 1), (0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.125, 0.5), (0.375, 0.5), (0.375, 0.75), (0.125, 0.75), (0.375, 0.5), (0.625, 0.5), (0.625, 0.75), (0.375, 0.75), (0.375, 0.25), (0.625, 0.25), (0.625, 0.5), (0.375, 0.5)] ( + interpolation = "faceVarying" + ) + uniform token subdivisionScheme = "none" + } +} + +def "_materials" +{ + def Material "Material" + { + token outputs:surface.connect = + + def Scope "preview" + { + def Shader "Principled_BSDF" + { + uniform token info:id = "UsdPreviewSurface" + float inputs:clearcoat = 0 + float inputs:clearcoatRoughness = 0.03 + float3 inputs:diffuseColor.connect = + float inputs:ior = 1.45 + float inputs:metallic = 0 + float inputs:opacity = 1 + float inputs:roughness = 0.4 + float inputs:specular = 0.5 + token outputs:surface + } + + def Shader "Image_Texture" + { + uniform token info:id = "UsdUVTexture" + asset inputs:file = @.\textures\checkerboard.png@ + token inputs:sourceColorSpace = "sRGB" + float2 inputs:st.connect = + float3 outputs:rgb + } + + def Shader "uvmap" + { + uniform token info:id = "UsdPrimvarReader_float2" + token inputs:varname = "UVMap" + float2 outputs:result + } + } + } +} + +def Xform "Light" +{ + matrix4d xformOp:transform = ( (-0.29086464643478394, 0.9551711678504944, -0.05518905818462372, 0), (-0.7711008191108704, -0.1998833566904068, 0.6045247316360474, 0), (0.5663931965827942, 0.21839119493961334, 0.7946722507476807, 0), (4.076245307922363, 1.0054539442062378, 5.903861999511719, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def SphereLight "Light" + { + color3f inputs:color = (1, 1, 1) + float inputs:intensity = 10 + float inputs:radius = 0.1 + float inputs:specular = 1 + } +} + diff --git a/test/models-nonbsd/USD/usda/translated-cube.usda b/test/models-nonbsd/USD/usda/translated-cube.usda new file mode 100644 index 000000000..2a543dbdf --- /dev/null +++ b/test/models-nonbsd/USD/usda/translated-cube.usda @@ -0,0 +1,55 @@ +#usda 1.0 +( + doc = "Blender v3.1.0" + metersPerUnit = 1 + upAxis = "Z" +) + +def Xform "Camera" +{ + matrix4d xformOp:transform = ( (0.6859206557273865, 0.7276763319969177, 0, 0), (-0.32401347160339355, 0.305420845746994, 0.8953956365585327, 0), (0.6515582203865051, -0.6141703724861145, 0.44527140259742737, 0), (7.358891487121582, -6.925790786743164, 4.958309173583984, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def Camera "Camera" + { + float2 clippingRange = (0.1, 100) + float focalLength = 50 + float horizontalAperture = 36 + float horizontalApertureOffset = 0 + token projection = "perspective" + float verticalAperture = 20.25 + float verticalApertureOffset = 0 + } +} + +def Xform "Cube" +{ + matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (-1.1853550672531128, 0, 1.9550952911376953, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def Mesh "Cube" + { + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 4, 6, 2, 3, 2, 6, 7, 7, 6, 4, 5, 5, 1, 3, 7, 1, 0, 2, 3, 5, 4, 0, 1] + normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, -1, 0), (0, -1, 0), (0, -1, 0), (0, -1, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0)] ( + interpolation = "faceVarying" + ) + point3f[] points = [(1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1), (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)] + uniform token subdivisionScheme = "none" + } +} + +def Xform "Light" +{ + matrix4d xformOp:transform = ( (-0.29086464643478394, 0.9551711678504944, -0.05518905818462372, 0), (-0.7711008191108704, -0.1998833566904068, 0.6045247316360474, 0), (0.5663931965827942, 0.21839119493961334, 0.7946722507476807, 0), (4.076245307922363, 1.0054539442062378, 5.903861999511719, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + + def SphereLight "Light" + { + color3f inputs:color = (1, 1, 1) + float inputs:intensity = 10 + float inputs:radius = 0.1 + float inputs:specular = 1 + } +} + diff --git a/test/models-nonbsd/USD/usdc/README.md b/test/models-nonbsd/USD/usdc/README.md new file mode 100644 index 000000000..082ea9e11 --- /dev/null +++ b/test/models-nonbsd/USD/usdc/README.md @@ -0,0 +1,4 @@ +[blendshape.usdc](blendshape.usdc) copied from tinyusdz/models (No attribution/license cited in that project) +[suzanne.usdc](suzanne.usdc) copied from tinyusdz/models (No attribution/license cited in that project) +[texturedcube.usdc](texturedcube.usdc) copied from tinyusdz/models (No attribution/license cited in that project) +[translated-cube.usdc](translated-cube.usdc) copied from tinyusdz/models (No attribution/license cited in that project) \ No newline at end of file diff --git a/test/models-nonbsd/USD/usdc/blendshape.usdc b/test/models-nonbsd/USD/usdc/blendshape.usdc new file mode 100644 index 000000000..43ded1077 Binary files /dev/null and b/test/models-nonbsd/USD/usdc/blendshape.usdc differ diff --git a/test/models-nonbsd/USD/usdc/texturedcube.usdc b/test/models-nonbsd/USD/usdc/texturedcube.usdc new file mode 100644 index 000000000..899b005e3 Binary files /dev/null and b/test/models-nonbsd/USD/usdc/texturedcube.usdc differ diff --git a/test/models-nonbsd/USD/usdc/translated-cube.usdc b/test/models-nonbsd/USD/usdc/translated-cube.usdc new file mode 100644 index 000000000..ea198b5ff Binary files /dev/null and b/test/models-nonbsd/USD/usdc/translated-cube.usdc differ