Add support for tangent stream pairing with the first UV from the model.
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <Atom/RPI.Reflect/Model/ModelKdTree.h>
|
||||
#include <Atom/RPI.Reflect/Model/ModelLodAsset.h>
|
||||
#include <Atom/RPI.Reflect/ResourcePoolAssetCreator.h>
|
||||
#include <Atom/RPI.Public/Model/ModelLod.h>
|
||||
|
||||
#include <AzCore/std/limits.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
@@ -917,6 +918,33 @@ namespace UnitTest
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ModelTests, UvStream)
|
||||
{
|
||||
AZ::RPI::UvStreamTangentIndex uvStreamTangentIndex;
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetFullFlag(), 0u);
|
||||
|
||||
uvStreamTangentIndex.ApplyTangentIndex(1u);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetTangentIndexAtUv(0u), 1u);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetNextAvailableUvIndex(), 1u);
|
||||
|
||||
uvStreamTangentIndex.ApplyTangentIndex(5u);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetTangentIndexAtUv(1u), 5u);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetNextAvailableUvIndex(), 2u);
|
||||
|
||||
uvStreamTangentIndex.ApplyTangentIndex(100u);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetTangentIndexAtUv(2u), AZ::RPI::UvStreamTangentIndex::UnassignedTangentIndex);
|
||||
EXPECT_EQ(uvStreamTangentIndex.GetNextAvailableUvIndex(), 3u);
|
||||
|
||||
for (uint32_t i = 3; i < AZ::RPI::UvStreamTangentIndex::MaxTangents; ++i)
|
||||
{
|
||||
uvStreamTangentIndex.ApplyTangentIndex(0u);
|
||||
}
|
||||
|
||||
AZ_TEST_START_TRACE_SUPPRESSION;
|
||||
uvStreamTangentIndex.ApplyTangentIndex(0u);
|
||||
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
|
||||
}
|
||||
|
||||
// This class creates a Model with one LOD, whose mesh contains 2 planes. Plane 1 is in the XY plane at Z=-0.5, and
|
||||
// plane 2 is in the XY plane at Z=0.5. The two planes each have 9 quads which have been triangulated. It only has
|
||||
// a position and index buffer.
|
||||
|
||||
Reference in New Issue
Block a user