Browse Source

Trade: clean up PbrMetallicRoughnessMaterialData packing tests.

Reorder them, rename and add missing layer attributes.
pull/651/merge
Vladimír Vondruš 1 year ago
parent
commit
ce91b6d63e
  1. 201
      src/Magnum/Trade/Test/PbrMetallicRoughnessMaterialDataTest.cpp

201
src/Magnum/Trade/Test/PbrMetallicRoughnessMaterialDataTest.cpp

@ -40,10 +40,10 @@ struct PbrMetallicRoughnessMaterialDataTest: TestSuite::Tester {
void defaults(); void defaults();
void textured(); void textured();
void texturedDefaults(); void texturedDefaults();
void texturedImplicitPackedMetallicRoughness(); void texturedExplicitPackedNoneRoughnessMetallic();
void texturedExplicitPackedMetallicRoughness(); void texturedImplicitPackedOcclusionRoughnessMetallic();
void texturedExplicitPackedRoughnessMetallicOcclusion();
void texturedExplicitPackedOcclusionRoughnessMetallic(); void texturedExplicitPackedOcclusionRoughnessMetallic();
void texturedExplicitPackedRoughnessMetallicOcclusion();
void texturedExplicitPackedNormalRoughnessMetallic(); void texturedExplicitPackedNormalRoughnessMetallic();
void texturedSingleMatrixCoordinatesLayer(); void texturedSingleMatrixCoordinatesLayer();
void invalidTextures(); void invalidTextures();
@ -68,10 +68,10 @@ PbrMetallicRoughnessMaterialDataTest::PbrMetallicRoughnessMaterialDataTest() {
&PbrMetallicRoughnessMaterialDataTest::defaults, &PbrMetallicRoughnessMaterialDataTest::defaults,
&PbrMetallicRoughnessMaterialDataTest::textured, &PbrMetallicRoughnessMaterialDataTest::textured,
&PbrMetallicRoughnessMaterialDataTest::texturedDefaults, &PbrMetallicRoughnessMaterialDataTest::texturedDefaults,
&PbrMetallicRoughnessMaterialDataTest::texturedImplicitPackedMetallicRoughness, &PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedNoneRoughnessMetallic,
&PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedMetallicRoughness, &PbrMetallicRoughnessMaterialDataTest::texturedImplicitPackedOcclusionRoughnessMetallic,
&PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedRoughnessMetallicOcclusion,
&PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedOcclusionRoughnessMetallic, &PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedOcclusionRoughnessMetallic,
&PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedRoughnessMetallicOcclusion,
&PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedNormalRoughnessMetallic, &PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedNormalRoughnessMetallic,
&PbrMetallicRoughnessMaterialDataTest::texturedSingleMatrixCoordinatesLayer, &PbrMetallicRoughnessMaterialDataTest::texturedSingleMatrixCoordinatesLayer,
&PbrMetallicRoughnessMaterialDataTest::invalidTextures, &PbrMetallicRoughnessMaterialDataTest::invalidTextures,
@ -307,7 +307,7 @@ void PbrMetallicRoughnessMaterialDataTest::texturedSingleMatrixCoordinatesLayer(
CORRADE_COMPARE(data.emissiveTextureLayer(), 8); CORRADE_COMPARE(data.emissiveTextureLayer(), 8);
} }
void PbrMetallicRoughnessMaterialDataTest::texturedImplicitPackedMetallicRoughness() { void PbrMetallicRoughnessMaterialDataTest::texturedImplicitPackedNoneRoughnessMetallic() {
/* Just the texture ID, the rest is implicit */ /* Just the texture ID, the rest is implicit */
{ {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
@ -385,7 +385,7 @@ void PbrMetallicRoughnessMaterialDataTest::texturedImplicitPackedMetallicRoughne
} }
} }
void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedMetallicRoughness() { void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedNoneRoughnessMetallic() {
/* Just the texture IDs and swizzles, the rest is implicit */ /* Just the texture IDs and swizzles, the rest is implicit */
{ {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
@ -475,216 +475,221 @@ void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedMetallicRoughne
} }
} }
void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedRoughnessMetallicOcclusion() { void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedOcclusionRoughnessMetallic() {
/* Just the texture IDs and swizzles, the rest is implicit */ /* Just the texture IDs and swizzles, the rest is implicit */
{ {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(data.hasOcclusionRoughnessMetallicTexture());
/* This isn't a superset */ /* This is a superset */
CORRADE_VERIFY(!data.hasNoneRoughnessMetallicTexture()); CORRADE_VERIFY(data.hasNoneRoughnessMetallicTexture());
/* Explicit parameters for everything, but all the same */ /* Explicit parameters for everything, but all the same */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::R},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::OcclusionTextureCoordinates, 3u},
{MaterialAttribute::OcclusionTextureLayer, 17u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::R}, {MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::RoughnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})}, {MaterialAttribute::RoughnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::RoughnessTextureCoordinates, 3u}, {MaterialAttribute::RoughnessTextureCoordinates, 3u},
{MaterialAttribute::RoughnessTextureLayer, 7u}, {MaterialAttribute::RoughnessTextureLayer, 17u},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})}, {MaterialAttribute::MetalnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::MetalnessTextureCoordinates, 3u}, {MaterialAttribute::MetalnessTextureCoordinates, 3u},
{MaterialAttribute::MetalnessTextureLayer, 7u}, {MaterialAttribute::MetalnessTextureLayer, 17u}
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::OcclusionTextureCoordinates, 3u},
{MaterialAttribute::OcclusionTextureLayer, 7u},
}}; }};
CORRADE_VERIFY(data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(data.hasOcclusionRoughnessMetallicTexture());
/* This isn't a superset */ /* This is a superset */
CORRADE_VERIFY(!data.hasNoneRoughnessMetallicTexture()); CORRADE_VERIFY(data.hasNoneRoughnessMetallicTexture());
/* Different texture ID */ /* Different texture ID */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::MetalnessTexture, 3u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u}, {MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::RoughnessTexture, 3u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* One texture missing */ /* One texture missing */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* Unexpected swizzle */ /* Unexpected swizzle */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::A},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::A}, {MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* Unexpected texture matrix */ /* Unexpected texture matrix */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u}, {MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 1.0f})}, {MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 1.0f})},
{MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* Unexpected texture coordinates */ /* Unexpected texture coordinates */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::MetalnessTextureCoordinates, 1u}, {MaterialAttribute::MetalnessTextureCoordinates, 1u},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* Unexpected array texture layer */ /* Unexpected array texture layer */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureLayer, 1u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureLayer, 1u}, {MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
} }
} }
void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedOcclusionRoughnessMetallic() { void PbrMetallicRoughnessMaterialDataTest::texturedExplicitPackedRoughnessMetallicOcclusion() {
/* Just the texture IDs and swizzles, the rest is implicit */ /* Just the texture IDs and swizzles, the rest is implicit */
{ {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* This is a superset */ CORRADE_VERIFY(data.hasRoughnessMetallicOcclusionTexture());
CORRADE_VERIFY(data.hasNoneRoughnessMetallicTexture()); /* This isn't a superset */
CORRADE_VERIFY(!data.hasNoneRoughnessMetallicTexture());
/* Explicit parameters for everything, but all the same */ /* Explicit parameters for everything, but all the same */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::R},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::OcclusionTextureCoordinates, 3u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::R},
{MaterialAttribute::RoughnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})}, {MaterialAttribute::RoughnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::RoughnessTextureCoordinates, 3u}, {MaterialAttribute::RoughnessTextureCoordinates, 3u},
{MaterialAttribute::RoughnessTextureLayer, 7u},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})}, {MaterialAttribute::MetalnessTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTextureCoordinates, 3u} {MaterialAttribute::MetalnessTextureCoordinates, 3u},
{MaterialAttribute::MetalnessTextureLayer, 7u},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 0.5f})},
{MaterialAttribute::OcclusionTextureCoordinates, 3u},
{MaterialAttribute::OcclusionTextureLayer, 7u},
}}; }};
CORRADE_VERIFY(data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture());
/* This is a superset */ CORRADE_VERIFY(data.hasRoughnessMetallicOcclusionTexture());
CORRADE_VERIFY(data.hasNoneRoughnessMetallicTexture()); /* This isn't a superset */
CORRADE_VERIFY(!data.hasNoneRoughnessMetallicTexture());
/* Different texture ID */ /* Different texture ID */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::MetalnessTexture, 3u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u}, {MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::RoughnessTexture, 3u}, {MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
/* One texture missing */ /* One texture missing */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
/* Unexpected swizzle */ /* Unexpected swizzle */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::A},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::A},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
/* Unexpected texture matrix */ /* Unexpected texture matrix */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 1.0f})},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
{MaterialAttribute::OcclusionTextureMatrix, Matrix3::scaling({0.5f, 1.0f})},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
/* Unexpected texture coordinates */ /* Unexpected texture coordinates */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::MetalnessTextureCoordinates, 1u}, {MaterialAttribute::MetalnessTextureCoordinates, 1u},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
/* Unexpected array texture layer */ /* Unexpected array texture layer */
} { } {
PbrMetallicRoughnessMaterialData data{{}, { PbrMetallicRoughnessMaterialData data{{}, {
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureLayer, 1u},
{MaterialAttribute::RoughnessTexture, 2u}, {MaterialAttribute::RoughnessTexture, 2u},
{MaterialAttribute::RoughnessTextureSwizzle, MaterialTextureSwizzle::G}, {MaterialAttribute::RoughnessTextureLayer, 1u},
{MaterialAttribute::MetalnessTexture, 2u}, {MaterialAttribute::MetalnessTexture, 2u},
{MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::B}, {MaterialAttribute::MetalnessTextureSwizzle, MaterialTextureSwizzle::G},
{MaterialAttribute::OcclusionTexture, 2u},
{MaterialAttribute::OcclusionTextureSwizzle, MaterialTextureSwizzle::B},
}}; }};
CORRADE_VERIFY(!data.hasOcclusionRoughnessMetallicTexture()); CORRADE_VERIFY(!data.hasRoughnessMetallicOcclusionTexture());
} }
} }

Loading…
Cancel
Save