Disable terarin normals smoothening
This commit is contained in:
@@ -76,9 +76,13 @@ namespace FlaxEditor.SceneGraph.Actors
|
|||||||
// Skip removing this terrain file sif it's still referenced
|
// Skip removing this terrain file sif it's still referenced
|
||||||
var sceneReferences = Editor.GetAssetReferences(e.SceneId);
|
var sceneReferences = Editor.GetAssetReferences(e.SceneId);
|
||||||
if (sceneReferences != null && sceneReferences.Contains(e.TerrainId))
|
if (sceneReferences != null && sceneReferences.Contains(e.TerrainId))
|
||||||
|
{
|
||||||
|
Debug.Log($"Skip removing files used by terrain {e.TerrainId} on scene {e.SceneId} as it's still in use");
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Delete files
|
// Delete files
|
||||||
|
Debug.Log($"Removing files used by removed terrain {e.TerrainId} on scene {e.SceneId}");
|
||||||
foreach (var file in e.Files)
|
foreach (var file in e.Files)
|
||||||
{
|
{
|
||||||
if (file != null && File.Exists(file))
|
if (file != null && File.Exists(file))
|
||||||
|
|||||||
@@ -431,8 +431,6 @@ void UpdateNormalsAndHoles(const TerrainDataUpdateInfo& info, const float* heigh
|
|||||||
GET_VERTEX(1, 1);
|
GET_VERTEX(1, 1);
|
||||||
#undef GET_VERTEX
|
#undef GET_VERTEX
|
||||||
|
|
||||||
// TODO: use SIMD for those calculations
|
|
||||||
|
|
||||||
// Calculate normals for quad two vertices
|
// Calculate normals for quad two vertices
|
||||||
Float3 n0 = Float3::Normalize((v00 - v01) ^ (v01 - v10));
|
Float3 n0 = Float3::Normalize((v00 - v01) ^ (v01 - v10));
|
||||||
Float3 n1 = Float3::Normalize((v11 - v10) ^ (v10 - v01));
|
Float3 n1 = Float3::Normalize((v11 - v10) ^ (v10 - v01));
|
||||||
@@ -446,6 +444,7 @@ void UpdateNormalsAndHoles(const TerrainDataUpdateInfo& info, const float* heigh
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
// Smooth normals
|
// Smooth normals
|
||||||
for (int32 z = 1; z < normalsSize.Y - 1; z++)
|
for (int32 z = 1; z < normalsSize.Y - 1; z++)
|
||||||
{
|
{
|
||||||
@@ -466,8 +465,6 @@ void UpdateNormalsAndHoles(const TerrainDataUpdateInfo& info, const float* heigh
|
|||||||
GET_NORMAL(2, 2);
|
GET_NORMAL(2, 2);
|
||||||
#undef GET_VERTEX
|
#undef GET_VERTEX
|
||||||
|
|
||||||
// TODO: use SIMD for those calculations
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The current vertex is (11). Calculate average for the nearby vertices.
|
* The current vertex is (11). Calculate average for the nearby vertices.
|
||||||
* 00 01 02
|
* 00 01 02
|
||||||
@@ -481,6 +478,7 @@ void UpdateNormalsAndHoles(const TerrainDataUpdateInfo& info, const float* heigh
|
|||||||
normalsPerVertex[i11] = Float3::Lerp(n11, avg, 0.6f);
|
normalsPerVertex[i11] = Float3::Lerp(n11, avg, 0.6f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Write back to the data container
|
// Write back to the data container
|
||||||
const auto ptr = (Color32*)data;
|
const auto ptr = (Color32*)data;
|
||||||
@@ -525,10 +523,9 @@ void UpdateNormalsAndHoles(const TerrainDataUpdateInfo& info, const float* heigh
|
|||||||
const int32 textureIndex = tz + tx;
|
const int32 textureIndex = tz + tx;
|
||||||
const int32 heightmapIndex = hz + hx;
|
const int32 heightmapIndex = hz + hx;
|
||||||
const int32 normalIndex = sz + sx;
|
const int32 normalIndex = sz + sx;
|
||||||
#if BUILD_DEBUG
|
ASSERT_LOW_LAYER(normalIndex >= 0 && normalIndex < normalsLength);
|
||||||
ASSERT(normalIndex >= 0 && normalIndex < normalsLength);
|
Float3 normal = Float3::NormalizeFast(normalsPerVertex[normalIndex]);
|
||||||
#endif
|
normal = normal * 0.5f + 0.5f;
|
||||||
Float3 normal = Float3::NormalizeFast(normalsPerVertex[normalIndex]) * 0.5f + 0.5f;
|
|
||||||
|
|
||||||
if (holesMask && !holesMask[heightmapIndex])
|
if (holesMask && !holesMask[heightmapIndex])
|
||||||
normal = Float3::One;
|
normal = Float3::One;
|
||||||
@@ -1247,6 +1244,11 @@ void TerrainPatch::ClearCache()
|
|||||||
|
|
||||||
void TerrainPatch::CacheHeightData()
|
void TerrainPatch::CacheHeightData()
|
||||||
{
|
{
|
||||||
|
if (Heightmap == nullptr)
|
||||||
|
{
|
||||||
|
LOG(Error, "Missing heightmap.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
PROFILE_CPU_NAMED("Terrain.CacheHeightData");
|
PROFILE_CPU_NAMED("Terrain.CacheHeightData");
|
||||||
const TerrainDataUpdateInfo info(this);
|
const TerrainDataUpdateInfo info(this);
|
||||||
|
|
||||||
@@ -1745,7 +1747,7 @@ bool TerrainPatch::UpdateHeightData(TerrainDataUpdateInfo& info, const Int2& mod
|
|||||||
// Prepare data for the uploading to GPU
|
// Prepare data for the uploading to GPU
|
||||||
ASSERT(Heightmap);
|
ASSERT(Heightmap);
|
||||||
auto texture = Heightmap->GetTexture();
|
auto texture = Heightmap->GetTexture();
|
||||||
ASSERT(texture->ResidentMipLevels() > 0);
|
ASSERT(texture->IsAllocated());
|
||||||
const int32 textureSize = texture->Width();
|
const int32 textureSize = texture->Width();
|
||||||
const PixelFormat pixelFormat = texture->Format();
|
const PixelFormat pixelFormat = texture->Format();
|
||||||
const int32 pixelStride = PixelFormatExtensions::SizeInBytes(pixelFormat);
|
const int32 pixelStride = PixelFormatExtensions::SizeInBytes(pixelFormat);
|
||||||
|
|||||||
Reference in New Issue
Block a user