Fix not lights in the internal lightmapper
This commit is contained in:
parent
b6cbaaedbc
commit
e9946bead2
2 changed files with 28 additions and 26 deletions
|
|
@ -207,24 +207,24 @@ public:
|
|||
|
||||
void UploadAll()
|
||||
{
|
||||
UploadRanges.Vertex.Clear();
|
||||
UploadRanges.Vertex.Push({ 0, (int)Mesh.Vertices.Size() });
|
||||
UploadRanges.Index.Clear();
|
||||
UploadRanges.Index.Push({ 0, (int)Mesh.Indexes.Size() });
|
||||
UploadRanges.SurfaceIndex.Clear();
|
||||
UploadRanges.SurfaceIndex.Push({ 0, (int)Mesh.SurfaceIndexes.Size() });
|
||||
UploadRanges.Surface.Clear();
|
||||
UploadRanges.Surface.Push({ 0, GetSurfaceCount() });
|
||||
UploadRanges.UniformIndexes.Clear();
|
||||
UploadRanges.UniformIndexes.Push({ 0, (int)Mesh.UniformIndexes.Size() });
|
||||
UploadRanges.Uniforms.Clear();
|
||||
UploadRanges.Uniforms.Push({ 0, (int)Mesh.Uniforms.Size() });
|
||||
UploadRanges.Portals.Clear();
|
||||
UploadRanges.Portals.Push({ 0, (int)Portals.Size() });
|
||||
UploadRanges.Light.Clear();
|
||||
UploadRanges.Light.Push({ 0, (int)Mesh.Lights.Size() });
|
||||
UploadRanges.LightIndex.Clear();
|
||||
UploadRanges.LightIndex.Push({ 0, (int)Mesh.LightIndexes.Size() });
|
||||
ClearRanges(UploadRanges.Vertex);
|
||||
AddRange(UploadRanges.Vertex, { 0, (int)Mesh.Vertices.Size() });
|
||||
ClearRanges(UploadRanges.Index);
|
||||
AddRange(UploadRanges.Index, { 0, (int)Mesh.Indexes.Size() });
|
||||
ClearRanges(UploadRanges.SurfaceIndex);
|
||||
AddRange(UploadRanges.SurfaceIndex, { 0, (int)Mesh.SurfaceIndexes.Size() });
|
||||
ClearRanges(UploadRanges.Surface);
|
||||
AddRange(UploadRanges.Surface, { 0, GetSurfaceCount() });
|
||||
ClearRanges(UploadRanges.UniformIndexes);
|
||||
AddRange(UploadRanges.UniformIndexes, { 0, (int)Mesh.UniformIndexes.Size() });
|
||||
ClearRanges(UploadRanges.Uniforms);
|
||||
AddRange(UploadRanges.Uniforms, { 0, (int)Mesh.Uniforms.Size() });
|
||||
ClearRanges(UploadRanges.Portals);
|
||||
AddRange(UploadRanges.Portals, { 0, (int)Portals.Size() });
|
||||
ClearRanges(UploadRanges.Light);
|
||||
AddRange(UploadRanges.Light, { 0, (int)Mesh.Lights.Size() });
|
||||
ClearRanges(UploadRanges.LightIndex);
|
||||
AddRange(UploadRanges.LightIndex, { 0, (int)Mesh.LightIndexes.Size() });
|
||||
}
|
||||
|
||||
void UploadCollision()
|
||||
|
|
@ -234,8 +234,16 @@ public:
|
|||
UploadRanges.Node.Push({ 0, (int)Collision->get_nodes().size() });
|
||||
}
|
||||
|
||||
void ClearRanges(TArray<MeshBufferRange>& ranges)
|
||||
{
|
||||
ranges.Clear();
|
||||
}
|
||||
|
||||
void AddRange(TArray<MeshBufferRange>& ranges, MeshBufferRange range)
|
||||
{
|
||||
if (range.Size <= 0)
|
||||
return;
|
||||
|
||||
auto right = std::lower_bound(ranges.begin(), ranges.end(), range);
|
||||
|
||||
bool leftExists = right != ranges.begin();
|
||||
|
|
|
|||
|
|
@ -205,6 +205,7 @@ void DoomLevelMesh::CreateLights(FLevelLocals& doomMap)
|
|||
int lightindex = GetLightIndex(light, portalgroup);
|
||||
if (lightindex >= 0)
|
||||
{
|
||||
AddRange(UploadRanges.LightIndex, { (int)Mesh.LightIndexes.Size(), 1 });
|
||||
Mesh.LightIndexes.Push(lightindex);
|
||||
surface.LightList.Count++;
|
||||
}
|
||||
|
|
@ -266,6 +267,7 @@ int DoomLevelMesh::GetLightIndex(FDynamicLight* light, int portalgroup)
|
|||
int lightindex = Mesh.Lights.Size();
|
||||
light->levelmesh[index].index = lightindex + 1;
|
||||
light->levelmesh[index].portalgroup = portalgroup;
|
||||
AddRange(UploadRanges.Light, { (int)Mesh.Lights.Size(), 1 });
|
||||
Mesh.Lights.Push(meshlight);
|
||||
return lightindex;
|
||||
}
|
||||
|
|
@ -273,14 +275,6 @@ int DoomLevelMesh::GetLightIndex(FDynamicLight* light, int portalgroup)
|
|||
void DoomLevelMesh::BeginFrame(FLevelLocals& doomMap)
|
||||
{
|
||||
CreateLights(doomMap);
|
||||
#if 0
|
||||
static_cast<DoomLevelSubmesh*>(DynamicMesh.get())->Update(doomMap);
|
||||
if (doomMap.lightmaps)
|
||||
{
|
||||
DynamicMesh->SetupTileTransforms();
|
||||
DynamicMesh->PackLightmapAtlas(StaticMesh->LMTextureCount);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool DoomLevelMesh::TraceSky(const FVector3& start, FVector3 direction, float dist)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue