Add support for up to 4 texture channels when importing meshes

#2667
This commit is contained in:
Wojtek Figat
2025-01-11 22:40:20 +01:00
parent 756ba0a533
commit a1c46d2e6e
31 changed files with 427 additions and 475 deletions

View File

@@ -167,23 +167,22 @@ void RawData::ToModelData(ModelData& modelData) const
auto& surface = slot->Surfaces[i];
vertexCount += surface.Vertices.Count();
}
mesh->EnsureCapacity(vertexCount, vertexCount, false, false);
mesh->EnsureCapacity(vertexCount, vertexCount, false, false, false, 2);
// Write surfaces into vertex and index buffers
int32 index = 0;
for (int32 i = 0; i < slot->Surfaces.Count(); i++)
{
auto& surface = slot->Surfaces[i];
auto& surface = slot->Surfaces.Get()[i];
for (int32 vIndex = 0; vIndex < surface.Vertices.Count(); vIndex++)
{
auto& v = surface.Vertices[vIndex];
auto& v = surface.Vertices.Get()[vIndex];
mesh->Positions.Add(v.Position);
mesh->UVs.Add(v.TexCoord);
mesh->UVs.Get()[0].Add(v.TexCoord);
mesh->UVs.Get()[1].Add(v.LightmapUVs * surface.UVsArea.Size + surface.UVsArea.Location);
mesh->Normals.Add(v.Normal);
mesh->Tangents.Add(v.Tangent);
mesh->LightmapUVs.Add(v.LightmapUVs * surface.UVsArea.Size + surface.UVsArea.Location);
mesh->Indices.Add(index++);
}

View File

@@ -3,6 +3,8 @@
#pragma once
#include "Engine/Core/Config.h"
#include "Engine/Core/Math/Vector2.h"
#include "Engine/Core/Math/Vector3.h"
#include "Engine/Level/Actors/BrushMode.h"
namespace CSG