I have a new repository with a basic script until i finish the new one
5 Likes
Cool!**
Using single arraymesh for all chunks vs combining all arraymeshs
Multiple arraymesh are faster.
for dz in range(-search_radius, search_radius + 1):
for dx in range(-search_radius, search_radius + 1):
var neighbor_pos = Vector2i(grid_x + dx, grid_z + dz)
if main_road_segments_dictionary.has(neighbor_pos):
var segments = main_road_segments_dictionary[neighbor_pos]
for segment in segments:
var closest_on_segment = Geometry3D.get_closest_point_to_segment(point_world, segment[0], segment[1])
var distance_sq = closest_on_segment.distance_squared_to(point_world)
if distance_sq < carve_road_distance_squared and distance_sq < best_distance_sq:
best_distance_sq = distance_sq
best_projected_y = closest_on_segment.y
if best_distance_sq < carve_road_distance_squared:
point.y = best_projected_y
I am surprised how fast it is, I tried putting segments in chunks and other method, but they are all are very slow, this on its like magic.
I have a new super simple way of creating road, really it is the hardest part


