<?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/929" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2007-01-20T00:30:42+00:00</updated>

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

		<entry>
		<author><name><![CDATA[mewert]]></name></author>
		<updated>2007-01-20T00:30:42+00:00</updated>

		<published>2007-01-20T00:30:42+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3288#p3288</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3288#p3288"/>
		<title type="html"><![CDATA[filtering collision normals on concave mesh]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3288#p3288"><![CDATA[
I'm looking for a solution that works with general concave polyhedra.<br><br>The GPG4 triangle preprocessing is nice, but I see a problem with it for a gradually sloping tesselated hill.  All those edges are convex, but could still result in bumps.  Also I'm not crazy about the extra per-triangle bitfield.<br><br>Previously I implemented a solution that filtered the new points using the existing manifolds between the moving object and the concave mesh.  There were a number of rules which looked at things like the difference between the angle of the incoming normal and the existing normals, whether or not the new point has a greater penetration depth ( or smaller distance ) etc.  I can't recall the details, but I do remember it was a bit of a pain in teh arse and I was never really convinced it was the best solution.  In it's defense, it worked and has been used in a number of shipped games.<br><br>I see 3 catagories here:<br><br>1) Filtering based on looking at neighbouring triangles ( preprocessed or run-time )<br><br>2) Filtering based on just the new contact data<br><br>3) Filtering based on the existing manifold<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=323">mewert</a> — Sat Jan 20, 2007 12:30 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[vicviper]]></name></author>
		<updated>2007-01-19T10:51:37+00:00</updated>

		<published>2007-01-19T10:51:37+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3282#p3282</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3282#p3282"/>
		<title type="html"><![CDATA[filtering collision normals on concave mesh]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3282#p3282"><![CDATA[
What I did and it's working quite well for now is this:<br><br>I do a full SAT of the candidate triangles against the convex hull.<br><br>The difference is that I only do the SAT to know if I can reject the candidate triangle, if I find that the triangle is actually in contact with the hull, I get the triangle normal as the valid separation axis.<br><br>This solves completely the problem with coplanar triangles, but under other triangle configurations some problems may arise, so a correct solution will be more difficult to find<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=559">vicviper</a> — Fri Jan 19, 2007 10:51 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erin Catto]]></name></author>
		<updated>2007-01-18T01:58:41+00:00</updated>

		<published>2007-01-18T01:58:41+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3272#p3272</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3272#p3272"/>
		<title type="html"><![CDATA[filtering collision normals on concave mesh]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3272#p3272"><![CDATA[
For box-triangle I used SAT and disregarded edge-edge contact points. I also weighted the axis selection to use the triangle normal instead of the box face normals.<br><br>For a time I was also ignoring box face normals, but then I had a case where a box is hanging over the edge a cliff. The triangle on the face of the cliff saw the box as being deeply penetrated and shot the box off the cliff. So triangle normals are not enough.<br><br>With GJK, perhaps you could ignore the contact point if the closest points are on edges of both objects, and one is a triangle. You could also pre-process the triangle mesh to mark shared edges between coplanar triangles as non-colliding (see GPG4).<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=12">Erin Catto</a> — Thu Jan 18, 2007 1:58 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mewert]]></name></author>
		<updated>2007-01-18T01:04:29+00:00</updated>

		<published>2007-01-18T01:04:29+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3271#p3271</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3271#p3271"/>
		<title type="html"><![CDATA[filtering collision normals on concave mesh]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=3271#p3271"><![CDATA[
For collision tests of a convex object against concave world geometry composed of triangles; the usual procedure is to query your Bounding Volume Tree for triangle candidates and then dispatch individual triangle-vs-queryObject tests with the candidates.  But these local tests can give you incorrect collision normals compared to what would be correct for the compound geometry.  <br><br>For example; hitting a triangle edge in a tesselated plane when both triangles sharing the edge are coplanar.  Your sliding object will hit a bump where none exists.<br><br>It's a pretty common issue when using GJK.  There are a number of ways to fix it, but it seems tricky to get right for all cases.  What do people do about this situation?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=323">mewert</a> — Thu Jan 18, 2007 1:04 am</p><hr />
]]></content>
	</entry>
	</feed>
