Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Bug #751: TVScene.AdvancedCollision() Can Miss Collisions
Product:
TV3D SDK 6.5
Language:
Other
Current State:
Waiting on User
Resolution:
Confirmed
Created On:
August 22nd, 2007
Last Modified:
August 22nd, 2007
Reported By:
sybixsus
This is a pretty obscure bug, and I'm not 100% sure if you can fix it, but I could not for the life of me understand why it was failing at first.

Eventually after taking a VERY close look at the mesh in my modeller, I realised that AdvancedCollision() can fail if you happen to pick at EXACTLY the border between two triangles. I say can, because it normally won't do it, but on rare occasions, and particularly if the mesh has been rotated ( in this instance w=0,x=0,y=1,z=0 or 180 degrees around Y ) it can fail to spot a collision which is happening.

I took a screenshot to prove my theory. If you look carefully, you'll see the vertical axis is passing EXACTLY through the red diagonal line ( which is the edge of a triangle. ) All vertices in the mesh are welded.

As I say, it's obscure, and it may be hard to fix, but you'll probably save someone a lot of time if they come across it, so I thought I should at least report it so you can look into it.

(Link)

As far as I'm concerned, you can consider this a low priority bug. Now that I know what's happening, it's trivial to add some checks and balances and code around it.

I doubt the mesh is unique, but if you want it, holler and I'll send it over. it's a dead simple TVM model with no more than a few polys.

Comments:

Posted by SylvainTV on August 22nd, 2007 at 5:11 PM
OK Indeed it seems to be a quite hard bug, probably a precision thing.
Can you try with TV.SetFPUPrecision True (before engine init), and can you try with a smaller ray ?