I believe I have run across the phenomenon described in the NewtonMaterialSetContactNormalDirection help doc.
I have a marble player which can land on a "bouncy" tile. A bouncy tile is just a material that is set to have a high elasticity so the marble bounces. These tiles are part of the level and all tiles are geometric shapes like planes and slopes, nothing fancy. I've found that when the marble bounces near where two tiles meet, sometimes the bounce direction is a little incorrect. Is that the contact normal discrepancy that NewtonMaterialSetContactNormalDirection speaks of?
This is not a show stopper, I can have slightly incorrect bounce with the game... but I can see a player getting annoyed if they bounce on a perfectly flat tile and don't continue in the exact direction they were going in.

So here's my next question. I would like a perfect bounce, but by using the DBPro Newton wrapper I don't think I can use the above function to correct this very easily. One thing I can think of is to change the elasticity of the bouncy tile to nothing (like a normal tile) and calculate an artificial "bounce" vector myself by grabbing the collision details and placing a local impulse (or setting the marble's velocity vector) manually.
I can retrieve the contact position, the player position, the normal vector/speed, the tangent1 vector/speed and the tangent2 vector/speed. I don't really know what the tangent vectors are for (I haven't seen the tangent2 reporting any values in my tests??) so if you can point me to a collision tutorial somewhere online explaining these values that would be helpful.
Since I have the normal vector, and it may be incorrect, I'm assuming with the contact position and the marble player position I can determine a new normal vector. But I probably need to know how to include the two tangent vectors since Newton would no longer do the bounce for me?
Is this possible to do?
Thanks for any help!