public CreateDataJob(Bounds VolumnBound, int mx, int mz, MeshLODCreate[] setting) { LODs = new MTTerrainScanner[setting.Length]; for (int i = 0; i < setting.Length; ++i) { MeshLODCreate s = setting[i]; //only first lod stitch borders, other lod use the most detailed border to avoid //tearing on the border LODs[i] = new MTTerrainScanner(VolumnBound, s.Subdivision, s.SlopeAngleError, mx, mz, i == 0); } }
public void EndProcess() { //copy borders MTTerrainScanner detail = LODs[0]; detail.FillData(); for (int i = 1; i < LODs.Length; ++i) { MTTerrainScanner scaner = LODs[i]; for (int t = 0; t < detail.Trees.Length; ++t) { SamplerTree dt = detail.Trees[t]; SamplerTree lt = scaner.Trees[t]; foreach (var b in dt.Boundaries) { lt.Boundaries.Add(b.Key, b.Value); } } scaner.FillData(); } }