Browse Source

Combine roughness and metalness into the same texture

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
e2aff9711f
37 changed files with 307 additions and 312 deletions
  1. 38 52
      AnKi/Importer/GltfImporterMaterial.cpp
  2. 26 30
      AnKi/Shaders/GBufferGeneric.ankiprog
  3. 6 7
      Samples/SimpleScene/Assets/backWall_361f28d87a6738d3.ankimtl
  4. 6 7
      Samples/SimpleScene/Assets/ceiling_3fd94cde277a48e1.ankimtl
  5. 6 7
      Samples/SimpleScene/Assets/floor_71cbd2644e53ab8c.ankimtl
  6. 6 7
      Samples/SimpleScene/Assets/leftWall_fe97b196ed148fca.ankimtl
  7. 6 7
      Samples/SimpleScene/Assets/light_1544a10dffc35038.ankimtl
  8. 6 7
      Samples/SimpleScene/Assets/rightWall_d627c19b8205864.ankimtl
  9. 6 7
      Samples/SimpleScene/Assets/shortBox_122467965d493dab.ankimtl
  10. 6 7
      Samples/SimpleScene/Assets/tallBox_15316a0c94bdf7f6.ankimtl
  11. 8 7
      Samples/Sponza/Assets/arch.001_efebbb2a6f84fff0.ankimtl
  12. 8 7
      Samples/Sponza/Assets/arch_e0c8c7e29c806284.ankimtl
  13. 8 7
      Samples/Sponza/Assets/bricks_8bd6f24aa0ad3654.ankimtl
  14. 8 7
      Samples/Sponza/Assets/ceiling_3fd94cde277a48e1.ankimtl
  15. 7 7
      Samples/Sponza/Assets/chain_33ef478b87fe7c15.ankimtl
  16. 8 7
      Samples/Sponza/Assets/column_a_1e1bacae3460b88.ankimtl
  17. 8 7
      Samples/Sponza/Assets/column_b_c9391d56bff59fc3.ankimtl
  18. 8 7
      Samples/Sponza/Assets/column_c_43f866fc7b9f0169.ankimtl
  19. 8 7
      Samples/Sponza/Assets/details_4242afc5fc479920.ankimtl
  20. 8 7
      Samples/Sponza/Assets/fabric_a_945c29fc221550fb.ankimtl
  21. 8 7
      Samples/Sponza/Assets/fabric_c_c8bf70dee411d1bd.ankimtl
  22. 8 7
      Samples/Sponza/Assets/fabric_d_8ff4aebb25bf20b0.ankimtl
  23. 8 7
      Samples/Sponza/Assets/fabric_e_d1c5a44841c48230.ankimtl
  24. 8 7
      Samples/Sponza/Assets/fabric_f_d54bbaca38ed4391.ankimtl
  25. 8 7
      Samples/Sponza/Assets/flagpole_6c7e0eb8dd33b39e.ankimtl
  26. 8 7
      Samples/Sponza/Assets/floor_71cbd2644e53ab8c.ankimtl
  27. 8 7
      Samples/Sponza/Assets/leaf_3a245efd17475037.ankimtl
  28. 8 7
      Samples/Sponza/Assets/lion_c45d3035db3bc17b.ankimtl
  29. 8 7
      Samples/Sponza/Assets/lion_stand_ab5e3642131ad971.ankimtl
  30. 8 7
      Samples/Sponza/Assets/roof_4359bd4e3b26845.ankimtl
  31. 8 7
      Samples/Sponza/Assets/vase_45c3983f6cc9c489.ankimtl
  32. 8 7
      Samples/Sponza/Assets/vase_fl_580cea687de3d758.ankimtl
  33. 8 7
      Samples/Sponza/Assets/vase_hanging_c2d2b40b27cacd7d.ankimtl
  34. 8 7
      Samples/Sponza/Assets/vase_round_71af81a1ac0a7c3e.ankimtl
  35. 1 2
      Tests/Gr/GrCommon.h
  36. 2 3
      Tests/ShaderCompiler/ShaderProgramCompiler.cpp
  37. 1 1
      Tests/ShaderCompiler/ShaderProgramParser.cpp

+ 38 - 52
AnKi/Importer/GltfImporterMaterial.cpp

@@ -18,8 +18,7 @@ inline constexpr const Char* kMaterialTemplate = R"(<!-- This file is auto gener
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="%diffTexMutator%"/>
 			<mutator name="DIFFUSE_TEX" value="%diffTexMutator%"/>
 			<mutator name="SPECULAR_TEX" value="%specTexMutator%"/>
 			<mutator name="SPECULAR_TEX" value="%specTexMutator%"/>
