add support for compound hulls against concave triangle mesh
This commit is contained in:
@@ -217,7 +217,9 @@ static const char* bvhTraversalKernelCL= \
|
||||
" int shapeTypeB = collidables[collidableIndexB].m_shapeType;\n"
|
||||
" \n"
|
||||
" if (shapeTypeB!=SHAPE_CONVEX_HULL &&\n"
|
||||
" shapeTypeB!=SHAPE_SPHERE )\n"
|
||||
" shapeTypeB!=SHAPE_SPHERE &&\n"
|
||||
" shapeTypeB!=SHAPE_COMPOUND_OF_CONVEX_HULLS\n"
|
||||
" )\n"
|
||||
" return;\n"
|
||||
"\n"
|
||||
" \n"
|
||||
@@ -249,12 +251,27 @@ static const char* bvhTraversalKernelCL= \
|
||||
" if (isLeafNode)\n"
|
||||
" {\n"
|
||||
" int triangleIndex = getTriangleIndex(&rootNode);\n"
|
||||
" \n"
|
||||
" int pairIdx = atomic_inc(numConcavePairsOut);\n"
|
||||
" if (pairIdx<maxNumConcavePairsCapacity)\n"
|
||||
" if (shapeTypeB==SHAPE_COMPOUND_OF_CONVEX_HULLS)\n"
|
||||
" {\n"
|
||||
" int4 newPair = (int4)(bodyIndexA,bodyIndexB,triangleIndex,3);\n"
|
||||
" concavePairsOut[pairIdx] = newPair;\n"
|
||||
" int numChildrenB = collidables[collidableIndexB].m_numChildShapes;\n"
|
||||
" int pairIdx = atomic_add(numConcavePairsOut,numChildrenB);\n"
|
||||
" for (int b=0;b<numChildrenB;b++)\n"
|
||||
" {\n"
|
||||
" if ((pairIdx+b)<maxNumConcavePairsCapacity)\n"
|
||||
" {\n"
|
||||
" int childShapeIndexB = collidables[collidableIndexB].m_shapeIndex+b;\n"
|
||||
" int4 newPair = (int4)(bodyIndexA,bodyIndexB,triangleIndex,childShapeIndexB);\n"
|
||||
" concavePairsOut[pairIdx+b] = newPair;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" } else\n"
|
||||
" {\n"
|
||||
" int pairIdx = atomic_inc(numConcavePairsOut);\n"
|
||||
" if (pairIdx<maxNumConcavePairsCapacity)\n"
|
||||
" {\n"
|
||||
" int4 newPair = (int4)(bodyIndexA,bodyIndexB,triangleIndex,0);\n"
|
||||
" concavePairsOut[pairIdx] = newPair;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" } \n"
|
||||
" curIndex++;\n"
|
||||
|
||||
Reference in New Issue
Block a user