我正在为Unity制作一个个人体素化地形系统,后来我可以将其转换为C ++,因为便携式代码很方便。我也计划使用Marching立方体,并且我已经取得了不错的结果出现在一个单一的块中。我最近也提出了一个系统,如果顶点的密度为0,则不会产生体素类。
我知道早期优化是一个令人讨厌的想法,但我对此主题感到好奇。
将所有数据处理并存储在一个块中,或继续使用像我现在这样的体素类,性能会更好吗?
只是想知道我有什么,这里有一些伪代码。
class voxel
{
Vector3 Vertices[8]
void Polygonize()
// This filters a list of triangles and all that.
}
class chunk
{
int GridSize
Voxel vox[GridSize][GridSize][GridSize]
float Density[GridSize + 1][GridSize + 1][GridSize + 1]
void GenerateMatrix()
{
for every voxel in Density
{
if Density[x, y, z] > 0
{
// Do all the things.
}
}
}
}