-			<mutator name="ROUGHNESS_TEX" value="%roughnessTexMutator%"/>
-			<mutator name="METAL_TEX" value="%metalTexMutator%"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="%roughnessMetalnessTexMutator%"/>
 			<mutator name="NORMAL_TEX" value="%normalTexMutator%"/>
 			<mutator name="NORMAL_TEX" value="%normalTexMutator%"/>
 			<mutator name="PARALLAX" value="%parallaxMutator%"/>
 			<mutator name="PARALLAX" value="%parallaxMutator%"/>
 			<mutator name="EMISSIVE_TEX" value="%emissiveTexMutator%"/>
 			<mutator name="EMISSIVE_TEX" value="%emissiveTexMutator%"/>
@@ -31,8 +30,7 @@ inline constexpr const Char* kMaterialTemplate = R"(<!-- This file is auto gener
 		%parallaxInput%
 		%parallaxInput%
 		%diff%
 		%diff%
 		%spec%
 		%spec%
-		%roughness%
-		%metallic%
+		%roughnessMetalness%
 		%normal%
 		%normal%
 		%emission%
 		%emission%
 		%subsurface%
 		%subsurface%
@@ -181,7 +179,11 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 		ImporterString uri;
 		ImporterString uri;
 		uri.sprintf("%s%s", m_texrpath.cstr(), fname.cstr());
 		uri.sprintf("%s%s", m_texrpath.cstr(), fname.cstr());
 
 
-		xml.replaceAll("%diff%", ImporterString().sprintf("<input name=\"m_diffTex\" value=\"%s\"/>", uri.cstr()));
+		const F32* diffCol = &mtl.pbr_metallic_roughness.base_color_factor[0];
+
+		xml.replaceAll("%diff%", ImporterString().sprintf("<input name=\"m_diffuseTex\" value=\"%s\"/>\n"
+														  "\t\t<input name=\"m_diffuseScale\" value=\"%f %f %f %f\"/>",
+														  uri.cstr(), diffCol[0], diffCol[1], diffCol[2], diffCol[3]));
 		xml.replaceAll("%diffTexMutator%", "1");
 		xml.replaceAll("%diffTexMutator%", "1");
 
 
 		Vec4 constantColor;
 		Vec4 constantColor;
@@ -203,14 +205,13 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 	{
 	{
 		const F32* diffCol = &mtl.pbr_metallic_roughness.base_color_factor[0];
 		const F32* diffCol = &mtl.pbr_metallic_roughness.base_color_factor[0];
 
 
-		xml.replaceAll("%diff%", ImporterString().sprintf("<input name=\"m_diffColor\" value=\"%f %f %f\"/>", diffCol[0], diffCol[1], diffCol[2]));
+		xml.replaceAll("%diff%", ImporterString().sprintf("<input name=\"m_diffuseScale\" value=\"%f %f %f %f\"/>", diffCol[0], diffCol[1],
+														  diffCol[2], diffCol[3]));
 
 
 		xml.replaceAll("%diffTexMutator%", "0");
 		xml.replaceAll("%diffTexMutator%", "0");
 		xml.replaceAll("%alphaTestMutator%", "0");
 		xml.replaceAll("%alphaTestMutator%", "0");
 	}
 	}
 
 
-	xml.replaceAll("%rtAlphaTestMutator%", (alphaTested) ? "1" : "0");
-
 	// Specular color (freshnel)
 	// Specular color (freshnel)
 	{
 	{
 		Vec3 specular;
 		Vec3 specular;
@@ -238,7 +239,7 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 		}
 		}
 
 
 		xml.replaceAll("%spec%",
 		xml.replaceAll("%spec%",
-					   ImporterString().sprintf("<input name=\"m_specColor\" value=\"%f %f %f\"/>", specular.x(), specular.y(), specular.z()));
+					   ImporterString().sprintf("<input name=\"m_specularScale\" value=\"%f %f %f\"/>", specular.x(), specular.y(), specular.z()));
 
 
 		xml.replaceAll("%specTexMutator%", "0");
 		xml.replaceAll("%specTexMutator%", "0");
 	}
 	}
@@ -255,58 +256,43 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 		constantMetaliness = constantColor.z();
 		constantMetaliness = constantColor.z();
 	}
 	}
 
 
