different LOD point number calc
nvoelzow opened this issue · 2 comments
just a different approach that works fine for me with point clouds that have a very wide range of densities (huge difference in number of points per tile):
int newpointcount = distanceBand > 0 ?
Mathf.Min(tiles[e.index].totalPoints, (int)((float)(maximumStartTilePointCount) * (useStrongFalloff ? EaseInQuint(0f, 1f, distanceMultiplier) : distanceMultiplier))) :
Mathf.Min(tiles[e.index].totalPoints, maximumTilePointCount);
basically this will limit the absolute number of points for tiles closer than StartDist to maximumTilePointCount and for all tiles further away will calculate the number of points based on a maximum number of points at StartDist (maximumStartTilePointCount) and not as fraction of the available points in each individual tile - this generates a somewhat more uniform distribution/sampling for me while not exceeding the maximum number of points for tiles near the camera that my machine can handle
btw the reason for the second maximum parameter is that for objects closer than StartDist, I want to be able to get the full resolution of the point cloud data or at least the max of what the machine can handle without affecting the calculation of tiles that are in the LOD range
this is good, added in next update v2.80