Better road processing; flatter ground for towns

This commit is contained in:
Segey Lapin
2021-10-26 22:13:04 +03:00
parent 302719dd19
commit f2ef003610
5 changed files with 10 additions and 7 deletions

View File

@@ -226,7 +226,7 @@ Array Roads::curve_mesh(const PoolVector<Vector3> &points,
Vector3 base = verts[k];
float point = t + 2.0 + base.z;
float right = verts[k].x + tx;
if (t <= l - 2.0) {
if (t < l - 2.0) {
offt1 = curve3->interpolate_baked(point, true);
offt2 = curve3->interpolate_baked(point + 2.0, true);
assert(offt1.distance_squared_to(offt2) > 0.0f);
@@ -606,7 +606,7 @@ float RoadsData::get_sdf(int x, int y, int z)
int site = rg->get_site_from_point(x, z);
// printf("in site %d %d %d\n", site, rg->site_is_town(site), rg->site_is_farm(site));
if (site >= 0 && (rg->site_is_town(site) || rg->site_is_farm(site))) {
ret = y - rg->get_site_avg_height(site) - CLAMP(n * 0.1f, -0.5f, 0.5f);
ret = y - rg->get_site_avg_height(site) - CLAMP(n * 0.1f, -0.05f, 0.05f);
goto out;
}
}