-	// Roughness
-	Bool bRoughnessMetalicTexture = false;
-	if(mtl.pbr_metallic_roughness.metallic_roughness_texture.texture && constantRoughness < 0.0f)
+	// Roughness/metallic
+	if(mtl.pbr_metallic_roughness.metallic_roughness_texture.texture && (constantRoughness < 0.0f || constantMetaliness < 0.0f))
 	{
 	{
 		ImporterString uri;
 		ImporterString uri;
 		uri.sprintf("%s%s", m_texrpath.cstr(), getTextureUri(mtl.pbr_metallic_roughness.metallic_roughness_texture).cstr());
 		uri.sprintf("%s%s", m_texrpath.cstr(), getTextureUri(mtl.pbr_metallic_roughness.metallic_roughness_texture).cstr());
 
 
-		xml.replaceAll("%roughness%", ImporterString().sprintf("<input name=\"m_roughnessTex\" value=\"%s\"/>", uri.cstr()));
+		xml.replaceAll("%roughnessMetalness%",
+					   ImporterString().sprintf("<input name=\"m_roughnessMetalnessTex\" value=\"%s\"/>\n"
+												"\t\t<input name=\"m_roughnessScale\" value=\"%f\"/>\n"
+												"\t\t<input name=\"m_metalnessScale\" value=\"%f\"/>",
+												uri.cstr(), mtl.pbr_metallic_roughness.roughness_factor, mtl.pbr_metallic_roughness.metallic_factor));
 
 
-		xml.replaceAll("%roughnessTexMutator%", "1");
+		xml.replaceAll("%roughnessMetalnessTexMutator%", "1");
 
 
-		bRoughnessMetalicTexture = true;
+		if(m_importTextures)
+		{
+			const ImporterString in = getTextureUri(mtl.pbr_metallic_roughness.metallic_roughness_texture);
+			ImporterString out = m_outDir;
+			out += in;
+			fixImageUri(out);
+			ANKI_CHECK(importImage(in, out, false));
+		}
 	}
 	}
 	else
 	else
 	{
 	{
+		// No texture or both roughness and metalness are constant
+
 		const F32 roughness = (constantRoughness >= 0.0f) ? constantRoughness * mtl.pbr_metallic_roughness.roughness_factor
 		const F32 roughness = (constantRoughness >= 0.0f) ? constantRoughness * mtl.pbr_metallic_roughness.roughness_factor
 														  : mtl.pbr_metallic_roughness.roughness_factor;
 														  : mtl.pbr_metallic_roughness.roughness_factor;
-
-		xml.replaceAll("%roughness%", ImporterString().sprintf("<input name=\"m_roughness\" value=\"%f\"/>", roughness));
-
-		xml.replaceAll("%roughnessTexMutator%", "0");
-	}
-
-	// Metallic
-	if(mtl.pbr_metallic_roughness.metallic_roughness_texture.texture && constantMetaliness < 0.0f)
-	{
-		ImporterString uri;
-		uri.sprintf("%s%s", m_texrpath.cstr(), getTextureUri(mtl.pbr_metallic_roughness.metallic_roughness_texture).cstr());
-
-		xml.replaceAll("%metallic%", ImporterString().sprintf("<input name=\"m_metallicTex\" value=\"%s\"/>", uri.cstr()));
-
-		xml.replaceAll("%metalTexMutator%", "1");
-
-		bRoughnessMetalicTexture = true;
-	}
-	else
-	{
-		const F32 metalines = (constantMetaliness >= 0.0f) ? constantMetaliness * mtl.pbr_metallic_roughness.metallic_factor
+		const F32 metalness = (constantMetaliness >= 0.0f) ? constantMetaliness * mtl.pbr_metallic_roughness.metallic_factor
 														   : mtl.pbr_metallic_roughness.metallic_factor;
 														   : mtl.pbr_metallic_roughness.metallic_factor;
 
 
-		xml.replaceAll("%metallic%", ImporterString().sprintf("<input name=\"m_metallic\" value=\"%f\"/>", metalines));
+		xml.replaceAll("%roughnessMetalness%", ImporterString().sprintf("<input name=\"m_roughnessScale\" value=\"%f\"/>\n"
+																		"\t\t<input name=\"m_metalnessScale\" value=\"%f\"/>",
+																		roughness, metalness));
 
 
-		xml.replaceAll("%metalTexMutator%", "0");
-	}
-
-	if(bRoughnessMetalicTexture && m_importTextures)
-	{
-		const ImporterString in = getTextureUri(mtl.pbr_metallic_roughness.metallic_roughness_texture);
-		ImporterString out = m_outDir;
-		out += in;
-		fixImageUri(out);
-		ANKI_CHECK(importImage(in, out, false));
+		xml.replaceAll("%roughnessMetalnessTexMutator%", "0");
 	}
 	}
 
 
 	// Normal texture
 	// Normal texture
