editor: lightmapper tangents fix

This commit is contained in:
Turanszki Janos
2020-12-29 17:53:41 +01:00
parent 960734e87a
commit 24cee6be6a
+13
View File
@@ -118,6 +118,7 @@ static Atlas_Dim GenerateMeshAtlas(MeshComponent& meshcomponent, uint32_t resolu
std::vector<XMFLOAT3> positions(mesh.vertexCount);
std::vector<XMFLOAT2> atlas(mesh.vertexCount);
std::vector<XMFLOAT3> normals;
std::vector<XMFLOAT4> tangents;
std::vector<XMFLOAT2> uvset_0;
std::vector<XMFLOAT2> uvset_1;
std::vector<uint32_t> colors;
@@ -127,6 +128,10 @@ static Atlas_Dim GenerateMeshAtlas(MeshComponent& meshcomponent, uint32_t resolu
{
normals.resize(mesh.vertexCount);
}
if (!meshcomponent.vertex_tangents.empty())
{
tangents.resize(mesh.vertexCount);
}
if (!meshcomponent.vertex_uvset_0.empty())
{
uvset_0.resize(mesh.vertexCount);
@@ -160,6 +165,10 @@ static Atlas_Dim GenerateMeshAtlas(MeshComponent& meshcomponent, uint32_t resolu
{
normals[ind] = meshcomponent.vertex_normals[v.xref];
}
if (!tangents.empty())
{
tangents[ind] = meshcomponent.vertex_tangents[v.xref];
}
if (!uvset_0.empty())
{
uvset_0[ind] = meshcomponent.vertex_uvset_0[v.xref];
@@ -188,6 +197,10 @@ static Atlas_Dim GenerateMeshAtlas(MeshComponent& meshcomponent, uint32_t resolu
{
meshcomponent.vertex_normals = normals;
}
if (!tangents.empty())
{
meshcomponent.vertex_tangents = tangents;
}
if (!uvset_0.empty())
{
meshcomponent.vertex_uvset_0 = uvset_0;