<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/13059" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2020-08-31T02:32:55+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/13059</id>

		<entry>
		<author><name><![CDATA[drleviathan]]></name></author>
		<updated>2020-08-31T02:32:55+00:00</updated>

		<published>2020-08-31T02:32:55+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43090#p43090</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43090#p43090"/>
		<title type="html"><![CDATA[Re: btDbvt broadphase stages and tree]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43090#p43090"><![CDATA[
I don't have any good ideas about how one might dig into the internals of the <strong class="text-strong">btDbvt</strong> broadphase to feed your AI, however it is possible to use a <strong class="text-strong">btPairCachingGhostObject</strong> to help optimize tracking of nearby objects.<br><br>The normal scenario goes something like this: You have a <strong class="text-strong">Character</strong> who needs to know about nearby objects for some reason.  You could perform a full bounding box query into the broadphase subsystem each frame to compute those nearby objects however that could become an expensive query when there are many objects in the World.  If only you could cache the list of nearby objects and know when a new one has been added to the list or an old one has left!  That is where the btPairCachingGhostObject comes in.  A normal <strong class="text-strong">btGhostObject</strong> provides events when another object (1) newly overlaps, or (2) stops overlapping, in the broadphase.  The <strong class="text-strong">btPairCachingGhostObject</strong> maintains a list of overlaps within the bounds of the <strong class="text-strong">btGhostObject</strong> and iterating over that list doesn't require a fresh computation.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=11033">drleviathan</a> — Mon Aug 31, 2020 2:32 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[muhtargarian]]></name></author>
		<updated>2020-08-28T21:53:15+00:00</updated>

		<published>2020-08-28T21:53:15+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43087#p43087</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43087#p43087"/>
		<title type="html"><![CDATA[btDbvt broadphase stages and tree]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43087#p43087"><![CDATA[
I am working on a game AI that would allow ships in my game to avoid colliding. I figured I could use existing dynamic bounding volume tree used by the broadphase algorithm to avoid duplicate work. However, I am having hard time figuring out the inner working. While tree operations look fairly simple, I am pretty confused about broadphase side of things, particularly stages. I.E what do stages do, how does current stage / stage roots work? Seems like depending on current stage things get added to / removed from trees, so I figured it would be best to learn more about this prior to implementing anything.<br><br>Any information about this / material to increase my knowledge about the subject would be appreciated. I'd also welcome any other ways that would make more sense to implement navigational AI using Bullet.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=13494">muhtargarian</a> — Fri Aug 28, 2020 9:53 pm</p><hr />
]]></content>
	</entry>
	</feed>