@@ -350,7 +336,9 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 		ImporterString uri;
 		ImporterString uri;
 		uri.sprintf("%s%s", m_texrpath.cstr(), getTextureUri(mtl.emissive_texture).cstr());
 		uri.sprintf("%s%s", m_texrpath.cstr(), getTextureUri(mtl.emissive_texture).cstr());
 
 
-		xml.replaceAll("%emission%", ImporterString().sprintf("<input name=\"m_emissiveTex\" value=\"%s\"/>", uri.cstr()));
+		xml.replaceAll("%emission%", ImporterString().sprintf("<input name=\"m_emissiveTex\" value=\"%s\"/>\n"
+															  "\t\t<input name=\"m_emissionScale\" value=\"%f %f %f\"/>",
+															  uri.cstr(), mtl.emissive_factor[0], mtl.emissive_factor[1], mtl.emissive_factor[2]));
 
 
 		xml.replaceAll("%emissiveTexMutator%", "1");
 		xml.replaceAll("%emissiveTexMutator%", "1");
 
 
@@ -365,10 +353,8 @@ Error GltfImporter::writeMaterialInternal(const cgltf_material& mtl, Bool writeR
 	}
 	}
 	else
 	else
 	{
 	{
-		const F32* emissionCol = &mtl.emissive_factor[0];
-
-		xml.replaceAll("%emission%",
-					   ImporterString().sprintf("<input name=\"m_emission\" value=\"%f %f %f\"/>", emissionCol[0], emissionCol[1], emissionCol[2]));
+		xml.replaceAll("%emission%", ImporterString().sprintf("<input name=\"m_emissionScale\" value=\"%f %f %f\"/>", mtl.emissive_factor[0],
+															  mtl.emissive_factor[1], mtl.emissive_factor[2]));
 
 
 		xml.replaceAll("%emissiveTexMutator%", "0");
 		xml.replaceAll("%emissiveTexMutator%", "0");
 	}
 	}

+ 26 - 30
AnKi/Shaders/GBufferGeneric.ankiprog

@@ -7,8 +7,7 @@
 #pragma anki mutator ANKI_BONES 0 1
 #pragma anki mutator ANKI_BONES 0 1
 #pragma anki mutator DIFFUSE_TEX 0 1
 #pragma anki mutator DIFFUSE_TEX 0 1
 #pragma anki mutator SPECULAR_TEX 0 1
 #pragma anki mutator SPECULAR_TEX 0 1
-#pragma anki mutator ROUGHNESS_TEX 0 1
-#pragma anki mutator METAL_TEX 0 1
+#pragma anki mutator ROUGHNESS_METALNESS_TEX 0 1
 #pragma anki mutator NORMAL_TEX 0 1
 #pragma anki mutator NORMAL_TEX 0 1
 #pragma anki mutator PARALLAX 0 1
 #pragma anki mutator PARALLAX 0 1
 #pragma anki mutator EMISSIVE_TEX 0 1
 #pragma anki mutator EMISSIVE_TEX 0 1
@@ -64,19 +63,18 @@
 
 
 #pragma anki struct AnKiLocalConstants
 #pragma anki struct AnKiLocalConstants
 
 
-#pragma anki member U32 m_diffTex
+#pragma anki member U32 m_diffuseTex
 #pragma anki member U32 m_normalTex
 #pragma anki member U32 m_normalTex
-#pragma anki member U32 m_roughnessTex
-#pragma anki member U32 m_metallicTex
-#pragma anki member U32 m_specTex
+#pragma anki member U32 m_roughnessMetalnessTex
+#pragma anki member U32 m_specularTex
 #pragma anki member U32 m_emissiveTex
 #pragma anki member U32 m_emissiveTex
 #pragma anki member U32 m_heightTex
 #pragma anki member U32 m_heightTex
 
 
