mirror of
https://github.com/blender/blender
synced 2026-10-25 03:07:01 +03:00
Part 1/2 for #148569
The map used to de-duplicate incoming materials was filled with the
wrong material names which eventually resulted in a situation where we
were adding 2 different materials with the same name to the map which is
unexpected.
This also contains a fix for Material ID user counts that was
incorrectly changed as part of the unrelated refactor 1b4daf9d2e.
Added further test coverage to validate both situations now.
Pull Request: https://projects.blender.org/blender/blender/pulls/148757
215 lines
7.6 KiB
Text
215 lines
7.6 KiB
Text
#usda 1.0
|
|
(
|
|
defaultPrim = "root"
|
|
doc = "HAND CRAFTED!"
|
|
metersPerUnit = 1
|
|
upAxis = "Z"
|
|
)
|
|
|
|
def Xform "root"
|
|
{
|
|
def Scope "_materials"
|
|
{
|
|
def Material "Material"
|
|
{
|
|
token outputs:surface.connect = </root/_materials/Material/Principled_BSDF.outputs:surface>
|
|
|
|
def Shader "Principled_BSDF"
|
|
{
|
|
uniform token info:id = "UsdPreviewSurface"
|
|
float inputs:clearcoat = 0
|
|
float inputs:clearcoatRoughness = 0.03
|
|
color3f inputs:diffuseColor = (1, 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 Material "Material_001"
|
|
{
|
|
token outputs:surface.connect = </root/_materials/Material_001/Principled_BSDF.outputs:surface>
|
|
|
|
def Shader "Principled_BSDF"
|
|
{
|
|
uniform token info:id = "UsdPreviewSurface"
|
|
float inputs:clearcoat = 0
|
|
float inputs:clearcoatRoughness = 0.03
|
|
color3f inputs:diffuseColor = (0, 0, 1)
|
|
float inputs:ior = 1.5
|
|
float inputs:metallic = 0
|
|
float inputs:opacity = 1
|
|
float inputs:roughness = 0.5
|
|
float inputs:specular = 0.5
|
|
token outputs:surface
|
|
}
|
|
}
|
|
}
|
|
|
|
def Xform "o1"
|
|
{
|
|
def Mesh "o1" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
|
|
def Xform "o2"
|
|
{
|
|
float3 xformOp:rotateXYZ = (0, -0, 0)
|
|
float3 xformOp:scale = (1, 1, 1)
|
|
double3 xformOp:translate = (1, 0, 0)
|
|
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
|
|
|
|
def Mesh "o2" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material_001>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
|
|
def Xform "o3"
|
|
{
|
|
float3 xformOp:rotateXYZ = (0, -0, 0)
|
|
float3 xformOp:scale = (1, 1, 1)
|
|
double3 xformOp:translate = (0, 1, 0)
|
|
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
|
|
|
|
def Mesh "o3" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
|
|
def Xform "o4"
|
|
{
|
|
float3 xformOp:rotateXYZ = (0, -0, 0)
|
|
float3 xformOp:scale = (1, 1, 1)
|
|
double3 xformOp:translate = (1, 1, 0)
|
|
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
|
|
|
|
def Mesh "o4" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material_001>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
|
|
def Xform "o5"
|
|
{
|
|
float3 xformOp:rotateXYZ = (0, -0, 0)
|
|
float3 xformOp:scale = (1, 1, 1)
|
|
double3 xformOp:translate = (0, 2, 0)
|
|
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
|
|
|
|
def Mesh "o5" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
|
|
def Xform "o6"
|
|
{
|
|
float3 xformOp:rotateXYZ = (0, -0, 0)
|
|
float3 xformOp:scale = (1, 1, 1)
|
|
double3 xformOp:translate = (1, 2, 0)
|
|
uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
|
|
|
|
def Mesh "o6" (
|
|
active = true
|
|
prepend apiSchemas = ["MaterialBindingAPI"]
|
|
)
|
|
{
|
|
uniform bool doubleSided = 1
|
|
float3[] extent = [(-0.5, -0.5, 0), (0.5, 0.5, 0)]
|
|
int[] faceVertexCounts = [4]
|
|
int[] faceVertexIndices = [0, 1, 3, 2]
|
|
rel material:binding = </root/_materials/Material_001>
|
|
normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
point3f[] points = [(-0.5, -0.5, 0), (0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, 0.5, 0)]
|
|
texCoord2f[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (
|
|
interpolation = "faceVarying"
|
|
)
|
|
uniform token subdivisionScheme = "none"
|
|
}
|
|
}
|
|
}
|
|
|