Thursday, April 22, 2010

More Accurate Tile Connection

I just fixed (R162) an old and forgotten bug in tile connection. When I was working on the tiles, there were a lot of things to do, and one thing that was left to do was more accurate overlap test.

At the time of writing the code, I took a little shortcut and make the edge overlap test to use axis aligned rectangles instead of something more accurate. While most of the time this is ok, it fails when a tilted surface is on top (or under) of another surface. In that case the edge check test becomes too liberal.

I fixed this now so that the edge connection test uses tilted rectangle, instead of axis-aligned bounding box. If you get tile border connection error, let me know.


  1. This comment has been removed by a blog administrator.

  2. Stunning work!
    Does recast have methods to recompute only portions of space, for instance when an object is added

  3. You can generate one tile at a time. Like in above picture the tile size is quite small (something like 4x4m). So if something changes within a tile, you can recalc that tile only. With the above tile size, depending on your data, it may take something between 5 to 50ms. Yakov has done some nice stuff with it:

  4. Yakov's approach is interesting but isn't it better to handle dynamic obstacles at the steer level ?

  5. Steering will get stuck on local minima, think about U shaped obstacle. That is better handled using navmesh.