-#pragma anki member RVec3 m_diffColor
-#pragma anki member RF32 m_roughness
-#pragma anki member RVec3 m_specColor
-#pragma anki member RF32 m_metallic
-#pragma anki member RVec3 m_emission
+#pragma anki member RVec4 m_diffuseScale
+#pragma anki member RF32 m_roughnessScale
+#pragma anki member RF32 m_metalnessScale
+#pragma anki member RVec3 m_specularScale
+#pragma anki member RVec3 m_emissionScale
 #pragma anki member RF32 m_heightmapScale
 #pragma anki member RF32 m_heightmapScale
 #pragma anki member RF32 m_subsurface
 #pragma anki member RF32 m_subsurface
 
 
@@ -479,8 +477,8 @@ void main(VertOut input)
 	ANKI_MAYBE_UNUSED(input);
 	ANKI_MAYBE_UNUSED(input);
 #		if REALLY_ALPHA_TEST
 #		if REALLY_ALPHA_TEST
 	const AnKiLocalConstants localConstants = loadAnKiLocalConstants(g_gpuScene, input.m_constantsOffset);
 	const AnKiLocalConstants localConstants = loadAnKiLocalConstants(g_gpuScene, input.m_constantsOffset);
-	const RVec4 diffColorA = g_bindlessTextures2dF32[localConstants.m_diffTex].Sample(g_globalSampler, input.m_uv);
-	if(diffColorA.a == 0.0f)
+	const RVec4 diffColorA = g_bindlessTextures2dF32[localConstants.m_diffuseTex].Sample(g_globalSampler, input.m_uv);
+	if(diffColorA.a * localConstants.m_diffuseScale.a == 0.0f)
 	{
 	{
 		discard;
 		discard;
 	}
 	}
@@ -503,35 +501,32 @@ FragOut main(VertOut input)
 
 
 #		if DIFFUSE_TEX
 #		if DIFFUSE_TEX
 #			if REALLY_ALPHA_TEST
 #			if REALLY_ALPHA_TEST
-	const RVec4 diffColorA = g_bindlessTextures2dF32[localConstants.m_diffTex].Sample(g_globalSampler, uv);
+	const RVec4 diffColorA = g_bindlessTextures2dF32[localConstants.m_diffuseTex].Sample(g_globalSampler, uv) * localConstants.m_diffuseScale;
 	if(diffColorA.a == 0.0f)
 	if(diffColorA.a == 0.0f)
 	{
 	{
 		discard;
 		discard;
 	}
 	}
 	const RVec3 diffColor = diffColorA.rgb;
 	const RVec3 diffColor = diffColorA.rgb;
 #			else
 #			else
-	const RVec3 diffColor = g_bindlessTextures2dF32[localConstants.m_diffTex].Sample(g_globalSampler, uv).rgb;
+	const RVec3 diffColor = g_bindlessTextures2dF32[localConstants.m_diffuseTex].Sample(g_globalSampler, uv).rgb;
 #			endif
 #			endif
 #		else
 #		else
-	const RVec3 diffColor = localConstants.m_diffColor;
+	const RVec3 diffColor = localConstants.m_diffuseScale;
 #		endif
 #		endif
 
 
 #		if SPECULAR_TEX
 #		if SPECULAR_TEX
-	const RVec3 specColor = g_bindlessTextures2dF32[localConstants.m_specTex].Sample(g_globalSampler, uv).rgb;
-#		else
-	const RVec3 specColor = localConstants.m_specColor;
-#		endif
-
-#		if ROUGHNESS_TEX
-	const RF32 roughness = g_bindlessTextures2dF32[localConstants.m_roughnessTex].Sample(g_globalSampler, uv).g;
+	const RVec3 specColor = g_bindlessTextures2dF32[localConstants.m_specularTex].Sample(g_globalSampler, uv).rgb * localConstants.m_specularScale;
 #		else
 #		else
-	const RF32 roughness = localConstants.m_roughness;
+	const RVec3 specColor = localConstants.m_specularScale;
 #		endif
 #		endif
 
 
-#		if METAL_TEX
-	const RF32 metallic = g_bindlessTextures2dF32[localConstants.m_metallicTex].Sample(g_globalSampler, uv).b;
+#		if ROUGHNESS_METALNESS_TEX
+	const RVec3 comp = g_bindlessTextures2dF32[localConstants.m_roughnessMetalnessTex].Sample(g_globalSampler, uv).rgb;
+	const RF32 roughness = comp.g * localConstants.m_roughnessScale;
+	const RF32 metallic = comp.b * localConstants.m_metalnessScale;
 #		else
 #		else
