【发布时间】:2018-05-16 14:24:07
【问题描述】:
我们的边界框计算算法是这样实现的。我们还能做些什么来提高速度吗?还是用不同的方法来解决同样的问题?
谢谢。
boxMin.X = boxMax.X = points[0].X;
boxMin.Y = boxMax.Y = points[0].Y;
boxMin.Z = boxMax.Z = points[0].Z;
for (int i = 1; i < points.Length; i++)
{
UpdateMinMaxQuick(points[i], boxMin, boxMax);
}
这是UpdateMinMaxQuick()方法源码:
public static void UpdateMinMaxQuick(double x, double y, double z, Point3D min, Point3D max)
{
if (x < min.X)
min.X = x;
else if (x > max.X)
max.X = x;
if (y < min.Y)
min.Y = y;
else if (y > max.Y)
max.Y = y;
if (z < min.Z)
min.Z = z;
else if (z > max.Z)
max.Z = z;
}
【问题讨论】:
-
边界框计算不太可能成为任何实际应用程序的瓶颈;测试、基准测试和配置文件,以在微优化之前找到真正的性能瓶颈所在。如果需要,内联函数
UpdateMinMaxQuick并仅更新局部变量而不是类成员,尽管在托管环境中这不太可能产生太大影响。
标签: unity3d math graphics 3d cad