Merge branch 'Atom/santorac/RemixableMaterialTypes4_FlatMaterialFiles' into Atom/santorac/RemixableMaterialTypes4_Layering

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
This commit is contained in:
santorac
2022-02-08 12:42:15 -08:00
157 changed files with 2373 additions and 3338 deletions
@@ -1,35 +1,25 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"baseColor.color": [
0.0,
0.0,
0.0,
1.0
],
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
0.0,
0.0,
0.0,
1.0
],
"opacity.factor": 1.0
}
}
@@ -1,35 +1,25 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.0,
1.0,
0.0,
1.0
]
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
0.0,
1.0,
0.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"baseColor.color": [
0.0,
1.0,
0.0,
1.0
],
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
0.0,
1.0,
0.0,
1.0
],
"opacity.factor": 1.0
}
}
@@ -1,49 +1,29 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"textureMap": "Textures/arch_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.885053813457489,
0.801281750202179,
1.0
]
},
"metallic": {
"textureMap": "Textures/arch_1k_metallic.png"
},
"normal": {
"textureMap": "Textures/arch_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "Textures/arch_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.050999999046325687,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "Textures/arch_1k_roughness.png"
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"baseColor.textureMap": "Textures/arch_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.885053813457489,
0.801281750202179,
1.0
],
"metallic.textureMap": "Textures/arch_1k_metallic.png",
"normal.textureMap": "Textures/arch_1k_normal.jpg",
"occlusion.diffuseTextureMap": "Textures/arch_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.050999999046325684,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "Textures/arch_1k_roughness.png"
}
}
@@ -1,54 +1,32 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"textureMap": "Textures/bricks_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "Textures/bricks_1k_normal.jpg",
"roughness": 0.5
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.9703211784362793,
0.9703211784362793,
1.0
]
},
"metallic": {
"textureMap": "Textures/bricks_1k_metallic.png"
},
"normal": {
"textureMap": "Textures/bricks_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "Textures/bricks_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"algorithm": "ContactRefinement",
"factor": 0.03500000014901161,
"quality": "Medium",
"useTexture": false
},
"roughness": {
"textureMap": "Textures/bricks_1k_roughness.png"
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"baseColor.textureMap": "Textures/bricks_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "Textures/bricks_1k_normal.jpg",
"clearCoat.roughness": 0.5,
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.9703211784362793,
0.9703211784362793,
1.0
],
"metallic.textureMap": "Textures/bricks_1k_metallic.png",
"normal.textureMap": "Textures/bricks_1k_normal.jpg",
"occlusion.diffuseTextureMap": "Textures/bricks_1k_ao.png",
"opacity.factor": 1.0,
"parallax.algorithm": "ContactRefinement",
"parallax.factor": 0.03500000014901161,
"parallax.quality": "Medium",
"parallax.useTexture": false,
"roughness.textureMap": "Textures/bricks_1k_roughness.png"
}
}
@@ -1,51 +1,31 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"textureMap": "Textures/floor_1k_basecolor.png"
},
"clearCoat": {
"enable": true,
"influenceMap": "Textures/floor_1k_ao.png",
"normalMap": "Textures/floor_1k_normal.png",
"roughness": 0.25
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.9404135346412659,
0.8688944578170776,
1.0
]
},
"normal": {
"textureMap": "Textures/floor_1k_normal.png"
},
"occlusion": {
"diffuseTextureMap": "Textures/floor_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.012000000104308129,
"pdo": true,
"useTexture": false
},
"roughness": {
"textureMap": "Textures/floor_1k_roughness.png"
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"baseColor.textureMap": "Textures/floor_1k_basecolor.png",
"clearCoat.enable": true,
"clearCoat.influenceMap": "Textures/floor_1k_ao.png",
"clearCoat.normalMap": "Textures/floor_1k_normal.png",
"clearCoat.roughness": 0.25,
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.9404135346412659,
0.8688944578170776,
1.0
],
"normal.textureMap": "Textures/floor_1k_normal.png",
"occlusion.diffuseTextureMap": "Textures/floor_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.012000000104308128,
"parallax.pdo": true,
"parallax.useTexture": false,
"roughness.textureMap": "Textures/floor_1k_roughness.png"
}
}
@@ -1,44 +1,26 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"textureBlendMode": "Lerp",
"textureMap": "Textures/roof_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"metallic": {
"useTexture": false
},
"normal": {
"factor": 0.5,
"flipY": true,
"textureMap": "Textures/roof_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "Textures/roof_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"algorithm": "ContactRefinement",
"factor": 0.019999999552965165,
"quality": "Medium",
"useTexture": false
},
"roughness": {
"textureMap": "Textures/roof_1k_roughness.png"
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"baseColor.textureBlendMode": "Lerp",
"baseColor.textureMap": "Textures/roof_1k_basecolor.png",
"general.applySpecularAA": true,
"metallic.useTexture": false,
"normal.factor": 0.5,
"normal.flipY": true,
"normal.textureMap": "Textures/roof_1k_normal.jpg",
"occlusion.diffuseTextureMap": "Textures/roof_1k_ao.png",
"opacity.factor": 1.0,
"parallax.algorithm": "ContactRefinement",
"parallax.factor": 0.019999999552965164,
"parallax.quality": "Medium",
"parallax.useTexture": false,
"roughness.textureMap": "Textures/roof_1k_roughness.png"
}
}
@@ -1,35 +1,25 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.0,
0.0,
1.0,
1.0
]
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
0.0,
0.0,
1.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"baseColor.color": [
0.0,
0.0,
1.0,
1.0
],
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
0.0,
0.0,
1.0,
1.0
],
"opacity.factor": 1.0
}
}
@@ -1,35 +1,25 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.0,
0.0,
1.0
]
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
1.0,
0.0,
0.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.0,
0.0,
1.0
],
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
1.0,
0.0,
0.0,
1.0
],
"opacity.factor": 1.0
}
}
@@ -1,19 +1,13 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"opacity.factor": 1.0
}
}
@@ -1,19 +1,13 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"opacity": {
"factor": 1.0
}
"propertyValues": {
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"opacity.factor": 1.0
}
}
}
@@ -1,40 +1,22 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/arch_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.2663614749908447,
0.2383916974067688,
0.18117037415504456,
1.0
]
},
"normal": {
"textureMap": "../Textures/arch_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/arch_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.050999999046325684,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/arch_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/arch_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.2663614749908447,
0.2383916974067688,
0.18117037415504456,
1.0
],
"normal.textureMap": "../Textures/arch_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/arch_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.050999999046325684,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/arch_1k_roughness.png"
}
}
@@ -1,45 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/background_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/background_1k_normal.jpg",
"roughness": 0.4000000059604645
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.19806210696697235,
0.1746547669172287,
0.16513313353061676,
1.0
]
},
"normal": {
"textureMap": "../Textures/background_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/background_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.03099999949336052,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/background_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/background_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/background_1k_normal.jpg",
"clearCoat.roughness": 0.4000000059604645,
"general.applySpecularAA": true,
"irradiance.color": [
0.19806210696697235,
0.1746547669172287,
0.16513313353061676,
1.0
],
"normal.textureMap": "../Textures/background_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/background_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.03099999949336052,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/background_1k_roughness.png"
}
}
@@ -1,45 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/bricks_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/bricks_1k_normal.jpg",
"roughness": 0.5
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.27467766404151917,
0.27467766404151917,
0.270496666431427,
1.0
]
},
"normal": {
"textureMap": "../Textures/bricks_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/bricks_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"algorithm": "ContactRefinement",
"factor": 0.03500000014901161,
"quality": "Medium",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/bricks_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/bricks_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/bricks_1k_normal.jpg",
"clearCoat.roughness": 0.5,
"general.applySpecularAA": true,
"irradiance.color": [
0.27467766404151917,
0.27467766404151917,
0.270496666431427,
1.0
],
"normal.textureMap": "../Textures/bricks_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/bricks_1k_ao.png",
"opacity.factor": 1.0,
"parallax.algorithm": "ContactRefinement",
"parallax.factor": 0.03500000014901161,
"parallax.quality": "Medium",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/bricks_1k_roughness.png"
}
}
@@ -1,36 +1,22 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/ceiling_1k_basecolor.png"
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
0.29176774621009827,
0.27888914942741394,
0.2501564025878906,
1.0
]
},
"normal": {
"textureMap": "../Textures/ceiling_1k_normal.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/ceiling_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/ceiling_1k_basecolor.png",
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
0.29176774621009827,
0.27888914942741394,
0.2501564025878906,
1.0
],
"normal.textureMap": "../Textures/ceiling_1k_normal.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/ceiling_1k_roughness.png"
}
}
@@ -1,35 +1,21 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureBlendMode": "Lerp",
"textureMap": "../Textures/chain_basecolor.png"
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"general": {
"doubleSided": true
},
"metallic": {
"factor": 0.8899999856948853
},
"normal": {
"textureMap": "../Textures/chain_normal.jpg"
},
"opacity": {
"alphaSource": "Split",
"factor": 1.0,
"mode": "Cutout",
"textureMap": "../Textures/chain_alpha.png"
}
"propertyValues": {
"baseColor.textureBlendMode": "Lerp",
"baseColor.textureMap": "../Textures/chain_basecolor.png",
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"general.doubleSided": true,
"metallic.factor": 0.8899999856948853,
"normal.textureMap": "../Textures/chain_normal.jpg",
"opacity.alphaSource": "Split",
"opacity.factor": 1.0,
"opacity.mode": "Cutout",
"opacity.textureMap": "../Textures/chain_alpha.png"
}
}
@@ -1,45 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/columnA_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/columnA_1k_normal.jpg",
"roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.8964369893074036,
0.8264744281768799,
1.0
]
},
"normal": {
"textureMap": "../Textures/columnA_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/columnA_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.017000000923871994,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/columnA_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/columnA_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/columnA_1k_normal.jpg",
"clearCoat.roughness": 0.30000001192092896,
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.8964369893074036,
0.8264744281768799,
1.0
],
"normal.textureMap": "../Textures/columnA_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/columnA_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.017000000923871994,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/columnA_1k_roughness.png"
}
}
@@ -1,45 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/columnB_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/columnB_1k_normal.jpg",
"roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.41788357496261597,
0.40723279118537903,
0.4286869466304779,
1.0
]
},
"normal": {
"textureMap": "../Textures/columnB_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/columnB_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.020999999716877937,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/columnB_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/columnB_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/columnB_1k_normal.jpg",
"clearCoat.roughness": 0.30000001192092896,
"general.applySpecularAA": true,
"irradiance.color": [
0.41788357496261597,
0.40723279118537903,
0.4286869466304779,
1.0
],
"normal.textureMap": "../Textures/columnB_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/columnB_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.020999999716877937,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/columnB_1k_roughness.png"
}
}
@@ -1,45 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/columnC_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/columnC_1k_normal.jpg",
"roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.32314029335975647,
0.29176774621009827,
0.24228274822235107,
1.0
]
},
"normal": {
"textureMap": "../Textures/columnC_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/columnC_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.014000000432133675,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/columnC_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/columnC_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/columnC_1k_normal.jpg",
"clearCoat.roughness": 0.30000001192092896,
"general.applySpecularAA": true,
"irradiance.color": [
0.32314029335975647,
0.29176774621009827,
0.24228274822235107,
1.0
],
"normal.textureMap": "../Textures/columnC_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/columnC_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.014000000432133675,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/columnC_1k_roughness.png"
}
}
@@ -1,52 +1,32 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"color": [
1.0,
1.0,
1.0,
1.0
],
"textureMap": "../Textures/curtainBlue_1k_basecolor.png"
},
"emissive": {
"color": [
1.0,
1.0,
1.0,
1.0
]
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.0,
0.14901961386203766,
1.0,
1.0
]
},
"metallic": {
"textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
"factor": 0.5,
"textureMap": "../Textures/curtain_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/curtain_ao.png"
},
"roughness": {
"textureMap": "../Textures/curtain_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
"propertyValues": {
"baseColor.color": [
1.0,
1.0,
1.0,
1.0
],
"baseColor.textureMap": "../Textures/curtainBlue_1k_basecolor.png",
"emissive.color": [
1.0,
1.0,
1.0,
1.0
],
"general.applySpecularAA": true,
"irradiance.color": [
0.0,
0.14901961386203766,
1.0,
1.0
],
"metallic.textureMap": "../Textures/curtain_metallic.png",
"normal.factor": 0.5,
"normal.textureMap": "../Textures/curtain_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/curtain_ao.png",
"roughness.textureMap": "../Textures/curtain_roughness.png",
"specularF0.enableMultiScatterCompensation": true
}
}
@@ -1,38 +1,20 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/curtainGreen_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.0,
0.15294118225574493,
0.0,
1.0
]
},
"metallic": {
"textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
"factor": 0.5,
"textureMap": "../Textures/curtain_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/curtain_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/curtain_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/curtainGreen_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.0,
0.15294118225574493,
0.0,
1.0
],
"metallic.textureMap": "../Textures/curtain_metallic.png",
"normal.factor": 0.5,
"normal.textureMap": "../Textures/curtain_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/curtain_ao.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/curtain_roughness.png"
}
}
@@ -1,43 +1,23 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/curtainRed_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.41960784792900085,
0.003921568859368563,
0.003921568859368563,
1.0
]
},
"metallic": {
"textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
"textureMap": "../Textures/curtain_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/curtain_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/curtain_roughness.png"
},
"uv": {
"center": [
16.0,
0.0
]
}
"propertyValues": {
"baseColor.textureMap": "../Textures/curtainRed_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.41960784792900085,
0.003921568859368563,
0.003921568859368563,
1.0
],
"metallic.textureMap": "../Textures/curtain_metallic.png",
"normal.textureMap": "../Textures/curtain_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/curtain_ao.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/curtain_roughness.png",
"uv.center": [
16.0,
0.0
]
}
}
@@ -1,39 +1,19 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/details_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"normalMap": "../Textures/details_1k_normal.png",
"roughness": 0.25
},
"general": {
"applySpecularAA": true
},
"metallic": {
"textureMap": "../Textures/details_1k_metallic.png"
},
"normal": {
"textureMap": "../Textures/details_1k_normal.png"
},
"occlusion": {
"diffuseTextureMap": "../Textures/details_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.02500000037252903,
"pdo": true,
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/details_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/details_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.normalMap": "../Textures/details_1k_normal.png",
"clearCoat.roughness": 0.25,
"general.applySpecularAA": true,
"metallic.textureMap": "../Textures/details_1k_metallic.png",
"normal.textureMap": "../Textures/details_1k_normal.png",
"occlusion.diffuseTextureMap": "../Textures/details_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.02500000037252903,
"parallax.pdo": true,
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/details_1k_roughness.png"
}
}
@@ -1,39 +1,21 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/fabricBlue_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.0,
0.15049973130226135,
1.0,
1.0
],
"factor": 0.30000001192092896
},
"metallic": {
"textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
"textureMap": "../Textures/fabric_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/fabric_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/fabricBlue_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.0,
0.15049973130226135,
1.0,
1.0
],
"irradiance.factor": 0.30000001192092896,
"metallic.textureMap": "../Textures/fabric_metallic.png",
"normal.factor": 0.5,
"normal.textureMap": "../Textures/fabric_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/fabric_ao.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/fabric_roughness.png"
}
}
@@ -1,39 +1,21 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/fabricGreen_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.0,
0.15292592346668243,
0.0012207217514514923,
1.0
],
"factor": 0.30000001192092896
},
"metallic": {
"textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
"textureMap": "../Textures/fabric_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/fabric_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/fabricGreen_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.0,
0.15292592346668243,
0.0012207217514514923,
1.0
],
"irradiance.factor": 0.30000001192092896,
"metallic.textureMap": "../Textures/fabric_metallic.png",
"normal.factor": 0.5,
"normal.textureMap": "../Textures/fabric_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/fabric_ao.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/fabric_roughness.png"
}
}
@@ -1,39 +1,21 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/fabricRed_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.42040130496025085,
0.004654001910239458,
0.0037232013419270515,
1.0
],
"factor": 0.30000001192092896
},
"metallic": {
"textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
"textureMap": "../Textures/fabric_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/fabric_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/fabricRed_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.42040130496025085,
0.004654001910239458,
0.0037232013419270515,
1.0
],
"irradiance.factor": 0.30000001192092896,
"metallic.textureMap": "../Textures/fabric_metallic.png",
"normal.factor": 0.5,
"normal.textureMap": "../Textures/fabric_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/fabric_ao.png",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/fabric_roughness.png"
}
}
@@ -1,46 +1,24 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/flagpole_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.6520485281944275,
0.7122911214828491,
1.0
]
},
"metallic": {
"textureMap": "../Textures/flagpole_1k_metallic.png"
},
"normal": {
"textureMap": "../Textures/flagpole_1k_normal.png"
},
"occlusion": {
"diffuseTextureMap": "../Textures/flagpole_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.014000000432133675,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/flagpole_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
"propertyValues": {
"baseColor.textureMap": "../Textures/flagpole_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.6520485281944275,
0.7122911214828491,
1.0
],
"metallic.textureMap": "../Textures/flagpole_1k_metallic.png",
"normal.textureMap": "../Textures/flagpole_1k_normal.png",
"occlusion.diffuseTextureMap": "../Textures/flagpole_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.014000000432133675,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/flagpole_1k_roughness.png",
"specularF0.enableMultiScatterCompensation": true
}
}
@@ -1,44 +1,24 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/floor_1k_basecolor.png"
},
"clearCoat": {
"influenceMap": "../Textures/floor_1k_ao.png",
"normalMap": "../Textures/floor_1k_normal.png",
"roughness": 0.25
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.9404135346412659,
0.8688944578170776,
1.0
]
},
"normal": {
"textureMap": "../Textures/floor_1k_normal.png"
},
"occlusion": {
"diffuseTextureMap": "../Textures/floor_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.012000000104308128,
"pdo": true,
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/floor_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/floor_1k_basecolor.png",
"clearCoat.influenceMap": "../Textures/floor_1k_ao.png",
"clearCoat.normalMap": "../Textures/floor_1k_normal.png",
"clearCoat.roughness": 0.25,
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.9404135346412659,
0.8688944578170776,
1.0
],
"normal.textureMap": "../Textures/floor_1k_normal.png",
"occlusion.diffuseTextureMap": "../Textures/floor_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.012000000104308128,
"parallax.pdo": true,
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/floor_1k_roughness.png"
}
}
@@ -1,43 +1,25 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/thorn_basecolor.png"
},
"clearCoat": {
"factor": 0.05000000074505806,
"normalMap": "../Textures/thorn_normal.jpg",
"roughness": 0.10000000149011612
},
"general": {
"applySpecularAA": true,
"doubleSided": true
},
"irradiance": {
"color": [
0.46506446599960327,
1.0,
0.3944609761238098,
1.0
]
},
"normal": {
"textureMap": "../Textures/thorn_normal.jpg"
},
"opacity": {
"alphaSource": "Split",
"factor": 0.20000000298023224,
"mode": "Cutout",
"textureMap": "../Textures/thorn_alpha.png"
},
"parallax": {
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/thorn_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/thorn_basecolor.png",
"clearCoat.factor": 0.05000000074505806,
"clearCoat.normalMap": "../Textures/thorn_normal.jpg",
"clearCoat.roughness": 0.10000000149011612,
"general.applySpecularAA": true,
"general.doubleSided": true,
"irradiance.color": [
0.46506446599960327,
1.0,
0.3944609761238098,
1.0
],
"normal.textureMap": "../Textures/thorn_normal.jpg",
"opacity.alphaSource": "Split",
"opacity.factor": 0.20000000298023224,
"opacity.mode": "Cutout",
"opacity.textureMap": "../Textures/thorn_alpha.png",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/thorn_roughness.png"
}
}
@@ -1,36 +1,22 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/lion_1k_basecolor.png"
},
"emissive": {
"color": [
0.0,
0.0,
0.0,
1.0
]
},
"irradiance": {
"color": [
0.5583428740501404,
0.496940553188324,
0.4125429093837738,
1.0
]
},
"normal": {
"textureMap": "../Textures/lion_1k_normal.jpg"
},
"opacity": {
"factor": 1.0
},
"roughness": {
"textureMap": "../Textures/lion_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/lion_1k_basecolor.png",
"emissive.color": [
0.0,
0.0,
0.0,
1.0
],
"irradiance.color": [
0.5583428740501404,
0.496940553188324,
0.4125429093837738,
1.0
],
"normal.textureMap": "../Textures/lion_1k_normal.jpg",
"opacity.factor": 1.0,
"roughness.textureMap": "../Textures/lion_1k_roughness.png"
}
}
@@ -1,47 +1,27 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureBlendMode": "Lerp",
"textureMap": "../Textures/roof_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.29613184928894043,
0.3324483036994934,
0.45078203082084656,
1.0
]
},
"metallic": {
"textureMap": "../Textures/roof_1k_metallic.png",
"useTexture": false
},
"normal": {
"factor": 0.5,
"flipY": true,
"textureMap": "../Textures/roof_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/roof_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"algorithm": "ContactRefinement",
"factor": 0.019999999552965164,
"quality": "Medium",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/roof_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureBlendMode": "Lerp",
"baseColor.textureMap": "../Textures/roof_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.29613184928894043,
0.3324483036994934,
0.45078203082084656,
1.0
],
"metallic.textureMap": "../Textures/roof_1k_metallic.png",
"metallic.useTexture": false,
"normal.factor": 0.5,
"normal.flipY": true,
"normal.textureMap": "../Textures/roof_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/roof_1k_ao.png",
"opacity.factor": 1.0,
"parallax.algorithm": "ContactRefinement",
"parallax.factor": 0.019999999552965164,
"parallax.quality": "Medium",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/roof_1k_roughness.png"
}
}
@@ -1,46 +1,24 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/vase_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
1.0,
0.8713664412498474,
0.6021667718887329,
1.0
]
},
"metallic": {
"textureMap": "../Textures/vase_1k_metallic.png"
},
"normal": {
"textureMap": "../Textures/vase_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/vase_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.027000000700354576,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/vase_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
"propertyValues": {
"baseColor.textureMap": "../Textures/vase_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
1.0,
0.8713664412498474,
0.6021667718887329,
1.0
],
"metallic.textureMap": "../Textures/vase_1k_metallic.png",
"normal.textureMap": "../Textures/vase_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/vase_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.027000000700354576,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/vase_1k_roughness.png",
"specularF0.enableMultiScatterCompensation": true
}
}
@@ -1,43 +1,23 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/vaseHanging_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.765606164932251,
1.0,
0.7052567601203918,
1.0
]
},
"metallic": {
"textureMap": "../Textures/vaseHanging_1k_metallic.png"
},
"normal": {
"textureMap": "../Textures/vaseHanging_1k_normal.png"
},
"occlusion": {
"diffuseTextureMap": "../Textures/vaseHanging_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.04600000008940697,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/vaseHanging_1k_roughness.png"
}
"propertyValues": {
"baseColor.textureMap": "../Textures/vaseHanging_1k_basecolor.png",
"general.applySpecularAA": true,
"irradiance.color": [
0.765606164932251,
1.0,
0.7052567601203918,
1.0
],
"metallic.textureMap": "../Textures/vaseHanging_1k_metallic.png",
"normal.textureMap": "../Textures/vaseHanging_1k_normal.png",
"occlusion.diffuseTextureMap": "../Textures/vaseHanging_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.04600000008940697,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/vaseHanging_1k_roughness.png"
}
}
@@ -1,36 +1,26 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"textureBlendMode": "Lerp",
"textureMap": "../Textures/vasePlant_1k_basecolor.png"
},
"general": {
"applySpecularAA": true,
"doubleSided": true
},
"irradiance": {
"color": [
0.09086747467517853,
0.4111391007900238,
0.0474097803235054,
1.0
]
},
"opacity": {
"alphaSource": "Split",
"factor": 0.23999999463558197,
"mode": "Cutout",
"textureMap": "../Textures/vasePlant_1k_alpha.png"
}
"propertyValues": {
"baseColor.color": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"baseColor.textureBlendMode": "Lerp",
"baseColor.textureMap": "../Textures/vasePlant_1k_basecolor.png",
"general.applySpecularAA": true,
"general.doubleSided": true,
"irradiance.color": [
0.09086747467517853,
0.4111391007900238,
0.0474097803235054,
1.0
],
"opacity.alphaSource": "Split",
"opacity.factor": 0.23999999463558197,
"opacity.mode": "Cutout",
"opacity.textureMap": "../Textures/vasePlant_1k_alpha.png"
}
}
@@ -1,49 +1,27 @@
{
"description": "",
"parentMaterial": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "../Textures/vaseRound_1k_basecolor.png"
},
"clearCoat": {
"factor": 0.5,
"influenceMap": "../Textures/vaseRound_1k_ao.png",
"normalMap": "../Textures/vaseRound_1k_normal.jpg",
"roughness": 0.25
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
0.46933698654174805,
0.3824063539505005,
0.47861447930336,
1.0
]
},
"normal": {
"textureMap": "../Textures/vaseRound_1k_normal.jpg"
},
"occlusion": {
"diffuseTextureMap": "../Textures/vaseRound_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"factor": 0.019999999552965164,
"pdo": true,
"quality": "High",
"useTexture": false
},
"roughness": {
"textureMap": "../Textures/vaseRound_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
"propertyValues": {
"baseColor.textureMap": "../Textures/vaseRound_1k_basecolor.png",
"clearCoat.factor": 0.5,
"clearCoat.influenceMap": "../Textures/vaseRound_1k_ao.png",
"clearCoat.normalMap": "../Textures/vaseRound_1k_normal.jpg",
"clearCoat.roughness": 0.25,
"general.applySpecularAA": true,
"irradiance.color": [
0.46933698654174805,
0.3824063539505005,
0.47861447930336,
1.0
],
"normal.textureMap": "../Textures/vaseRound_1k_normal.jpg",
"occlusion.diffuseTextureMap": "../Textures/vaseRound_1k_ao.png",
"opacity.factor": 1.0,
"parallax.factor": 0.019999999552965164,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.useTexture": false,
"roughness.textureMap": "../Textures/vaseRound_1k_roughness.png",
"specularF0.enableMultiScatterCompensation": true
}
}
@@ -1,32 +1,26 @@
{
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"baseColor": {
"color": [ 1.0, 1.0, 1.0 ],
"factor": 0.75,
"useTexture": false,
"textureMap": ""
},
"metallic": {
"factor": 0.0,
"useTexture": false,
"textureMap": ""
},
"roughness": {
"factor": 0.0,
"useTexture": false,
"textureMap": ""
},
"specularF0": {
"factor": 0.5,
"useTexture": false,
"textureMap": ""
},
"normal": {
"factor": 1.0,
"useTexture": false,
"textureMap": ""
}
"propertyValues": {
"baseColor.color": [
1.0,
1.0,
1.0
],
"baseColor.factor": 0.75,
"baseColor.textureMap": "",
"baseColor.useTexture": false,
"metallic.factor": 0.0,
"metallic.textureMap": "",
"metallic.useTexture": false,
"normal.factor": 1.0,
"normal.textureMap": "",
"normal.useTexture": false,
"roughness.factor": 0.0,
"roughness.textureMap": "",
"roughness.useTexture": false,
"specularF0.factor": 0.5,
"specularF0.textureMap": "",
"specularF0.useTexture": false
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.0
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.0
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.1
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.10000000149011612
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.2
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.20000000298023224
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.3
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.30000001192092896
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.4
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.4000000059604645
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.5
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.5
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.6
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.6000000238418579
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.7
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.699999988079071
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.8
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.800000011920929
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 0.9
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 0.8999999761581421
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 0.0
},
"roughness": {
"factor": 1.0
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 0.0,
"roughness.factor": 1.0
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.0
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.0
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.1
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.10000000149011612
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.2
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.20000000298023224
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.3
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.30000001192092896
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.4
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.4000000059604645
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.5
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.5
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.6
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.6000000238418579
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.7
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.699999988079071
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.8
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.800000011920929
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.9
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 0.8999999761581421
}
}
}
@@ -1,13 +1,9 @@
{
"parentMaterial": "./basic.material",
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 1.0
}
"parentMaterial": "./basic.material",
"propertyValues": {
"metallic.factor": 1.0,
"roughness.factor": 1.0
}
}
}
@@ -1,4 +1,4 @@
{
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "Materials/Presets/PBR/default_grid.material"
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "Materials/Presets/PBR/default_grid.material",
"materialTypeVersion": 3,
"properties": {
"opacity": {
"mode": "Blended"
}
"parentMaterial": "Materials/Presets/PBR/default_grid.material",
"propertyValues": {
"opacity.mode": "Blended"
}
}
@@ -1,17 +1,13 @@
{
"description": "",
"parentMaterial": "",
"materialType": "TestData/Materials/Types/MinimalPBR.materialtype",
"materialTypeVersion": 3,
"properties": {
"settings": {
"color": [
0.08522164076566696,
0.11898985505104065,
1.0,
1.0
],
"roughness": 0.33000001311302185
}
"propertyValues": {
"settings.color": [
0.08522164076566696,
0.11898985505104065,
1.0,
1.0
],
"settings.roughness": 0.33000001311302185
}
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"materialType": "UVs.materialtype"
}
}
+22 -28
View File
@@ -1,32 +1,26 @@
{
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 1,
"properties": {
"baseColor": {
"color": [ 0.18, 0.18, 0.18 ],
"factor": 1.0,
"useTexture": false,
"textureMap": ""
},
"metallic": {
"factor": 0.0,
"useTexture": false,
"textureMap": ""
},
"roughness": {
"factor": 1.0,
"useTexture": false,
"textureMap": ""
},
"specularF0": {
"factor": 0.5,
"useTexture": false,
"textureMap": ""
},
"normal": {
"factor": 1.0,
"useTexture": false,
"textureMap": ""
}
"propertyValues": {
"baseColor.color": [
0.18000000715255737,
0.18000000715255737,
0.18000000715255737
],
"baseColor.factor": 1.0,
"baseColor.textureMap": "",
"baseColor.useTexture": false,
"metallic.factor": 0.0,
"metallic.textureMap": "",
"metallic.useTexture": false,
"normal.factor": 1.0,
"normal.textureMap": "",
"normal.useTexture": false,
"roughness.factor": 1.0,
"roughness.textureMap": "",
"roughness.useTexture": false,
"specularF0.factor": 0.5,
"specularF0.textureMap": "",
"specularF0.useTexture": false
}
}
}
@@ -1,36 +1,20 @@
{
"materialType": "Materials/Types/StandardPBR.materialtype",
"materialTypeVersion": 4,
"properties": {
"baseColor": {
"textureMap": "Materials/decal/airship_symbol_decal.tif"
},
"general": {
"doubleSided": true
},
"metallic": {
"useTexture": false
},
"normal": {
"useTexture": false
},
"opacity": {
"alphaSource": "Split",
"factor": 0.6899999976158142,
"mode": "Cutout",
"textureMap": "Materials/decal/airship_symbol_decal.tif"
},
"roughness": {
"useTexture": false
},
"specularF0": {
"useTexture": false
},
"uv": {
"center": [
0.0,
1.0
]
}
"propertyValues": {
"baseColor.textureMap": "Materials/decal/airship_symbol_decal.tif",
"general.doubleSided": true,
"metallic.useTexture": false,
"normal.useTexture": false,
"opacity.alphaSource": "Split",
"opacity.factor": 0.6899999976158142,
"opacity.mode": "Cutout",
"opacity.textureMap": "Materials/decal/airship_symbol_decal.tif",
"roughness.useTexture": false,
"specularF0.useTexture": false,
"uv.center": [
0.0,
1.0
]
}
}
@@ -1,13 +1,9 @@
{
"description": "",
"materialType": "Materials/Types/Skin.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"wrinkleLayers": {
"count": 3,
"enable": true,
"showBlendValues": true
}
"propertyValues": {
"wrinkleLayers.count": 3,
"wrinkleLayers.enable": true,
"wrinkleLayers.showBlendValues": true
}
}
}
@@ -82,9 +82,8 @@ namespace AZ
// The source data for generating material asset
sourceData.m_materialType = GetMaterialTypePath();
auto handleTexture = [&materialData, &sourceData](
const char* propertyTextureGroup, SceneAPI::DataTypes::IMaterialData::TextureMapType textureType) {
MaterialSourceData::PropertyMap& properties = sourceData.m_properties[propertyTextureGroup];
auto handleTexture = [&materialData, &sourceData](const char* propertyTextureGroup, SceneAPI::DataTypes::IMaterialData::TextureMapType textureType)
{
const AZStd::string& texturePath = materialData.GetTexture(textureType);
// Check to see if the image asset exists. If not, skip this texture map and just disable it.
@@ -101,7 +100,7 @@ namespace AZ
if (assetFound)
{
properties["textureMap"].m_value = texturePath;
sourceData.SetPropertyValue(MaterialPropertyId{propertyTextureGroup, "textureMap"}, texturePath);
}
else if (!texturePath.empty())
{
@@ -120,7 +119,7 @@ namespace AZ
{
anyPBRInUse = true;
handleTexture("baseColor", SceneAPI::DataTypes::IMaterialData::TextureMapType::BaseColor);
sourceData.m_properties["baseColor"]["textureBlendMode"].m_value = AZStd::string("Lerp");
sourceData.SetPropertyValue(Name{"baseColor.textureBlendMode"}, AZStd::string("Lerp"));
}
else
{
@@ -135,10 +134,10 @@ namespace AZ
if (baseColor.has_value())
{
anyPBRInUse = true;
sourceData.m_properties["baseColor"]["color"].m_value = toColor(baseColor.value());
sourceData.SetPropertyValue(Name{"baseColor.color"}, toColor(baseColor.value()));
}
sourceData.m_properties["opacity"]["factor"].m_value = materialData.GetOpacity();
sourceData.SetPropertyValue(Name{"opacity.factor"}, materialData.GetOpacity());
auto applyOptionalPropertiesFunc = [&sourceData, &anyPBRInUse](const auto& propertyGroup, const auto& propertyName, const auto& propertyOptional)
{
@@ -147,7 +146,7 @@ namespace AZ
if (propertyOptional.has_value())
{
anyPBRInUse = true;
sourceData.m_properties[propertyGroup][propertyName].m_value = propertyOptional.value();
sourceData.SetPropertyValue(MaterialPropertyId{propertyGroup, propertyName}, propertyOptional.value());
}
};
@@ -160,7 +159,7 @@ namespace AZ
applyOptionalPropertiesFunc("roughness", "useTexture", materialData.GetUseRoughnessMap());
handleTexture("emissive", SceneAPI::DataTypes::IMaterialData::TextureMapType::Emissive);
sourceData.m_properties["emissive"]["color"].m_value = toColor(materialData.GetEmissiveColor());
sourceData.SetPropertyValue(Name{"emissive.color"}, toColor(materialData.GetEmissiveColor()));
applyOptionalPropertiesFunc("emissive", "intensity", materialData.GetEmissiveIntensity());
applyOptionalPropertiesFunc("emissive", "useTexture", materialData.GetUseEmissiveMap());
@@ -171,7 +170,7 @@ namespace AZ
{
// If it doesn't have the useColorMap property, then it's a non-PBR material and the baseColor
// texture needs to be set to the diffuse color.
sourceData.m_properties["baseColor"]["color"].m_value = toColor(materialData.GetDiffuseColor());
sourceData.SetPropertyValue(Name{"baseColor.color"}, toColor(materialData.GetDiffuseColor()));
}
return true;
}
@@ -59,24 +59,25 @@ namespace AZ
uint32_t m_materialTypeVersion = 0; //!< The version of the material type that was used to configure this material
struct Property
{
AZ_TYPE_INFO(AZ::RPI::MaterialSourceData::Property, "{8D613464-3750-4122-AFFE-9238010D5AFC}");
MaterialPropertyValue m_value;
};
using PropertyMap = AZStd::map<AZStd::string, Property>;
using PropertyGroupMap = AZStd::map<AZStd::string, PropertyMap>;
PropertyGroupMap m_properties;
enum class ApplyVersionUpdatesResult
{
Failed,
NoUpdates,
UpdatesApplied
};
//! If the data was loaded from an old format file (i.e. where "properties" was a tree with property values nested under groups),
//! this converts to the new format where properties are stored in a flat list.
void ConvertToNewDataFormat();
// Note that even though we use an unordered map, the JSON serialization system is nice enough to sort the data when saving to JSON.
using PropertyValueMap = AZStd::unordered_map<Name, MaterialPropertyValue>;
void SetPropertyValue(const Name& propertyId, const MaterialPropertyValue& value);
const MaterialPropertyValue& GetPropertyValue(const Name& propertyId) const;
const PropertyValueMap& GetPropertyValues() const;
bool HasPropertyValue(const Name& propertyId) const;
void RemovePropertyValue(const Name& propertyId);
//! Creates a MaterialAsset from the MaterialSourceData content.
//! @param assetId ID for the MaterialAsset
@@ -103,8 +104,16 @@ namespace AZ
AZStd::unordered_set<AZStd::string>* sourceDependencies = nullptr) const;
private:
void ApplyPropertiesToAssetCreator(
AZ::RPI::MaterialAssetCreator& materialAssetCreator, const AZStd::string_view& materialSourceFilePath) const;
// @deprecated: Don't use "properties" in JSON, use "propertyValues" instead.
using PropertyGroupMap = AZStd::unordered_map<Name, PropertyValueMap>;
PropertyGroupMap m_propertiesOld;
PropertyValueMap m_propertyValues;
MaterialPropertyValue m_invalidValue;
};
} // namespace RPI
} // namespace AZ
@@ -218,11 +218,11 @@ namespace AZ
//! This field is unused, and has been replaced by MaterialTypeSourceData::m_version below. It is kept for legacy file compatibility to suppress warnings and errors.
uint32_t m_versionOld = 0;
//! [Deprecated] Use m_propertyGroups instead
//! @deprecated: Use m_propertyGroups instead
//! List of groups that will contain the available properties
AZStd::vector<GroupDefinition> m_groupsOld;
//! [Deprecated] Use m_propertyGroups instead
//! @deprecated: Use m_propertyGroups instead
AZStd::map<AZStd::string /*group name*/, AZStd::vector<PropertyDefinition>> m_propertiesOld;
//! Collection of all available user-facing properties
@@ -24,6 +24,7 @@ namespace AZ
namespace RPI
{
class MaterialSourceData;
class MaterialTypeSourceData;
namespace MaterialUtils
@@ -50,13 +51,16 @@ namespace AZ
//! @return if resolving is successful. An error will be reported if it fails.
bool ResolveMaterialPropertyEnumValue(const MaterialPropertyDescriptor* propertyDescriptor, const AZ::Name& enumName, MaterialPropertyValue& outResolvedValue);
//! Load material type from a json file or document.
//! Load a material type from a json file or document.
//! Otherwise, it will use the passed in document first if not null, or load the json document from the path.
//! @param filePath path to the JSON file to load, unless the @document is already provided. In either case, this path will be used to resolve any relative file references.
//! @param document an optional already loaded json document.
//! @param importedFiles receives the list of files that were imported by the JSON serializer
AZ::Outcome<MaterialTypeSourceData> LoadMaterialTypeSourceData(const AZStd::string& filePath, rapidjson::Document* document = nullptr, ImportedJsonFiles* importedFiles = nullptr);
//! Load a material from a json file.
AZ::Outcome<MaterialSourceData> LoadMaterialSourceData(const AZStd::string& filePath, const rapidjson::Value* document = nullptr, bool warningsAsErrors = false);
//! Utility function for custom JSON serializers to report results as "Skipped" when encountering keys that aren't recognized
//! as part of the custom format.
//! @param acceptedFieldNames an array of names that are recognized by the custom format
@@ -51,7 +51,7 @@ namespace AZ
{
AssetBuilderSDK::AssetBuilderDesc materialBuilderDescriptor;
materialBuilderDescriptor.m_name = JobKey;
materialBuilderDescriptor.m_version = 122; // nested property layers
materialBuilderDescriptor.m_version = 123; // nested property layers
materialBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.material", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
materialBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.materialtype", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
materialBuilderDescriptor.m_busId = azrtti_typeid<MaterialBuilder>();
@@ -128,33 +128,6 @@ namespace AZ
}
}
template<typename MaterialSourceDataT>
AZ::Outcome<MaterialSourceDataT> LoadSourceData(const rapidjson::Value& value, const AZStd::string& filePath)
{
MaterialSourceDataT material;
JsonDeserializerSettings settings;
JsonReportingHelper reportingHelper;
reportingHelper.Attach(settings);
JsonSerialization::Load(material, value, settings);
if (reportingHelper.ErrorsReported())
{
return AZ::Failure();
}
else if (reportingHelper.WarningsReported())
{
AZ_Error(MaterialBuilderName, false, "Warnings reported while loading '%s'", filePath.c_str());
return AZ::Failure();
}
else
{
return AZ::Success(AZStd::move(material));
}
}
void MaterialBuilder::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const
{
if (m_isShuttingDown)
@@ -297,7 +270,7 @@ namespace AZ
AZ::Data::Asset<MaterialAsset> MaterialBuilder::CreateMaterialAsset(AZStd::string_view materialSourceFilePath, const rapidjson::Value& json) const
{
auto material = LoadSourceData<MaterialSourceData>(json, materialSourceFilePath);
auto material = MaterialUtils::LoadMaterialSourceData(materialSourceFilePath, &json, true);
if (!material.IsSuccess())
{
@@ -47,61 +47,61 @@ namespace AZ
{
namespace JSR = JsonSerializationResult;
AZ_Assert(azrtti_typeid<MaterialSourceData::Property>() == outputValueTypeId,
AZ_Assert(azrtti_typeid<MaterialPropertyValue>() == outputValueTypeId,
"Unable to deserialize material property value to json because the provided type is %s",
outputValueTypeId.ToString<AZStd::string>().c_str());
AZ_UNUSED(outputValueTypeId);
MaterialSourceData::Property* property = reinterpret_cast<MaterialSourceData::Property*>(outputValue);
MaterialPropertyValue* property = reinterpret_cast<MaterialPropertyValue*>(outputValue);
AZ_Assert(property, "Output value for JsonMaterialPropertyValueSerializer can't be null.");
JSR::ResultCode result(JSR::Tasks::ReadField);
if (inputValue.IsBool())
{
result.Combine(LoadVariant<bool>(property->m_value, false, inputValue, context));
result.Combine(LoadVariant<bool>(*property, false, inputValue, context));
}
else if (inputValue.IsInt() || inputValue.IsInt64())
{
result.Combine(LoadVariant<int32_t>(property->m_value, 0, inputValue, context));
result.Combine(LoadVariant<int32_t>(*property, 0, inputValue, context));
}
else if (inputValue.IsUint() || inputValue.IsUint64())
{
result.Combine(LoadVariant<uint32_t>(property->m_value, 0u, inputValue, context));
result.Combine(LoadVariant<uint32_t>(*property, 0u, inputValue, context));
}
else if (inputValue.IsFloat() || inputValue.IsDouble())
{
result.Combine(LoadVariant<float>(property->m_value, 0.0f, inputValue, context));
result.Combine(LoadVariant<float>(*property, 0.0f, inputValue, context));
}
else if (inputValue.IsArray() && inputValue.Size() == 4)
{
result.Combine(LoadVariant<Vector4>(property->m_value, Vector4{0.0f, 0.0f, 0.0f, 0.0f}, inputValue, context));
result.Combine(LoadVariant<Vector4>(*property, Vector4{0.0f, 0.0f, 0.0f, 0.0f}, inputValue, context));
}
else if (inputValue.IsArray() && inputValue.Size() == 3)
{
result.Combine(LoadVariant<Vector3>(property->m_value, Vector3{0.0f, 0.0f, 0.0f}, inputValue, context));
result.Combine(LoadVariant<Vector3>(*property, Vector3{0.0f, 0.0f, 0.0f}, inputValue, context));
}
else if (inputValue.IsArray() && inputValue.Size() == 2)
{
result.Combine(LoadVariant<Vector2>(property->m_value, Vector2{0.0f, 0.0f}, inputValue, context));
result.Combine(LoadVariant<Vector2>(*property, Vector2{0.0f, 0.0f}, inputValue, context));
}
else if (inputValue.IsObject())
{
JsonSerializationResult::ResultCode resultCode = LoadVariant<Color>(property->m_value, Color::CreateZero(), inputValue, context);
JsonSerializationResult::ResultCode resultCode = LoadVariant<Color>(*property, Color::CreateZero(), inputValue, context);
if(resultCode.GetProcessing() != JsonSerializationResult::Processing::Completed)
{
resultCode = LoadVariant<Vector4>(property->m_value, Vector4::CreateZero(), inputValue, context);
resultCode = LoadVariant<Vector4>(*property, Vector4::CreateZero(), inputValue, context);
}
if(resultCode.GetProcessing() != JsonSerializationResult::Processing::Completed)
{
resultCode = LoadVariant<Vector3>(property->m_value, Vector3::CreateZero(), inputValue, context);
resultCode = LoadVariant<Vector3>(*property, Vector3::CreateZero(), inputValue, context);
}
if(resultCode.GetProcessing() != JsonSerializationResult::Processing::Completed)
{
resultCode = LoadVariant<Vector2>(property->m_value, Vector2::CreateZero(), inputValue, context);
resultCode = LoadVariant<Vector2>(*property, Vector2::CreateZero(), inputValue, context);
}
if(resultCode.GetProcessing() == JsonSerializationResult::Processing::Completed)
@@ -115,7 +115,7 @@ namespace AZ
}
else if (inputValue.IsString())
{
result.Combine(LoadVariant<AZStd::string>(property->m_value, AZStd::string{}, inputValue, context));
result.Combine(LoadVariant<AZStd::string>(*property, AZStd::string{}, inputValue, context));
}
else
{
@@ -137,51 +137,51 @@ namespace AZ
{
namespace JSR = JsonSerializationResult;
AZ_Assert(azrtti_typeid<MaterialSourceData::Property>() == valueTypeId,
AZ_Assert(azrtti_typeid<MaterialPropertyValue>() == valueTypeId,
"Unable to serialize material property value to json because the provided type is %s",
valueTypeId.ToString<AZStd::string>().c_str());
AZ_UNUSED(valueTypeId);
const MaterialSourceData::Property* property = reinterpret_cast<const MaterialSourceData::Property*>(inputValue);
const MaterialPropertyValue* property = reinterpret_cast<const MaterialPropertyValue*>(inputValue);
AZ_Assert(property, "Input value for JsonMaterialPropertyValueSerializer can't be null.");
JSR::ResultCode result(JSR::Tasks::WriteValue);
if (property->m_value.Is<bool>())
if (property->Is<bool>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<bool>(), nullptr, azrtti_typeid<bool>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<bool>(), nullptr, azrtti_typeid<bool>(), context));
}
else if (property->m_value.Is<int32_t>())
else if (property->Is<int32_t>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<int32_t>(), nullptr, azrtti_typeid<int32_t>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<int32_t>(), nullptr, azrtti_typeid<int32_t>(), context));
}
else if (property->m_value.Is<uint32_t>())
else if (property->Is<uint32_t>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<uint32_t>(), nullptr, azrtti_typeid<uint32_t>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<uint32_t>(), nullptr, azrtti_typeid<uint32_t>(), context));
}
else if (property->m_value.Is<float>())
else if (property->Is<float>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<float>(), nullptr, azrtti_typeid<float>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<float>(), nullptr, azrtti_typeid<float>(), context));
}
else if (property->m_value.Is<Vector2>())
else if (property->Is<Vector2>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<Vector2>(), nullptr, azrtti_typeid<Vector2>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<Vector2>(), nullptr, azrtti_typeid<Vector2>(), context));
}
else if (property->m_value.Is<Vector3>())
else if (property->Is<Vector3>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<Vector3>(), nullptr, azrtti_typeid<Vector3>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<Vector3>(), nullptr, azrtti_typeid<Vector3>(), context));
}
else if (property->m_value.Is<Vector4>())
else if (property->Is<Vector4>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<Vector4>(), nullptr, azrtti_typeid<Vector4>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<Vector4>(), nullptr, azrtti_typeid<Vector4>(), context));
}
else if (property->m_value.Is<Color>())
else if (property->Is<Color>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<Color>(), nullptr, azrtti_typeid<Color>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<Color>(), nullptr, azrtti_typeid<Color>(), context));
}
else if (property->m_value.Is<AZStd::string>())
else if (property->Is<AZStd::string>())
{
result.Combine(ContinueStoring(outputValue, &property->m_value.GetValue<AZStd::string>(), nullptr, azrtti_typeid<AZStd::string>(), context));
result.Combine(ContinueStoring(outputValue, &property->GetValue<AZStd::string>(), nullptr, azrtti_typeid<AZStd::string>(), context));
}
if (result.GetProcessing() == JsonSerializationResult::Processing::Completed)
@@ -43,7 +43,7 @@ namespace AZ
{
if (JsonRegistrationContext* jsonContext = azrtti_cast<JsonRegistrationContext*>(context))
{
jsonContext->Serializer<JsonMaterialPropertyValueSerializer>()->HandlesType<MaterialSourceData::Property>();
jsonContext->Serializer<JsonMaterialPropertyValueSerializer>()->HandlesType<MaterialPropertyValue>();
}
else if (auto* serializeContext = azrtti_cast<SerializeContext*>(context))
{
@@ -53,15 +53,12 @@ namespace AZ
->Field("materialType", &MaterialSourceData::m_materialType)
->Field("materialTypeVersion", &MaterialSourceData::m_materialTypeVersion)
->Field("parentMaterial", &MaterialSourceData::m_parentMaterial)
->Field("properties", &MaterialSourceData::m_properties)
->Field("properties", &MaterialSourceData::m_propertiesOld)
->Field("propertyValues", &MaterialSourceData::m_propertyValues)
;
serializeContext->RegisterGenericType<PropertyMap>();
serializeContext->RegisterGenericType<PropertyValueMap>();
serializeContext->RegisterGenericType<PropertyGroupMap>();
serializeContext->Class<MaterialSourceData::Property>()
->Version(1)
;
}
}
@@ -76,6 +73,55 @@ namespace AZ
}
}
void MaterialSourceData::SetPropertyValue(const Name& propertyId, const MaterialPropertyValue& value)
{
if (!propertyId.IsEmpty())
{
m_propertyValues[propertyId] = value;
}
}
const MaterialPropertyValue& MaterialSourceData::GetPropertyValue(const Name& propertyId) const
{
auto iter = m_propertyValues.find(propertyId);
if (iter == m_propertyValues.end())
{
return m_invalidValue;
}
else
{
return iter->second;
}
}
void MaterialSourceData::RemovePropertyValue(const Name& propertyId)
{
m_propertyValues.erase(propertyId);
}
const MaterialSourceData::PropertyValueMap& MaterialSourceData::GetPropertyValues() const
{
return m_propertyValues;
}
bool MaterialSourceData::HasPropertyValue(const Name& propertyId) const
{
return m_propertyValues.find(propertyId) != m_propertyValues.end();
}
void MaterialSourceData::ConvertToNewDataFormat()
{
for (const auto& [groupName, propertyList] : m_propertiesOld)
{
for (const auto& [propertyName, propertyValue] : propertyList)
{
SetPropertyValue(MaterialPropertyId{groupName, propertyName}, propertyValue);
}
}
m_propertiesOld.clear();
}
Outcome<Data::Asset<MaterialAsset>> MaterialSourceData::CreateMaterialAsset(
Data::AssetId assetId, AZStd::string_view materialSourceFilePath, MaterialAssetProcessingMode processingMode, bool elevateWarnings) const
{
@@ -253,12 +299,14 @@ namespace AZ
return Failure();
}
MaterialSourceData parentSourceData;
if (!AZ::RPI::JsonUtils::LoadObjectFromFile(parentSourceAbsPath, parentSourceData))
auto loadParentResult = MaterialUtils::LoadMaterialSourceData(parentSourceAbsPath);
if (!loadParentResult)
{
AZ_Error("MaterialSourceData", false, "Failed to load MaterialSourceData for parent material: '%s'.", parentSourceAbsPath.c_str());
return Failure();
}
MaterialSourceData parentSourceData = loadParentResult.TakeValue();
// Make sure that all materials in the hierarchy share the same material type
const auto parentTypeAssetId = AssetUtils::MakeAssetId(parentSourceAbsPath, parentSourceData.m_materialType, 0);
@@ -317,30 +365,29 @@ namespace AZ
void MaterialSourceData::ApplyPropertiesToAssetCreator(
AZ::RPI::MaterialAssetCreator& materialAssetCreator, const AZStd::string_view& materialSourceFilePath) const
{
for (auto& group : m_properties)
for (auto& [propertyId, propertyValue] : m_propertyValues)
{
for (auto& property : group.second)
if (!propertyValue.IsValid())
{
materialAssetCreator.ReportWarning("Source data for material property value is invalid.");
}
else
{
MaterialPropertyId propertyId{ group.first, property.first };
if (!property.second.m_value.IsValid())
{
materialAssetCreator.ReportWarning("Source data for material property value is invalid.");
}
// If the source value type is a string, there are two possible property types: Image and Enum. If there is a "." in
// the string (for the extension) we assume it's an Image and look up the referenced Asset. Otherwise, we can assume
// it's an Enum value and just preserve the original string.
else if (property.second.m_value.Is<AZStd::string>() && AzFramework::StringFunc::Contains(property.second.m_value.GetValue<AZStd::string>(), "."))
if (propertyValue.Is<AZStd::string>() && AzFramework::StringFunc::Contains(propertyValue.GetValue<AZStd::string>(), "."))
{
Data::Asset<ImageAsset> imageAsset;
MaterialUtils::GetImageAssetResult result = MaterialUtils::GetImageAssetReference(
imageAsset, materialSourceFilePath, property.second.m_value.GetValue<AZStd::string>());
imageAsset, materialSourceFilePath, propertyValue.GetValue<AZStd::string>());
if (result == MaterialUtils::GetImageAssetResult::Missing)
{
materialAssetCreator.ReportWarning(
"Material property '%s': Could not find the image '%s'", propertyId.GetCStr(),
property.second.m_value.GetValue<AZStd::string>().data());
propertyValue.GetValue<AZStd::string>().data());
}
imageAsset.SetAutoLoadBehavior(Data::AssetLoadBehavior::PreLoad);
@@ -348,7 +395,7 @@ namespace AZ
}
else
{
materialAssetCreator.SetPropertyValue(propertyId, property.second.m_value);
materialAssetCreator.SetPropertyValue(propertyId, propertyValue);
}
}
}
@@ -103,9 +103,9 @@ namespace AZ
serializeContext->Class<PropertyLayout>()
->Version(3) // Added propertyGroups
->Field("version", &PropertyLayout::m_versionOld) //< Deprecated, preserved for backward compatibility, replaced by MaterialTypeSourceData::version
->Field("groups", &PropertyLayout::m_groupsOld) //< Deprecated, preserved for backward compatibility, replaced by propertyGroups
->Field("properties", &PropertyLayout::m_propertiesOld) //< Deprecated, preserved for backward compatibility, replaced by propertyGroups
->Field("version", &PropertyLayout::m_versionOld) //< @deprecated: preserved for backward compatibility, replaced by MaterialTypeSourceData::version
->Field("groups", &PropertyLayout::m_groupsOld) //< @deprecated: preserved for backward compatibility, replaced by propertyGroups
->Field("properties", &PropertyLayout::m_propertiesOld) //< @deprecated: preserved for backward compatibility, replaced by propertyGroups
->Field("propertyGroups", &PropertyLayout::m_propertyGroups)
;
@@ -12,6 +12,7 @@
#include <Atom/RPI.Reflect/Image/StreamingImageAsset.h>
#include <Atom/RPI.Reflect/Material/MaterialAsset.h>
#include <Atom/RPI.Reflect/Material/MaterialTypeAsset.h>
#include <Atom/RPI.Edit/Material/MaterialSourceData.h>
#include <Atom/RPI.Edit/Material/MaterialTypeSourceData.h>
#include <Atom/RPI.Edit/Common/JsonReportingHelper.h>
#include <Atom/RPI.Edit/Common/JsonUtils.h>
@@ -83,7 +84,7 @@ namespace AZ
AZ::Outcome<rapidjson::Document, AZStd::string> loadOutcome = AZ::JsonSerializationUtils::ReadJsonFile(filePath, AZ::RPI::JsonUtils::DefaultMaxFileSize);
if (!loadOutcome.IsSuccess())
{
AZ_Error("AZ::RPI::JsonUtils", false, "%s", loadOutcome.GetError().c_str());
AZ_Error("MaterialUtils", false, "%s", loadOutcome.GetError().c_str());
return AZ::Failure();
}
@@ -121,6 +122,46 @@ namespace AZ
return AZ::Success(AZStd::move(materialType));
}
}
AZ::Outcome<MaterialSourceData> LoadMaterialSourceData(const AZStd::string& filePath, const rapidjson::Value* document, bool warningsAsErrors)
{
AZ::Outcome<rapidjson::Document, AZStd::string> loadOutcome;
if (document == nullptr)
{
loadOutcome = AZ::JsonSerializationUtils::ReadJsonFile(filePath, AZ::RPI::JsonUtils::DefaultMaxFileSize);
if (!loadOutcome.IsSuccess())
{
AZ_Error("MaterialUtils", false, "%s", loadOutcome.GetError().c_str());
return AZ::Failure();
}
document = &loadOutcome.GetValue();
}
MaterialSourceData material;
JsonDeserializerSettings settings;
JsonReportingHelper reportingHelper;
reportingHelper.Attach(settings);
JsonSerialization::Load(material, *document, settings);
material.ConvertToNewDataFormat();
if (reportingHelper.ErrorsReported())
{
return AZ::Failure();
}
else if (warningsAsErrors && reportingHelper.WarningsReported())
{
AZ_Error("MaterialUtils", false, "Warnings reported while loading '%s'", filePath.c_str());
return AZ::Failure();
}
else
{
return AZ::Success(AZStd::move(material));
}
}
void CheckForUnrecognizedJsonFields(const AZStd::string_view* acceptedFieldNames, uint32_t acceptedFieldNameCount, const rapidjson::Value& object, JsonDeserializerContext& context, JsonSerializationResult::ResultCode &result)
{
@@ -86,7 +86,7 @@ namespace UnitTest
RPITestFixture::TearDown();
}
Data::Asset<MaterialTypeAsset> CreateTestMaterialTypeAsset(Data::AssetId assetId)
{
const char* materialTypeJson = R"(
@@ -146,21 +146,21 @@ namespace UnitTest
}
)";
MaterialTypeSourceData materialTypeSourceData;
LoadTestDataFromJson(materialTypeSourceData, materialTypeJson);
return materialTypeSourceData.CreateMaterialTypeAsset(assetId).TakeValue();
}
};
void AddPropertyGroup(MaterialSourceData& material, AZStd::string_view groupName)
void AddPropertyGroup(MaterialSourceData&, AZStd::string_view)
{
material.m_properties.insert(groupName);
// Old function, left blank intentionally
}
void AddProperty(MaterialSourceData& material, AZStd::string_view groupName, AZStd::string_view propertyName, const MaterialPropertyValue& anyValue)
void AddProperty(MaterialSourceData& material, AZStd::string_view groupName, AZStd::string_view propertyName, const MaterialPropertyValue& value)
{
material.m_properties[groupName][propertyName].m_value = anyValue;
MaterialPropertyId id{groupName, propertyName};
material.SetPropertyValue(id, value);
}
TEST_F(MaterialSourceDataTests, CreateMaterialAsset_BasicProperties)
@@ -357,82 +357,63 @@ namespace UnitTest
return fixupType(a.GetTypeId()) == fixupType(targetTypeId) && fixupType(b.GetTypeId()) == fixupType(targetTypeId);
}
void CheckEqual(MaterialSourceData& a, MaterialSourceData& b)
void CheckEqual(const MaterialSourceData& a, const MaterialSourceData& b)
{
EXPECT_STREQ(a.m_materialType.data(), b.m_materialType.data());
EXPECT_STREQ(a.m_description.data(), b.m_description.data());
EXPECT_STREQ(a.m_parentMaterial.data(), b.m_parentMaterial.data());
EXPECT_STREQ(a.m_materialType.c_str(), b.m_materialType.c_str());
EXPECT_STREQ(a.m_description.c_str(), b.m_description.c_str());
EXPECT_STREQ(a.m_parentMaterial.c_str(), b.m_parentMaterial.c_str());
EXPECT_EQ(a.m_materialTypeVersion, b.m_materialTypeVersion);
EXPECT_EQ(a.m_properties.size(), b.m_properties.size());
for (auto& groupA : a.m_properties)
{
AZStd::string groupName = groupA.first;
EXPECT_EQ(a.GetPropertyValues().size(), b.GetPropertyValues().size());
auto groupIterB = b.m_properties.find(groupName);
if (groupIterB == b.m_properties.end())
for (auto& [propertyId, propertyValue] : a.GetPropertyValues())
{
if (!b.HasPropertyValue(propertyId))
{
EXPECT_TRUE(false) << "groupB[" << groupName.c_str() << "] not found";
EXPECT_TRUE(false) << "Property '" << propertyId.GetCStr() << "' not found in material B";
continue;
}
auto& groupB = *groupIterB;
auto& propertyA = propertyValue;
auto& propertyB = b.GetPropertyValue(propertyId);
EXPECT_EQ(groupA.second.size(), groupB.second.size()) << " for group[" << groupName.c_str() << "]";
for (auto& propertyIterA : groupA.second)
{
AZStd::string propertyName = propertyIterA.first;
auto propertyIterB = groupB.second.find(propertyName);
if (propertyIterB == groupB.second.end())
{
EXPECT_TRUE(false) << "groupB[" << groupName.c_str() << "][" << propertyName.c_str() << "] not found";
continue;
}
auto& propertyA = propertyIterA.second;
auto& propertyB = propertyIterB->second;
AZStd::string propertyReference = AZStd::string::format(" for property '%s.%s'", groupName.c_str(), propertyName.c_str());
AZStd::string propertyReference = AZStd::string::format(" for property '%s'", propertyId.GetCStr());
// We allow some types like Vector4 and Color or Int and UInt to be interchangeable since they serialize the same and can be converted when the MaterialAsset is finalized.
// We allow some types like Vector4 and Color or Int and UInt to be interchangeable since they serialize the same and can be converted when the MaterialAsset is finalized.
if (AreTypesCompatible<bool>(propertyA.m_value, propertyB.m_value))
{
EXPECT_EQ(propertyA.m_value.GetValue<bool>(), propertyB.m_value.GetValue<bool>()) << propertyReference.c_str();
}
else if (AreTypesCompatible<int32_t>(propertyA.m_value, propertyB.m_value))
{
EXPECT_EQ(GetAsInt(propertyA.m_value), GetAsInt(propertyB.m_value)) << propertyReference.c_str();
}
else if (AreTypesCompatible<float>(propertyA.m_value, propertyB.m_value))
{
EXPECT_NEAR(propertyA.m_value.GetValue<float>(), propertyB.m_value.GetValue<float>(), 0.01) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector2>(propertyA.m_value, propertyB.m_value))
{
EXPECT_TRUE(propertyA.m_value.GetValue<Vector2>().IsClose(propertyB.m_value.GetValue<Vector2>())) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector3>(propertyA.m_value, propertyB.m_value))
{
EXPECT_TRUE(propertyA.m_value.GetValue<Vector3>().IsClose(propertyB.m_value.GetValue<Vector3>())) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector4>(propertyA.m_value, propertyB.m_value))
{
EXPECT_TRUE(GetAsVector4(propertyA.m_value).IsClose(GetAsVector4(propertyB.m_value))) << propertyReference.c_str();
}
else if (AreTypesCompatible<AZStd::string>(propertyA.m_value, propertyB.m_value))
{
EXPECT_STREQ(propertyA.m_value.GetValue<AZStd::string>().c_str(), propertyB.m_value.GetValue<AZStd::string>().c_str()) << propertyReference.c_str();
}
else
{
ADD_FAILURE();
}
if (AreTypesCompatible<bool>(propertyA, propertyB))
{
EXPECT_EQ(propertyA.GetValue<bool>(), propertyB.GetValue<bool>()) << propertyReference.c_str();
}
else if (AreTypesCompatible<int32_t>(propertyA, propertyB))
{
EXPECT_EQ(GetAsInt(propertyA), GetAsInt(propertyB)) << propertyReference.c_str();
}
else if (AreTypesCompatible<float>(propertyA, propertyB))
{
EXPECT_NEAR(propertyA.GetValue<float>(), propertyB.GetValue<float>(), 0.01) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector2>(propertyA, propertyB))
{
EXPECT_TRUE(propertyA.GetValue<Vector2>().IsClose(propertyB.GetValue<Vector2>())) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector3>(propertyA, propertyB))
{
EXPECT_TRUE(propertyA.GetValue<Vector3>().IsClose(propertyB.GetValue<Vector3>())) << propertyReference.c_str();
}
else if (AreTypesCompatible<Vector4>(propertyA, propertyB))
{
EXPECT_TRUE(GetAsVector4(propertyA).IsClose(GetAsVector4(propertyB))) << propertyReference.c_str();
}
else if (AreTypesCompatible<AZStd::string>(propertyA, propertyB))
{
EXPECT_STREQ(propertyA.GetValue<AZStd::string>().c_str(), propertyB.GetValue<AZStd::string>().c_str()) << propertyReference.c_str();
}
else
{
ADD_FAILURE();
}
}
}
TEST_F(MaterialSourceDataTests, TestJsonRoundTrip)
@@ -465,6 +446,88 @@ namespace UnitTest
CheckEqual(sourceDataOriginal, sourceDataCopy);
}
TEST_F(MaterialSourceDataTests, TestLoadLegacyFormat)
{
const AZStd::string inputJson = R"(
{
"materialType": "test.materialtype", // Doesn't matter, this isn't loaded
"properties": {
"groupA": {
"myBool": true,
"myInt": 5,
"myFloat": 0.5
},
"groupB": {
"myFloat2": [0.1, 0.2],
"myFloat3": [0.3, 0.4, 0.5],
"myFloat4": [0.6, 0.7, 0.8, 0.9],
"myString": "Hello"
}
}
}
)";
MaterialSourceData material;
LoadTestDataFromJson(material, inputJson);
material.ConvertToNewDataFormat();
MaterialSourceData expectedMaterial;
expectedMaterial.m_materialType = "test.materialtype";
expectedMaterial.SetPropertyValue(Name{"groupA.myBool"}, true);
expectedMaterial.SetPropertyValue(Name{"groupA.myInt"}, 5);
expectedMaterial.SetPropertyValue(Name{"groupA.myFloat"}, 0.5f);
expectedMaterial.SetPropertyValue(Name{"groupB.myFloat2"}, Vector2(0.1f, 0.2f));
expectedMaterial.SetPropertyValue(Name{"groupB.myFloat3"}, Vector3(0.3f, 0.4f, 0.5f));
expectedMaterial.SetPropertyValue(Name{"groupB.myFloat4"}, Vector4(0.6f, 0.7f, 0.8f, 0.9f));
expectedMaterial.SetPropertyValue(Name{"groupB.myString"}, AZStd::string{"Hello"});
CheckEqual(expectedMaterial, material);
}
TEST_F(MaterialSourceDataTests, TestPropertyValues)
{
MaterialSourceData material;
Name foo{"foo"};
Name bar{"bar"};
Name baz{"baz"};
EXPECT_EQ(0, material.GetPropertyValues().size());
EXPECT_FALSE(material.HasPropertyValue(foo));
EXPECT_FALSE(material.HasPropertyValue(bar));
EXPECT_FALSE(material.HasPropertyValue(baz));
EXPECT_FALSE(material.GetPropertyValue(foo).IsValid());
EXPECT_FALSE(material.GetPropertyValue(bar).IsValid());
EXPECT_FALSE(material.GetPropertyValue(baz).IsValid());
material.SetPropertyValue(Name{"foo"}, 2);
material.SetPropertyValue(Name{"bar"}, true);
material.SetPropertyValue(Name{"baz"}, 0.5f);
EXPECT_EQ(3, material.GetPropertyValues().size());
EXPECT_TRUE(material.HasPropertyValue(foo));
EXPECT_TRUE(material.HasPropertyValue(bar));
EXPECT_TRUE(material.HasPropertyValue(baz));
EXPECT_TRUE(material.GetPropertyValue(foo).IsValid());
EXPECT_TRUE(material.GetPropertyValue(bar).IsValid());
EXPECT_TRUE(material.GetPropertyValue(baz).IsValid());
EXPECT_EQ(material.GetPropertyValue(foo).GetValue<int32_t>(), 2);
EXPECT_EQ(material.GetPropertyValue(bar).GetValue<bool>(), true);
EXPECT_EQ(material.GetPropertyValue(baz).GetValue<float>(), 0.5f);
material.RemovePropertyValue(bar);
EXPECT_EQ(2, material.GetPropertyValues().size());
EXPECT_TRUE(material.HasPropertyValue(foo));
EXPECT_FALSE(material.HasPropertyValue(bar));
EXPECT_TRUE(material.HasPropertyValue(baz));
EXPECT_TRUE(material.GetPropertyValue(foo).IsValid());
EXPECT_FALSE(material.GetPropertyValue(bar).IsValid());
EXPECT_TRUE(material.GetPropertyValue(baz).IsValid());
EXPECT_EQ(material.GetPropertyValue(foo).GetValue<int32_t>(), 2);
EXPECT_EQ(material.GetPropertyValue(baz).GetValue<float>(), 0.5f);
}
TEST_F(MaterialSourceDataTests, Load_MaterialTypeAfterPropertyList)
{
@@ -487,21 +550,14 @@ namespace UnitTest
}
)";
const char* materialTypeFilePath = "@exefolder@/Temp/simpleMaterialType.materialtype";
AZ::IO::FileIOStream file;
EXPECT_TRUE(file.Open(materialTypeFilePath, AZ::IO::OpenMode::ModeWrite | AZ::IO::OpenMode::ModeCreatePath));
file.Write(simpleMaterialTypeJson.size(), simpleMaterialTypeJson.data());
file.Close();
AZ::Utils::WriteFile(simpleMaterialTypeJson, "@exefolder@/Temp/simpleMaterialType.materialtype");
// It shouldn't matter whether the materialType field appears before the property value list. This allows for the possibility
// that customer scripts generate material data and happen to use an unexpected order.
const AZStd::string inputJson = R"(
{
"properties": {
"general": {
"testValue": 1.2
}
"propertyValues": {
"general.testValue": 1.2
},
"materialType": "@exefolder@/Temp/simpleMaterialType.materialtype"
}
@@ -513,7 +569,7 @@ namespace UnitTest
EXPECT_EQ(AZ::JsonSerializationResult::Tasks::ReadField, loadResult.m_jsonResultCode.GetTask());
EXPECT_EQ(AZ::JsonSerializationResult::Processing::Completed, loadResult.m_jsonResultCode.GetProcessing());
float testValue = material.m_properties["general"]["testValue"].m_value.GetValue<float>();
float testValue = material.GetPropertyValue(Name{"general.testValue"}).GetValue<float>();
EXPECT_FLOAT_EQ(1.2f, testValue);
}
@@ -522,10 +578,8 @@ namespace UnitTest
const AZStd::string inputJson = R"(
{
"materialTypeVersion": 1,
"properties": {
"baseColor": {
"color": [1.0,1.0,1.0]
}
"propertyValues": {
"baseColor.color": [1.0,1.0,1.0]
}
}
)";
@@ -561,10 +615,8 @@ namespace UnitTest
{
"materialType": "DoesNotExist.materialtype",
"materialTypeVersion": 1,
"properties": {
"baseColor": {
"color": [1.0,1.0,1.0]
}
"propertyValues": {
"baseColor.color": [1.0,1.0,1.0]
}
}
)";
@@ -900,10 +952,8 @@ namespace UnitTest
const AZStd::string inputJson = AZStd::string::format(R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"properties": {
"%s": {
"%s": %s
}
"propertyValues": {
"%s.%s": %s
}
}
)", groupName, propertyName, jsonValue);
@@ -965,7 +1015,239 @@ namespace UnitTest
CheckEndToEndDataTypeResolution("MyFloat4", "{\"y\":0.2, \"x\":0.1, \"Z\":0.3}", Vector4{0.1f, 0.2f, 0.3f, 0.0f});
CheckEndToEndDataTypeResolution("MyFloat4", "{\"y\":0.2, \"W\":0.4, \"x\":0.1, \"Z\":0.3}", Vector4{0.1f, 0.2f, 0.3f, 0.4f});
}
TEST_F(MaterialSourceDataTests, CreateMaterialAssetFromSourceData_MultiLevelDataInheritance)
{
// Note the data being tested here is based on CreateMaterialAsset_MultiLevelDataInheritance()
const AZStd::string simpleMaterialTypeJson = R"(
{
"propertyLayout": {
"propertyGroups":
[
{
"name": "general",
"properties": [
{
"name": "MyFloat",
"type": "Float"
},
{
"name": "MyFloat2",
"type": "Vector2"
},
{
"name": "MyColor",
"type": "Color"
}
]
}
]
}
}
)";
AZ::Utils::WriteFile(simpleMaterialTypeJson, "@exefolder@/Temp/test.materialtype");
const AZStd::string material1Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"propertyValues": {
"general.MyFloat": 1.5,
"general.MyColor": [0.1, 0.2, 0.3, 0.4]
}
}
)";
AZ::Utils::WriteFile(material1Json, "@exefolder@/Temp/m1.material");
const AZStd::string material2Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"parentMaterial": "@exefolder@/Temp/m1.material",
"propertyValues": {
"general.MyFloat2": [4.1, 4.2],
"general.MyColor": [0.15, 0.25, 0.35, 0.45]
}
}
)";
AZ::Utils::WriteFile(material2Json, "@exefolder@/Temp/m2.material");
const AZStd::string material3Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"parentMaterial": "@exefolder@/Temp/m2.material",
"propertyValues": {
"general.MyFloat": 3.5
}
}
)";
AZ::Utils::WriteFile(material3Json, "@exefolder@/Temp/m3.material");
MaterialSourceData sourceDataLevel1 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m1.material").TakeValue();
MaterialSourceData sourceDataLevel2 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m2.material").TakeValue();
MaterialSourceData sourceDataLevel3 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m3.material").TakeValue();
auto materialAssetLevel1 = sourceDataLevel1.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
ASSERT_TRUE(materialAssetLevel1.IsSuccess());
EXPECT_TRUE(materialAssetLevel1.GetValue()->WasPreFinalized());
auto materialAssetLevel2 = sourceDataLevel2.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
ASSERT_TRUE(materialAssetLevel2.IsSuccess());
EXPECT_TRUE(materialAssetLevel2.GetValue()->WasPreFinalized());
auto materialAssetLevel3 = sourceDataLevel3.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
ASSERT_TRUE(materialAssetLevel3.IsSuccess());
EXPECT_TRUE(materialAssetLevel3.GetValue()->WasPreFinalized());
auto layout = materialAssetLevel1.GetValue()->GetMaterialPropertiesLayout();
MaterialPropertyIndex myFloat = layout->FindPropertyIndex(Name("general.MyFloat"));
MaterialPropertyIndex myFloat2 = layout->FindPropertyIndex(Name("general.MyFloat2"));
MaterialPropertyIndex myColor = layout->FindPropertyIndex(Name("general.MyColor"));
AZStd::span<const MaterialPropertyValue> properties;
// Check level 1 properties
properties = materialAssetLevel1.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 1.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(0.0f, 0.0f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.1f, 0.2f, 0.3f, 0.4f));
// Check level 2 properties
properties = materialAssetLevel2.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 1.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(4.1f, 4.2f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.15f, 0.25f, 0.35f, 0.45f));
// Check level 3 properties
properties = materialAssetLevel3.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 3.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(4.1f, 4.2f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.15f, 0.25f, 0.35f, 0.45f));
}
TEST_F(MaterialSourceDataTests, CreateMaterialAssetFromSourceData_MultiLevelDataInheritance_OldFormat)
{
// This test is the same as CreateMaterialAssetFromSourceData_MultiLevelDataInheritance except it uses the old format
// where material property values in the .material file were nested, with properties listed under a group object,
// rather than using a flat list of property values.
// Basically, we are making sure that MaterialSourceData::ConvertToNewDataFormat() is getting called.
const AZStd::string simpleMaterialTypeJson = R"(
{
"propertyLayout": {
"propertyGroups":
[
{
"name": "general",
"properties": [
{
"name": "MyFloat",
"type": "Float"
},
{
"name": "MyFloat2",
"type": "Vector2"
},
{
"name": "MyColor",
"type": "Color"
}
]
}
]
}
}
)";
AZ::Utils::WriteFile(simpleMaterialTypeJson, "@exefolder@/Temp/test.materialtype");
const AZStd::string material1Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"properties": {
"general": {
"MyFloat": 1.5,
"MyColor": [0.1, 0.2, 0.3, 0.4]
}
}
}
)";
AZ::Utils::WriteFile(material1Json, "@exefolder@/Temp/m1.material");
const AZStd::string material2Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"parentMaterial": "@exefolder@/Temp/m1.material",
"properties": {
"general": {
"MyFloat2": [4.1, 4.2],
"MyColor": [0.15, 0.25, 0.35, 0.45]
}
}
}
)";
AZ::Utils::WriteFile(material2Json, "@exefolder@/Temp/m2.material");
const AZStd::string material3Json = R"(
{
"materialType": "@exefolder@/Temp/test.materialtype",
"parentMaterial": "@exefolder@/Temp/m2.material",
"properties": {
"general": {
"MyFloat": 3.5
}
}
}
)";
AZ::Utils::WriteFile(material3Json, "@exefolder@/Temp/m3.material");
MaterialSourceData sourceDataLevel1 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m1.material").TakeValue();
MaterialSourceData sourceDataLevel2 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m2.material").TakeValue();
MaterialSourceData sourceDataLevel3 = MaterialUtils::LoadMaterialSourceData("@exefolder@/Temp/m3.material").TakeValue();
auto materialAssetLevel1 = sourceDataLevel1.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
EXPECT_TRUE(materialAssetLevel1.IsSuccess());
EXPECT_TRUE(materialAssetLevel1.GetValue()->WasPreFinalized());
auto materialAssetLevel2 = sourceDataLevel2.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
EXPECT_TRUE(materialAssetLevel2.IsSuccess());
EXPECT_TRUE(materialAssetLevel2.GetValue()->WasPreFinalized());
auto materialAssetLevel3 = sourceDataLevel3.CreateMaterialAssetFromSourceData(Uuid::CreateRandom());
EXPECT_TRUE(materialAssetLevel3.IsSuccess());
EXPECT_TRUE(materialAssetLevel3.GetValue()->WasPreFinalized());
auto layout = materialAssetLevel1.GetValue()->GetMaterialPropertiesLayout();
MaterialPropertyIndex myFloat = layout->FindPropertyIndex(Name("general.MyFloat"));
MaterialPropertyIndex myFloat2 = layout->FindPropertyIndex(Name("general.MyFloat2"));
MaterialPropertyIndex myColor = layout->FindPropertyIndex(Name("general.MyColor"));
AZStd::span<const MaterialPropertyValue> properties;
// Check level 1 properties
properties = materialAssetLevel1.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 1.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(0.0f, 0.0f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.1f, 0.2f, 0.3f, 0.4f));
// Check level 2 properties
properties = materialAssetLevel2.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 1.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(4.1f, 4.2f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.15f, 0.25f, 0.35f, 0.45f));
// Check level 3 properties
properties = materialAssetLevel3.GetValue()->GetPropertyValues();
EXPECT_EQ(properties[myFloat.GetIndex()].GetValue<float>(), 3.5f);
EXPECT_EQ(properties[myFloat2.GetIndex()].GetValue<Vector2>(), Vector2(4.1f, 4.2f));
EXPECT_EQ(properties[myColor.GetIndex()].GetValue<Color>(), Color(0.15f, 0.25f, 0.35f, 0.45f));
}
}
@@ -1,30 +1,24 @@
{
"description": "",
"materialType": "TestData/Materials/Types/AutoBrick.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"appearance": {
"ao": 0.5252525210380554,
"brickColor": [
0.3013504147529602,
0.0032501716632395984,
0.0032501716632395984,
1.0
],
"brickColorBleed": 0.5050504803657532,
"brickColorNoise": 0.20202019810676576,
"lineColor": [
0.08339055627584458,
0.07264820486307144,
0.05905241519212723,
1.0
],
"lineColorNoise": 0.35353541374206545
},
"shape": {
"brickWidth": 0.16660000383853913,
"lineDepth": 0.005454500205814838
}
"propertyValues": {
"appearance.ao": 0.5252525210380554,
"appearance.brickColor": [
0.3013504147529602,
0.0032501716632395983,
0.0032501716632395983,
1.0
],
"appearance.brickColorBleed": 0.5050504803657532,
"appearance.brickColorNoise": 0.20202019810676575,
"appearance.lineColor": [
0.08339055627584457,
0.07264820486307144,
0.05905241519212723,
1.0
],
"appearance.lineColorNoise": 0.35353541374206543,
"shape.brickWidth": 0.16660000383853912,
"shape.lineDepth": 0.005454500205814838
}
}
}
@@ -1,33 +1,27 @@
{
"description": "",
"materialType": "TestData/Materials/Types/AutoBrick.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"appearance": {
"ao": 0.010100999847054482,
"brickColor": [
0.4612802267074585,
0.6926985383033752,
0.6798046827316284,
1.0
],
"brickColorBleed": 0.5050504803657532,
"brickColorNoise": 0.05000000074505806,
"lineColor": [
1.0,
1.0,
1.0,
1.0
],
"lineColorNoise": 0.0
},
"shape": {
"brickHeight": 0.16660000383853913,
"brickOffset": 0.0,
"brickWidth": 0.16660000383853913,
"lineDepth": 0.0012121000327169896,
"lineWidth": 0.01030299998819828
}
"propertyValues": {
"appearance.ao": 0.010100999847054482,
"appearance.brickColor": [
0.4612802267074585,
0.6926985383033752,
0.6798046827316284,
1.0
],
"appearance.brickColorBleed": 0.5050504803657532,
"appearance.brickColorNoise": 0.05000000074505806,
"appearance.lineColor": [
1.0,
1.0,
1.0,
1.0
],
"appearance.lineColorNoise": 0.0,
"shape.brickHeight": 0.16660000383853912,
"shape.brickOffset": 0.0,
"shape.brickWidth": 0.16660000383853912,
"shape.lineDepth": 0.0012121000327169895,
"shape.lineWidth": 0.01030299998819828
}
}
}
@@ -1,33 +1,18 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "Materials/Presets/PBR/default_grid.material",
"materialTypeVersion": 3,
"properties": {
"occlusion": {
"diffuseTextureMap": "TestData/Textures/cc0/Rock030_2K_AmbientOcclusion.jpg"
},
"baseColor": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg"
},
"metallic": {
"useTexture": false
},
"normal": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg"
},
"parallax": {
"algorithm": "POM",
"factor": 0.03,
"quality": "High",
"textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg",
"pdo": true
},
"roughness": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg"
},
"specularF0": {
"useTexture": false
}
"parentMaterial": "Materials/Presets/PBR/default_grid.material",
"propertyValues": {
"baseColor.textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg",
"metallic.useTexture": false,
"normal.textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg",
"occlusion.diffuseTextureMap": "TestData/Textures/cc0/Rock030_2K_AmbientOcclusion.jpg",
"parallax.algorithm": "POM",
"parallax.factor": 0.029999999329447746,
"parallax.pdo": true,
"parallax.quality": "High",
"parallax.textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg",
"roughness.textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg",
"specularF0.useTexture": false
}
}
}
@@ -1,55 +1,43 @@
{
"description": "",
"materialType": "Materials/Types/Skin.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.1277027577161789,
0.174273282289505,
0.29372090101242068,
1.0
],
"textureMap": "Objects/Hermanubis/Hermanubis_bronze_BaseColor.png",
"useTexture": false
},
"detailLayerGroup": {
"baseColorDetailBlend": 0.4300000071525574,
"baseColorDetailMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg",
"enableBaseColor": true,
"enableDetailLayer": true,
"enableNormals": true,
"normalDetailFlipY": true,
"normalDetailMap": "TestData/Textures/cc0/Concrete019_1K_Normal.jpg",
"normalDetailStrength": 0.25999999046325686,
"textureMapUv": "Tiled"
},
"detailUV": {
"scale": 5.0
},
"normal": {
"flipY": true,
"textureMap": "Objects/Hermanubis/Hermanubis_Normal.png"
},
"subsurfaceScattering": {
"enableSubsurfaceScattering": true,
"influenceMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"scatterDistance": 15.0,
"subsurfaceScatterFactor": 0.4300000071525574,
"thicknessMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"transmissionAttenuation": 15.0,
"transmissionDistortion": 0.3499999940395355,
"transmissionMode": "ThickObject",
"transmissionPower": 16.399999618530275,
"transmissionScale": 0.10000000149011612,
"transmissionTint": [
1.0,
0.3182879388332367,
0.16388189792633058,
1.0
],
"useInfluenceMap": false
}
"propertyValues": {
"baseColor.color": [
0.1277027577161789,
0.174273282289505,
0.29372090101242065,
1.0
],
"baseColor.textureMap": "Objects/Hermanubis/Hermanubis_bronze_BaseColor.png",
"baseColor.useTexture": false,
"detailLayerGroup.baseColorDetailBlend": 0.4300000071525574,
"detailLayerGroup.baseColorDetailMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg",
"detailLayerGroup.enableBaseColor": true,
"detailLayerGroup.enableDetailLayer": true,
"detailLayerGroup.enableNormals": true,
"detailLayerGroup.normalDetailFlipY": true,
"detailLayerGroup.normalDetailMap": "TestData/Textures/cc0/Concrete019_1K_Normal.jpg",
"detailLayerGroup.normalDetailStrength": 0.25999999046325684,
"detailLayerGroup.textureMapUv": "Tiled",
"detailUV.scale": 5.0,
"normal.flipY": true,
"normal.textureMap": "Objects/Hermanubis/Hermanubis_Normal.png",
"subsurfaceScattering.enableSubsurfaceScattering": true,
"subsurfaceScattering.influenceMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"subsurfaceScattering.scatterDistance": 15.0,
"subsurfaceScattering.subsurfaceScatterFactor": 0.4300000071525574,
"subsurfaceScattering.thicknessMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"subsurfaceScattering.transmissionAttenuation": 15.0,
"subsurfaceScattering.transmissionDistortion": 0.3499999940395355,
"subsurfaceScattering.transmissionMode": "ThickObject",
"subsurfaceScattering.transmissionPower": 16.399999618530273,
"subsurfaceScattering.transmissionScale": 0.10000000149011612,
"subsurfaceScattering.transmissionTint": [
1.0,
0.3182879388332367,
0.16388189792633057,
1.0
],
"subsurfaceScattering.useInfluenceMap": false
}
}
}
@@ -1,63 +1,49 @@
{
"description": "",
"materialType": "Materials/Types/Skin.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.2847791314125061,
0.45421531796455386,
0.9392080307006836,
1.0
],
"textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_bc.png"
},
"detailLayerGroup": {
"baseColorDetailBlend": 0.4300000071525574,
"baseColorDetailMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg",
"enableBaseColor": true,
"enableDetailLayer": true,
"enableNormals": true,
"normalDetailFlipY": true,
"normalDetailMap": "TestData/Textures/cc0/Concrete019_1K_Normal.jpg",
"normalDetailStrength": 1.5,
"textureMapUv": "Tiled"
},
"detailUV": {
"scale": 5.0
},
"normal": {
"flipY": true,
"textureMap": "Objects/Hermanubis/Hermanubis_Normal.png"
},
"subsurfaceScattering": {
"enableSubsurfaceScattering": true,
"influenceMap": "TestData/Textures/checker8x8_gray_512.png",
"scatterDistance": 15.0,
"subsurfaceScatterFactor": 0.4300000071525574,
"thicknessMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"transmissionAttenuation": 15.0,
"transmissionDistortion": 0.3499999940395355,
"transmissionMode": "ThickObject",
"transmissionPower": 16.399999618530275,
"transmissionScale": 0.10000000149011612,
"transmissionTint": [
1.0,
0.3182879388332367,
0.16388189792633058,
1.0
]
},
"wrinkleLayers": {
"baseColorMap1": "TestData/Textures/cc0/Lava004_1K_Color.jpg",
"baseColorMap3": "TestData/Textures/checker8x8_gray_512.png",
"count": 3,
"enable": true,
"enableBaseColor": true,
"enableNormal": true,
"normalMap1": "TestData/Textures/cc0/Lava004_1K_Normal.jpg",
"normalMap2": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_normal.png"
}
"propertyValues": {
"baseColor.color": [
0.2847791314125061,
0.45421531796455383,
0.9392080307006836,
1.0
],
"baseColor.textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_bc.png",
"detailLayerGroup.baseColorDetailBlend": 0.4300000071525574,
"detailLayerGroup.baseColorDetailMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg",
"detailLayerGroup.enableBaseColor": true,
"detailLayerGroup.enableDetailLayer": true,
"detailLayerGroup.enableNormals": true,
"detailLayerGroup.normalDetailFlipY": true,
"detailLayerGroup.normalDetailMap": "TestData/Textures/cc0/Concrete019_1K_Normal.jpg",
"detailLayerGroup.normalDetailStrength": 1.5,
"detailLayerGroup.textureMapUv": "Tiled",
"detailUV.scale": 5.0,
"normal.flipY": true,
"normal.textureMap": "Objects/Hermanubis/Hermanubis_Normal.png",
"subsurfaceScattering.enableSubsurfaceScattering": true,
"subsurfaceScattering.influenceMap": "TestData/Textures/checker8x8_gray_512.png",
"subsurfaceScattering.scatterDistance": 15.0,
"subsurfaceScattering.subsurfaceScatterFactor": 0.4300000071525574,
"subsurfaceScattering.thicknessMap": "Objects/Hermanubis/Hermanubis_thickness.tif",
"subsurfaceScattering.transmissionAttenuation": 15.0,
"subsurfaceScattering.transmissionDistortion": 0.3499999940395355,
"subsurfaceScattering.transmissionMode": "ThickObject",
"subsurfaceScattering.transmissionPower": 16.399999618530273,
"subsurfaceScattering.transmissionScale": 0.10000000149011612,
"subsurfaceScattering.transmissionTint": [
1.0,
0.3182879388332367,
0.16388189792633057,
1.0
],
"wrinkleLayers.baseColorMap1": "TestData/Textures/cc0/Lava004_1K_Color.jpg",
"wrinkleLayers.baseColorMap3": "TestData/Textures/checker8x8_gray_512.png",
"wrinkleLayers.count": 3,
"wrinkleLayers.enable": true,
"wrinkleLayers.enableBaseColor": true,
"wrinkleLayers.enableNormal": true,
"wrinkleLayers.normalMap1": "TestData/Textures/cc0/Lava004_1K_Normal.jpg",
"wrinkleLayers.normalMap2": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_normal.png"
}
}
@@ -1,156 +1,96 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer2": true,
"enableLayer3": true
},
"layer1_baseColor": {
"color": [
0.3495536744594574,
0.2659952640533447,
0.12039368599653244,
1.0
],
"textureMap": "TestData/Textures/cc0/bark1_col.jpg"
},
"layer1_emissive": {
"color": [
0.8521705865859985,
0.029510948807001115,
0.029510948807001115,
1.0
],
"intensity": 0.8199999928474426
},
"layer1_normal": {
"factor": 0.4444443881511688,
"flipY": true,
"textureMap": "TestData/Textures/cc0/bark1_norm.jpg"
},
"layer1_occlusion": {
"diffuseFactor": 1.6399999856948853,
"diffuseTextureMap": "TestData/Textures/cc0/bark1_disp.jpg"
},
"layer1_parallax": {
"factor": 0.02500000037252903,
"textureMap": "TestData/Textures/cc0/bark1_disp.jpg"
},
"layer1_roughness": {
"lowerBound": 0.010100999847054482,
"textureMap": "TestData/Textures/cc0/bark1_roughness.jpg"
},
"layer1_specularF0": {
"factor": 0.5099999904632568,
"textureMap": "TestData/Textures/checker8x8_512.png"
},
"layer1_uv": {
"center": [
0.75,
0.75
],
"offsetU": 0.5,
"offsetV": 0.25
},
"layer2_baseColor": {
"textureMap": "TestData/Textures/cc0/Lava004_1K_Color.jpg"
},
"layer2_clearCoat": {
"enable": true,
"influenceMap": "TestData/Textures/checker8x8_512.png",
"normalMap": "TestData/Objects/cube/cube_norm.tif",
"normalStrength": 0.5400000214576721,
"roughness": 0.10000000149011612
},
"layer2_emissive": {
"enable": true,
"intensity": 2.140000104904175,
"textureMap": "TestData/Textures/cc0/Lava004_1K_Emission.jpg"
},
"layer2_normal": {
"flipY": true,
"textureMap": "TestData/Textures/cc0/Lava004_1K_Normal.jpg"
},
"layer2_occlusion": {
"specularFactor": 2.0,
"specularTextureMap": "TestData/Textures/cc0/Tiles009_1K_Displacement.jpg"
},
"layer2_parallax": {
"factor": 0.01600000075995922,
"textureMap": "TestData/Textures/cc0/Lava004_1K_Displacement.jpg"
},
"layer2_roughness": {
"textureMap": "TestData/Textures/cc0/Lava004_1K_Roughness.jpg"
},
"layer2_uv": {
"center": [
0.0,
0.0
],
"offsetU": 0.5,
"offsetV": 0.25
},
"layer3_baseColor": {
"color": [
0.6315556764602661,
1.0,
0.9451438188552856,
1.0
],
"textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Color.jpg"
},
"layer3_clearCoat": {
"influenceMap": "TestData/Textures/checker8x8_512.png"
},
"layer3_emissive": {
"intensity": -0.9399999976158142
},
"layer3_metallic": {
"factor": 1.0,
"textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Metalness.jpg"
},
"layer3_normal": {
"textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Normal.jpg"
},
"layer3_occlusion": {
"diffuseFactor": 1.0399999618530274,
"diffuseTextureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Displacement.jpg"
},
"layer3_parallax": {
"factor": 0.004999999888241291,
"textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Displacement.jpg"
},
"layer3_roughness": {
"lowerBound": 0.07999999821186066,
"textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Roughness.jpg",
"upperBound": 0.75
},
"layer3_specularF0": {
"factor": 0.47474750876426699
},
"layer3_uv": {
"center": [
0.0,
0.0
],
"offsetU": 0.11999999731779099,
"rotateDegrees": -57.599998474121097
},
"parallax": {
"quality": "Medium"
},
"uv": {
"center": [
0.10000000149011612,
0.20000000298023225
],
"offsetU": 0.23000000417232514,
"offsetV": -0.23999999463558198,
"rotateDegrees": 39.599998474121097,
"scale": 1.100000023841858
}
"propertyValues": {
"blend.enableLayer2": true,
"blend.enableLayer3": true,
"layer1_baseColor.color": [
0.3495536744594574,
0.2659952640533447,
0.12039368599653244,
1.0
],
"layer1_baseColor.textureMap": "TestData/Textures/cc0/bark1_col.jpg",
"layer1_emissive.color": [
0.8521705865859985,
0.029510948807001114,
0.029510948807001114,
1.0
],
"layer1_emissive.intensity": 0.8199999928474426,
"layer1_normal.factor": 0.4444443881511688,
"layer1_normal.flipY": true,
"layer1_normal.textureMap": "TestData/Textures/cc0/bark1_norm.jpg",
"layer1_occlusion.diffuseFactor": 1.6399999856948853,
"layer1_occlusion.diffuseTextureMap": "TestData/Textures/cc0/bark1_disp.jpg",
"layer1_parallax.factor": 0.02500000037252903,
"layer1_parallax.textureMap": "TestData/Textures/cc0/bark1_disp.jpg",
"layer1_roughness.lowerBound": 0.010100999847054482,
"layer1_roughness.textureMap": "TestData/Textures/cc0/bark1_roughness.jpg",
"layer1_specularF0.factor": 0.5099999904632568,
"layer1_specularF0.textureMap": "TestData/Textures/checker8x8_512.png",
"layer1_uv.center": [
0.75,
0.75
],
"layer1_uv.offsetU": 0.5,
"layer1_uv.offsetV": 0.25,
"layer2_baseColor.textureMap": "TestData/Textures/cc0/Lava004_1K_Color.jpg",
"layer2_clearCoat.enable": true,
"layer2_clearCoat.influenceMap": "TestData/Textures/checker8x8_512.png",
"layer2_clearCoat.normalMap": "TestData/Objects/cube/cube_norm.tif",
"layer2_clearCoat.normalStrength": 0.5400000214576721,
"layer2_clearCoat.roughness": 0.10000000149011612,
"layer2_emissive.enable": true,
"layer2_emissive.intensity": 2.140000104904175,
"layer2_emissive.textureMap": "TestData/Textures/cc0/Lava004_1K_Emission.jpg",
"layer2_normal.flipY": true,
"layer2_normal.textureMap": "TestData/Textures/cc0/Lava004_1K_Normal.jpg",
"layer2_occlusion.specularFactor": 2.0,
"layer2_occlusion.specularTextureMap": "TestData/Textures/cc0/Tiles009_1K_Displacement.jpg",
"layer2_parallax.factor": 0.01600000075995922,
"layer2_parallax.textureMap": "TestData/Textures/cc0/Lava004_1K_Displacement.jpg",
"layer2_roughness.textureMap": "TestData/Textures/cc0/Lava004_1K_Roughness.jpg",
"layer2_uv.center": [
0.0,
0.0
],
"layer2_uv.offsetU": 0.5,
"layer2_uv.offsetV": 0.25,
"layer3_baseColor.color": [
0.6315556764602661,
1.0,
0.9451438188552856,
1.0
],
"layer3_baseColor.textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Color.jpg",
"layer3_clearCoat.influenceMap": "TestData/Textures/checker8x8_512.png",
"layer3_emissive.intensity": -0.9399999976158142,
"layer3_metallic.factor": 1.0,
"layer3_metallic.textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Metalness.jpg",
"layer3_normal.textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Normal.jpg",
"layer3_occlusion.diffuseFactor": 1.0399999618530273,
"layer3_occlusion.diffuseTextureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Displacement.jpg",
"layer3_parallax.factor": 0.004999999888241291,
"layer3_parallax.textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Displacement.jpg",
"layer3_roughness.lowerBound": 0.07999999821186066,
"layer3_roughness.textureMap": "TestData/Textures/cc0/PaintedMetal003_1K_Roughness.jpg",
"layer3_roughness.upperBound": 0.75,
"layer3_specularF0.factor": 0.47474750876426697,
"layer3_uv.center": [
0.0,
0.0
],
"layer3_uv.offsetU": 0.11999999731779099,
"layer3_uv.rotateDegrees": -57.599998474121094,
"parallax.quality": "Medium",
"uv.center": [
0.10000000149011612,
0.20000000298023224
],
"uv.offsetU": 0.23000000417232513,
"uv.offsetV": -0.23999999463558197,
"uv.rotateDegrees": 39.599998474121094,
"uv.scale": 1.100000023841858
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/001_ManyFeatures.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer2": false
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/001_ManyFeatures.material",
"propertyValues": {
"blend.enableLayer2": false
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/001_ManyFeatures.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer3": false
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/001_ManyFeatures.material",
"propertyValues": {
"blend.enableLayer3": false
}
}
@@ -1,55 +1,29 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer2": true,
"enableLayer3": true
},
"layer1_baseColor": {
"textureMap": "TestData/Textures/cc0/bark1_col.jpg"
},
"layer1_normal": {
"textureMap": "TestData/Textures/cc0/bark1_norm.jpg"
},
"layer1_parallax": {
"factor": 0.03999999910593033,
"textureMap": "TestData/Textures/cc0/bark1_disp.jpg"
},
"layer1_roughness": {
"textureMap": "TestData/Textures/cc0/bark1_roughness.jpg"
},
"layer2_baseColor": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg"
},
"layer2_clearCoat": {
"normalStrength": 0.0
},
"layer2_normal": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg"
},
"layer2_parallax": {
"factor": 0.05299999937415123,
"offset": -0.024000000208616258,
"textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg"
},
"layer2_roughness": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg"
},
"layer3_baseColor": {
"color": [
0.4298008680343628,
0.4298008680343628,
0.4298008680343628,
1.0
],
"textureMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg"
},
"parallax": {
"pdo": true,
"quality": "Medium"
}
"propertyValues": {
"blend.enableLayer2": true,
"blend.enableLayer3": true,
"layer1_baseColor.textureMap": "TestData/Textures/cc0/bark1_col.jpg",
"layer1_normal.textureMap": "TestData/Textures/cc0/bark1_norm.jpg",
"layer1_parallax.factor": 0.03999999910593033,
"layer1_parallax.textureMap": "TestData/Textures/cc0/bark1_disp.jpg",
"layer1_roughness.textureMap": "TestData/Textures/cc0/bark1_roughness.jpg",
"layer2_baseColor.textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg",
"layer2_clearCoat.normalStrength": 0.0,
"layer2_normal.textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg",
"layer2_parallax.factor": 0.05299999937415123,
"layer2_parallax.offset": -0.024000000208616257,
"layer2_parallax.textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg",
"layer2_roughness.textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg",
"layer3_baseColor.color": [
0.4298008680343628,
0.4298008680343628,
0.4298008680343628,
1.0
],
"layer3_baseColor.textureMap": "TestData/Textures/cc0/Concrete019_1K_Color.jpg",
"parallax.pdo": true,
"parallax.quality": "Medium"
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"debugDrawMode": "BlendMask"
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"propertyValues": {
"blend.debugDrawMode": "BlendMask"
}
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"debugDrawMode": "FinalBlendWeights"
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"propertyValues": {
"blend.debugDrawMode": "FinalBlendWeights"
}
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"debugDrawMode": "Displacement"
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"propertyValues": {
"blend.debugDrawMode": "Displacement"
}
}
}
@@ -1,14 +1,9 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"blendSource": "BlendMaskVertexColors"
},
"parallax": {
"quality": "Medium"
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/002_ParallaxPdo.material",
"propertyValues": {
"blend.blendSource": "BlendMaskVertexColors",
"parallax.quality": "Medium"
}
}
@@ -1,81 +1,43 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"blend": {
"blendSource": "Displacement",
"displacementBlendDistance": 0.008999999612569809,
"enableLayer2": true,
"enableLayer3": true
},
"layer1_baseColor": {
"textureMap": "TestData/Textures/cc0/Ground033_1K_Color.jpg"
},
"layer1_normal": {
"textureMap": "TestData/Textures/cc0/Ground033_1K_Normal.jpg"
},
"layer1_occlusion": {
"diffuseTextureMap": "TestData/Textures/cc0/Ground033_1K_AmbientOcclusion.jpg"
},
"layer1_parallax": {
"factor": 0.017000000923871995,
"offset": -0.006000000052154064,
"textureMap": "TestData/Textures/cc0/Ground033_1K_Displacement.jpg"
},
"layer1_roughness": {
"textureMap": "TestData/Textures/cc0/Ground033_1K_Roughness.jpg"
},
"layer2_baseColor": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg"
},
"layer2_normal": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg"
},
"layer2_occlusion": {
"diffuseTextureMap": "TestData/Textures/cc0/Rocks002_1K_AmbientOcclusion.jpg"
},
"layer2_parallax": {
"factor": 0.03099999949336052,
"offset": 0.0020000000949949028,
"textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg"
},
"layer2_roughness": {
"textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg"
},
"layer2_uv": {
"center": [
0.0,
0.0
],
"offsetU": 0.1599999964237213,
"offsetV": 0.07999999821186066,
"rotateDegrees": 90.0
},
"layer3_baseColor": {
"textureMap": "TestData/Textures/cc0/Rocks002_1K_Color.jpg"
},
"layer3_normal": {
"textureMap": "TestData/Textures/cc0/Rocks002_1K_Normal.jpg"
},
"layer3_parallax": {
"factor": 0.027000000700354577,
"textureMap": "TestData/Textures/cc0/Rocks002_1K_Displacement.jpg"
},
"layer3_roughness": {
"textureMap": "TestData/Textures/cc0/Rocks002_1K_Roughness.jpg"
},
"layer3_uv": {
"center": [
0.0,
0.0
],
"scale": 3.4999988079071047
},
"parallax": {
"algorithm": "Relief",
"pdo": true
}
"propertyValues": {
"blend.blendSource": "Displacement",
"blend.displacementBlendDistance": 0.008999999612569809,
"blend.enableLayer2": true,
"blend.enableLayer3": true,
"layer1_baseColor.textureMap": "TestData/Textures/cc0/Ground033_1K_Color.jpg",
"layer1_normal.textureMap": "TestData/Textures/cc0/Ground033_1K_Normal.jpg",
"layer1_occlusion.diffuseTextureMap": "TestData/Textures/cc0/Ground033_1K_AmbientOcclusion.jpg",
"layer1_parallax.factor": 0.017000000923871994,
"layer1_parallax.offset": -0.006000000052154064,
"layer1_parallax.textureMap": "TestData/Textures/cc0/Ground033_1K_Displacement.jpg",
"layer1_roughness.textureMap": "TestData/Textures/cc0/Ground033_1K_Roughness.jpg",
"layer2_baseColor.textureMap": "TestData/Textures/cc0/Rock030_2K_Color.jpg",
"layer2_normal.textureMap": "TestData/Textures/cc0/Rock030_2K_Normal.jpg",
"layer2_occlusion.diffuseTextureMap": "TestData/Textures/cc0/Rocks002_1K_AmbientOcclusion.jpg",
"layer2_parallax.factor": 0.03099999949336052,
"layer2_parallax.offset": 0.0020000000949949026,
"layer2_parallax.textureMap": "TestData/Textures/cc0/Rock030_2K_Displacement.jpg",
"layer2_roughness.textureMap": "TestData/Textures/cc0/Rock030_2K_Roughness.jpg",
"layer2_uv.center": [
0.0,
0.0
],
"layer2_uv.offsetU": 0.1599999964237213,
"layer2_uv.offsetV": 0.07999999821186066,
"layer2_uv.rotateDegrees": 90.0,
"layer3_baseColor.textureMap": "TestData/Textures/cc0/Rocks002_1K_Color.jpg",
"layer3_normal.textureMap": "TestData/Textures/cc0/Rocks002_1K_Normal.jpg",
"layer3_parallax.factor": 0.027000000700354576,
"layer3_parallax.textureMap": "TestData/Textures/cc0/Rocks002_1K_Displacement.jpg",
"layer3_roughness.textureMap": "TestData/Textures/cc0/Rocks002_1K_Roughness.jpg",
"layer3_uv.center": [
0.0,
0.0
],
"layer3_uv.scale": 3.4999988079071045,
"parallax.algorithm": "Relief",
"parallax.pdo": true
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer2": false
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"propertyValues": {
"blend.enableLayer2": false
}
}
@@ -1,11 +1,8 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"enableLayer3": false
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"propertyValues": {
"blend.enableLayer3": false
}
}
@@ -1,14 +1,9 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"blendSource": "Displacement_With_BlendMaskTexture"
},
"layer1_parallax": {
"offset": -0.004000000189989805
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"propertyValues": {
"blend.blendSource": "Displacement_With_BlendMaskTexture",
"layer1_parallax.offset": -0.004000000189989805
}
}
@@ -1,23 +1,14 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement_With_BlendMaskTexture.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"displacementBlendDistance": 0.0010000000474974514
},
"layer1_parallax": {
"offset": -0.00800000037997961,
"textureMap": ""
},
"layer2_parallax": {
"offset": -0.00800000037997961,
"textureMap": ""
},
"layer3_parallax": {
"offset": -0.00800000037997961,
"textureMap": ""
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement_With_BlendMaskTexture.material",
"propertyValues": {
"blend.displacementBlendDistance": 0.0010000000474974513,
"layer1_parallax.offset": -0.00800000037997961,
"layer1_parallax.textureMap": "",
"layer2_parallax.offset": -0.00800000037997961,
"layer2_parallax.textureMap": "",
"layer3_parallax.offset": -0.00800000037997961,
"layer3_parallax.textureMap": ""
}
}
@@ -1,20 +1,13 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement_With_BlendMaskTexture.material",
"materialTypeVersion": 3,
"properties": {
"layer1_parallax": {
"offset": -0.03200000151991844,
"textureMap": ""
},
"layer2_parallax": {
"offset": -0.00800000037997961,
"textureMap": ""
},
"layer3_parallax": {
"offset": -0.00800000037997961,
"textureMap": ""
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement_With_BlendMaskTexture.material",
"propertyValues": {
"layer1_parallax.offset": -0.03200000151991844,
"layer1_parallax.textureMap": "",
"layer2_parallax.offset": -0.00800000037997961,
"layer2_parallax.textureMap": "",
"layer3_parallax.offset": -0.00800000037997961,
"layer3_parallax.textureMap": ""
}
}
@@ -1,15 +1,10 @@
{
"description": "",
"materialType": "Materials/Types/StandardMultilayerPBR.materialtype",
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"materialTypeVersion": 3,
"properties": {
"blend": {
"blendSource": "Displacement_With_BlendMaskVertexColors",
"displacementBlendDistance": 0.02387000061571598
},
"parallax": {
"enable": false
}
"parentMaterial": "TestData/Materials/StandardMultilayerPbrTestCases/005_UseDisplacement.material",
"propertyValues": {
"blend.blendSource": "Displacement_With_BlendMaskVertexColors",
"blend.displacementBlendDistance": 0.02387000061571598,
"parallax.enable": false
}
}
@@ -1,6 +1,4 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3
}
@@ -1,19 +1,15 @@
{
"description": "",
"materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"factor": 0.75,
"textureBlendMode": "Lerp",
"textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
"propertyValues": {
"baseColor.color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"baseColor.factor": 0.75,
"baseColor.textureBlendMode": "Lerp",
"baseColor.textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
}
@@ -1,19 +1,15 @@
{
"description": "",
"materialType": "Materials\\Types\\StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"factor": 0.75,
"textureBlendMode": "LinearLight",
"textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
"propertyValues": {
"baseColor.color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"baseColor.factor": 0.75,
"baseColor.textureBlendMode": "LinearLight",
"baseColor.textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
}
}
@@ -1,18 +1,14 @@
{
"description": "",
"materialType": "Materials\\Types\\StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"factor": 0.75,
"textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
"propertyValues": {
"baseColor.color": [
0.2541542649269104,
0.5271076560020447,
0.8388037085533142,
1.0
],
"baseColor.factor": 0.75,
"baseColor.textureMap": "TestData/Textures/TextureHaven/4k_castle_brick_02_red/4k_castle_brick_02_red_hp_bc.png"
}
}
}
@@ -1,22 +1,14 @@
{
"description": "",
"materialType": "Materials\\Types\\StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.5,
0.5,
0.5,
1.0
]
},
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.33
}
"propertyValues": {
"baseColor.color": [
0.5,
0.5,
0.5,
1.0
],
"metallic.factor": 1.0,
"roughness.factor": 0.33000001311302185
}
}
}
@@ -1,22 +1,14 @@
{
"description": "",
"materialType": "Materials\\Types\\StandardPBR.materialtype",
"parentMaterial": "",
"materialTypeVersion": 3,
"properties": {
"baseColor": {
"color": [
0.5,
0.5,
0.5,
1.0
]
},
"metallic": {
"factor": 1.0
},
"roughness": {
"factor": 0.1
}
"propertyValues": {
"baseColor.color": [
0.5,
0.5,
0.5,
1.0
],
"metallic.factor": 1.0,
"roughness.factor": 0.10000000149011612
}
}
}

Some files were not shown because too many files have changed in this diff Show More