-	const RF32 metallic = localConstants.m_metallic;
+	const RF32 roughness = localConstants.m_roughnessScale;
+	const RF32 metallic = localConstants.m_metalnessScale;
 #		endif
 #		endif
 
 
 #		if NORMAL_TEX
 #		if NORMAL_TEX
@@ -543,9 +538,9 @@ FragOut main(VertOut input)
 #		endif
 #		endif
 
 
 #		if EMISSIVE_TEX
 #		if EMISSIVE_TEX
-	const RVec3 emission = g_bindlessTextures2dF32[localConstants.m_emissiveTex].Sample(g_globalSampler, uv).rgb;
+	const RVec3 emission = g_bindlessTextures2dF32[localConstants.m_emissiveTex].Sample(g_globalSampler, uv).rgb * localConstants.m_emissionScale;
 #		else
 #		else
-	const RVec3 emission = localConstants.m_emission;
+	const RVec3 emission = localConstants.m_emissionScale;
 #		endif
 #		endif
 
 
 #		if ANKI_VELOCITY || ANKI_BONES
 #		if ANKI_VELOCITY || ANKI_BONES
@@ -632,7 +627,8 @@ FragOut main(VertOut input)
 	const Vec2 uv = vert0.m_uv * bary.x + vert1.m_uv * bary.y + vert2.m_uv * bary.z;
 	const Vec2 uv = vert0.m_uv * bary.x + vert1.m_uv * bary.y + vert2.m_uv * bary.z;
 
 
 	const AnKiLocalConstants localConstants = loadAnKiLocalConstants(g_gpuScene, g_gpuSceneRenderable.m_constantsOffset);
 	const AnKiLocalConstants localConstants = loadAnKiLocalConstants(g_gpuScene, g_gpuSceneRenderable.m_constantsOffset);
