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.

5 comments:

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

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

    ReplyDelete
  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: http://yak32.blogspot.com/

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

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

    ReplyDelete