4

Tried to make road / street network system with geometry nodes in blender. Plan is to instance street / road chunks on vertices and along edges in between intersections. Mesh topology have non manifold grid like topology with unequal edges and unequal columns or rows, I want to edit base topology by hand to fit the roads and intersections where I want, similar to cities skylines. I put junction nodes on vertex and straight road chunks in between them if they are connected with edge.

road, street system blender geometry nodes edit

road, street network blender geometry nodes

I will drop the file in a moment hope everything is packed right way. Well blend exchange don't like the file, so here its 80MB google drive share:

https://drive.google.com/file/d/1DECLhFk0I8kH_-T0H6bTEF3wDGJOivIe/view

I have couple problems with that:

  1. I can add junctions/intersections based on vertex neighbour count. Yet I can't rotate them toward sum of neighbouring vertices, it looks its impossible to get all neighbouring points of intersections to calculate orientation/sum of directions/vectors to them. And more exactly its hard to get neighbouring vertices ID's because indices are unpredictable and get scrambled when you edit mesh (for example subdivide or extrude verts). I would probably better of generate custom junction mesh for every spot like they did in matrix UE demo, but I would still need all neighbouring vertices for every intersection orientation. How can I get all neighbouring vertices, their indices / positions?
  2. Another problem is I want to fit the straight road chunks along the connecting edge, so I turn every edge into curve with extra points but distance between them is rounded down to fit whole sample so there are always gaps between road chunks or they overlap + gap with intersections.
  3. Road chunks would best deform to curve and snug fit the vertices. I found someone made custom deform array on curves, but it only works well on single curve not on geometry that have edges converted to n number of curves.

What I tried:

  • Edge Vertices Node + index node with field nodes but it outputs only 0 or 1 could not pass needed vert index
  • I tried also some geometry selections nodes
  • I tried to guess the index of neighbours with field nodes but I can only get next and previous one, but third or more is not simple index +1 or -1, and two neighbours is not enough to calculate orientation.
  • tried a bit with Raycast node but I don't think it will work for non grid parts of topology, reason is I don't have direction to off grid points to cast the ray there
  • I think maybe instead of converting edges to curves, converting them to mesh lines would at least let me instance points at exact lengths yet I got stuck when needed to angle them the same way as original edge, maybe its possible tho

I tried bunch of ways for couple days, but found no solutions, maybe someone can help.

Damian
  • 59
  • 5

0 Answers0