-	const RVec4 diffColorA = g_bindlessTextures2dF32[localConstants.m_diffTex].SampleLevel(g_globalSampler, uv, 0.0);
+	const RVec4 diffColorA =
+		g_bindlessTextures2dF32[localConstants.m_diffuseTex].SampleLevel(g_globalSampler, uv, 0.0) * localConstants.m_diffuseScale;
 
 
 	if(diffColorA.a < 1.0)
 	if(diffColorA.a < 1.0)
 	{
 	{

+ 6 - 7
Samples/SimpleScene/Assets/backWall_361f28d87a6738d3.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.725000 0.710000 0.680000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.725000 0.710000 0.680000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/ceiling_3fd94cde277a48e1.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.725000 0.710000 0.680000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.725000 0.710000 0.680000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/floor_71cbd2644e53ab8c.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.725000 0.710000 0.680000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.725000 0.710000 0.680000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/leftWall_fe97b196ed148fca.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.630000 0.065000 0.050000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.630000 0.065000 0.050000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/light_1544a10dffc35038.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.780000 0.780000 0.780000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.780000 0.780000 0.780000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="1.000000 1.000000 1.000000"/>
+		<input name="m_emissionScale" value="1.000000 1.000000 1.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/rightWall_d627c19b8205864.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.140000 0.450000 0.091000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.140000 0.450000 0.091000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/shortBox_122467965d493dab.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.725000 0.710000 0.680000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.725000 0.710000 0.680000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 6 - 7
Samples/SimpleScene/Assets/tallBox_15316a0c94bdf7f6.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="DIFFUSE_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,12 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffColor" value="0.725000 0.710000 0.680000"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="1.000000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseScale" value="0.725000 0.710000 0.680000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/arch.001_efebbb2a6f84fff0.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_arch_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/sponza_arch_spec.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_arch_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/sponza_arch_spec.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_arch_ddn.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_arch_ddn.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/arch_e0c8c7e29c806284.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_arch_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/sponza_arch_spec_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_arch_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/sponza_arch_spec_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_arch_ddn_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_arch_ddn_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/bricks_8bd6f24aa0ad3654.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_bricks_a_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/sponza_arch_spec_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_bricks_a_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/sponza_arch_spec_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_bricks_a_ddn_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_bricks_a_ddn_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/ceiling_3fd94cde277a48e1.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_ceiling_a_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Ceiling_roughness_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_ceiling_a_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Ceiling_roughness_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 7 - 7
Samples/Sponza/Assets/chain_33ef478b87fe7c15.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="0"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="NORMAL_TEX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,13 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/chain_texture_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughness" value="0.500000"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/chain_texture_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessScale" value="0.500000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		
 		
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/column_a_1e1bacae3460b88.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_column_a_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/sponza_column_a_spec_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_column_a_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/sponza_column_a_spec_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_column_a_ddn_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_column_a_ddn_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/column_b_c9391d56bff59fc3.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_column_b_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Column_b_roughness_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_column_b_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Column_b_roughness_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_column_b_ddn_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_column_b_ddn_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/column_c_43f866fc7b9f0169.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_column_c_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Column_c_roughness_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_column_c_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Column_c_roughness_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_column_c_ddn_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_column_c_ddn_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/details_4242afc5fc479920.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="1"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_details_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Details_metallic-Sponza_Details_roughness.ankitex"/>
-		<input name="m_metallicTex" value="Assets/Sponza_Details_metallic-Sponza_Details_roughness.ankitex"/>
+		<input name="m_diffuseTex" value="Assets/sponza_details_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Details_metallic-Sponza_Details_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="1.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Details_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Details_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/fabric_a_945c29fc221550fb.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="1"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_fabric_blue_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
-		<input name="m_metallicTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_diffuseTex" value="Assets/sponza_fabric_blue_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="1.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/fabric_c_c8bf70dee411d1bd.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="1"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_fabric_green_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
-		<input name="m_metallicTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_diffuseTex" value="Assets/sponza_fabric_green_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="1.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/fabric_d_8ff4aebb25bf20b0.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="1"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_fabric_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
-		<input name="m_metallicTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_diffuseTex" value="Assets/sponza_fabric_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="1.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/fabric_e_d1c5a44841c48230.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="1"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_fabric_green_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
-		<input name="m_metallicTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_diffuseTex" value="Assets/sponza_fabric_green_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="1.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/fabric_f_d54bbaca38ed4391.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_curtain_green_diff_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Curtain_roughness_tga_001.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_curtain_green_diff_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Curtain_roughness_tga_001.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal_tga_001.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Curtain_Red_normal_tga_001.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/flagpole_6c7e0eb8dd33b39e.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_flagpole_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_FlagPole_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_flagpole_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_FlagPole_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_FlagPole_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_FlagPole_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/floor_71cbd2644e53ab8c.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_floor_a_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Floor_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_floor_a_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Floor_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Floor_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Floor_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/leaf_3a245efd17475037.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_thorn_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Thorn_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_thorn_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Thorn_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/sponza_thorn_ddn.ankitex"/>
 		<input name="m_normalTex" value="Assets/sponza_thorn_ddn.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		<input name="m_subsurface" value="0.100000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/lion_c45d3035db3bc17b.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/lion.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Lion_Roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/lion.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Lion_Roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/lion_ddn.ankitex"/>
 		<input name="m_normalTex" value="Assets/lion_ddn.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/lion_stand_ab5e3642131ad971.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/background.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Background_Roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/background.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Background_Roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/background_ddn.ankitex"/>
 		<input name="m_normalTex" value="Assets/background_ddn.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/roof_4359bd4e3b26845.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/sponza_roof_diff.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Sponza_Roof_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/sponza_roof_diff.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Sponza_Roof_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/Sponza_Roof_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/Sponza_Roof_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/vase_45c3983f6cc9c489.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/vase_dif.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/Vase_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/vase_dif.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/Vase_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/vase_ddn.ankitex"/>
 		<input name="m_normalTex" value="Assets/vase_ddn.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/vase_fl_580cea687de3d758.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/vase_plant_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/VaseRound_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/vase_plant_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/VaseRound_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/VasePlant_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/VasePlant_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		<input name="m_subsurface" value="0.250000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/vase_hanging_c2d2b40b27cacd7d.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/vase_hanging_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/VaseHanging_roughness_tga.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/vase_hanging_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/VaseHanging_roughness_tga.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/VaseHanging_normal_tga.ankitex"/>
 		<input name="m_normalTex" value="Assets/VaseHanging_normal_tga.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 8 - 7
Samples/Sponza/Assets/vase_round_71af81a1ac0a7c3e.ankimtl

@@ -5,8 +5,7 @@
 		<mutation>
 		<mutation>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="DIFFUSE_TEX" value="1"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
 			<mutator name="SPECULAR_TEX" value="0"/>
-			<mutator name="ROUGHNESS_TEX" value="1"/>
-			<mutator name="METAL_TEX" value="0"/>
+			<mutator name="ROUGHNESS_METALNESS_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="NORMAL_TEX" value="1"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="PARALLAX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
 			<mutator name="EMISSIVE_TEX" value="0"/>
@@ -16,12 +15,14 @@
 
 
 	<inputs>
 	<inputs>
 		
 		
-		<input name="m_diffTex" value="Assets/vase_round_tga.ankitex"/>
-		<input name="m_specColor" value="0.040000 0.040000 0.040000"/>
-		<input name="m_roughnessTex" value="Assets/VaseRound_roughness.ankitex"/>
-		<input name="m_metallic" value="0.000000"/>
+		<input name="m_diffuseTex" value="Assets/vase_round_tga.ankitex"/>
+		<input name="m_diffuseScale" value="1.000000 1.000000 1.000000 1.000000"/>
+		<input name="m_specularScale" value="0.040000 0.040000 0.040000"/>
+		<input name="m_roughnessMetalnessTex" value="Assets/VaseRound_roughness.ankitex"/>
+		<input name="m_roughnessScale" value="1.000000"/>
+		<input name="m_metalnessScale" value="0.000000"/>
 		<input name="m_normalTex" value="Assets/VaseRound_normal.ankitex"/>
 		<input name="m_normalTex" value="Assets/VaseRound_normal.ankitex"/>
-		<input name="m_emission" value="0.000000 0.000000 0.000000"/>
+		<input name="m_emissionScale" value="0.000000 0.000000 0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		<input name="m_subsurface" value="0.000000"/>
 		
 		
 	</inputs>
 	</inputs>

+ 1 - 2
Tests/Gr/GrCommon.h

@@ -14,8 +14,7 @@ namespace anki {
 inline ShaderPtr createShader(CString src, ShaderType type, GrManager& gr, ConstWeakArray<ShaderSpecializationConstValue> specVals = {})
 inline ShaderPtr createShader(CString src, ShaderType type, GrManager& gr, ConstWeakArray<ShaderSpecializationConstValue> specVals = {})
 {
 {
 	ShaderCompilerString header;
 	ShaderCompilerString header;
-	ShaderCompilerOptions compilerOptions;
-	ShaderProgramParser::generateAnkiShaderHeader(type, compilerOptions, header);
+	ShaderProgramParser::generateAnkiShaderHeader(type, header);
 	header += src;
 	header += src;
 	ShaderCompilerDynamicArray<U8> spirv;
 	ShaderCompilerDynamicArray<U8> spirv;
 	ShaderCompilerString errorLog;
 	ShaderCompilerString errorLog;

+ 2 - 3
Tests/ShaderCompiler/ShaderProgramCompiler.cpp

@@ -137,8 +137,7 @@ void main()
 	taskManager.m_pool = &pool;
 	taskManager.m_pool = &pool;
 
 
 	ShaderProgramBinary* binary;
 	ShaderProgramBinary* binary;
-	ShaderCompilerOptions compilerOptions;
-	ANKI_TEST_EXPECT_NO_ERR(compileShaderProgram("test.glslp", fsystem, nullptr, &taskManager, compilerOptions, binary));
+	ANKI_TEST_EXPECT_NO_ERR(compileShaderProgram("test.glslp", fsystem, nullptr, &taskManager, {}, binary));
 
 
 #if 1
 #if 1
 	ShaderCompilerString dis;
 	ShaderCompilerString dis;
@@ -333,7 +332,7 @@ void main()
 	taskManager.m_pool = &pool;
 	taskManager.m_pool = &pool;
 
 
 	ShaderProgramBinary* binary;
 	ShaderProgramBinary* binary;
-	ANKI_TEST_EXPECT_NO_ERR(compileShaderProgram("test.glslp", fsystem, nullptr, &taskManager, ShaderCompilerOptions(), binary));
+	ANKI_TEST_EXPECT_NO_ERR(compileShaderProgram("test.glslp", fsystem, nullptr, &taskManager, {}, binary));
 
 
 #if 1
 #if 1
 	ShaderCompilerString dis;
 	ShaderCompilerString dis;

+ 1 - 1
Tests/ShaderCompiler/ShaderProgramParser.cpp

@@ -41,7 +41,7 @@ ANKI_TEST(ShaderCompiler, ShaderCompilerParser)
 		}
 		}
 	} interface;
 	} interface;
 
 
-	ShaderProgramParser parser("filename0", &interface, ShaderCompilerOptions());
+	ShaderProgramParser parser("filename0", &interface, {});
 	ANKI_TEST_EXPECT_NO_ERR(parser.parse());
 	ANKI_TEST_EXPECT_NO_ERR(parser.parse());
 
 
 #if 0
 #if 0