PxFilterFlags FilterShader(
PxFilterObjectAttributes attributes0, PxFilterData filterData0,
PxFilterObjectAttributes attributes1, PxFilterData filterData1,
PxPairFlags& pairFlags, const void* constantBlock, PxU32 constantBlockSize)
{
if (filterData0.word1 && filterData1.word1)// both are "small", projectile-like objects and dont collide
{
return PxFilterFlag::eSUPPRESS;
}
else if (filterData0.word0 || filterData1.word0)// one or both of them are "triggerable" and modifyContact should be called
{
pairFlags = PxPairFlag::eCONTACT_DEFAULT | PxPairFlag::eNOTIFY_TOUCH_FOUND | PxPairFlag::eMODIFY_CONTACTS
| PxPairFlag::eNOTIFY_CONTACT_POINTS | PxPairFlag::eSWEPT_INTEGRATION_LINEAR;
}
else
{
pairFlags = PxPairFlag::eCONTACT_DEFAULT;
}
return PxFilterFlag::eDEFAULT;
}
From testing I know, that swept-integration contacts do get processed here like any other contacts and the pairFlags get set in the same way. Still no contact-modify-call...
Edited by Max Power, 06 September 2012 - 09:22 AM.






