【发布时间】:2018-02-10 15:19:59
【问题描述】:
我正在为我的游戏开发一个体素系统,该系统使用块的动态加载。为了优化它,我有一个块池和一个渲染距离,我想做的是用适量的块填充池。所以,我需要一种方法来找到那个数量。我尝试了以下方法,但似乎效率很低。
private void CreatePool()
{
int poolSize = 0;
for (int x = -m_RenderDistance; x <= m_RenderDistance; x++) {
for (int y = -m_RenderDistance; y <= m_RenderDistance; y++) {
for (int z = -m_RenderDistance; z <= m_RenderDistance; z++) {
if (Position3Int.DistanceFromOrigin(new Position3Int(x, y, z)) <= m_RenderDistance)
poolSize++;
}
}
}
}
更正式地说,这个问题涉及找到与原点有一定距离的整数坐标的唯一立方体的数量。
如果您认为有更好的方法来解决这个问题,或者我做错了什么,请告诉我。
谢谢,
昆汀
【问题讨论】:
-
int v = (m_RenderDistance*2)+1; poolSize = v * v * v;?
标签: c# unity3d optimization pool voxel