Jump to content

Using Detour to handle dynamic obstactles.


darrenc182
 Share

Recommended Posts

Does anyone know how to use Detour to handle dynamic obstacles? I've been looking online in Mikko's blog however I did not get any information about it. I saw a video in this forum that was using spheres as dynamic objects and showing Detour performing path adjustments when the path is being blocked. The video I am referring to is here:

. Any and all help will, as always, be greatly appreciated.

Intel 2nd Generation i5 Quad Core Running at 3.30GHz. 8GB RAM, GeForce GTX 460 1024MB DDR5.

Link to comment
Share on other sites

I'm trying to figure this out myself. His library is completely undocumented...there's just a demo with SDL, a GUI, and who knows what else built into it, so it's impossible to tell what the actual commands to use it are.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

So where's the documentation?

That's what I was going to ask. I did see additional source code and header files that are not in the depreciated zip files available for download. I just don't know how to use them with detour and recast.

Intel 2nd Generation i5 Quad Core Running at 3.30GHz. 8GB RAM, GeForce GTX 460 1024MB DDR5.

Link to comment
Share on other sites

Don't get me wrong, it did take us 1 month to get it running (admittedly, it was very part-time hobbyism). I had read that blog post, and so did the Recast/Detour team, I think. The flexibility in the Recast parameters allows you to create high quality navigation meshes, once it's set up.

 

And computation time of navmeshes might make 10 times slower irrelevant, in the event that one hasn't played enough with the parameters to make a decent navmesh.

Link to comment
Share on other sites

I think this is what we want the classes to be:

#include "../le3.h"

namespace le3
{
class NavMesh
{
public:
	float radius;
	float height;
	float climbheight;
	float maxslope;
	float cellsize;

	void AddVertex(const float& x, const float& y, const float&z);
	void AddPolygon(const int& count, const short* indices);
	bool Build();
	bool BuildTile(const int& tilex, const int& tilez);
	Path* FindPath(const Vec3& p0, const Vec3& p1)
};

class Path
{
public:
	std::vector<Vec3> points;
};
}

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Yes, but those are all node or grid based, are they not?

 

Recast handles dynamic changes by splitting the mesh into tiles and recalculating only tiles that have changed. That might not work well if you have thousands of objects rolling around, but most games don't tend to do that anyways.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...