prepare for btGpuGridBroadphase
This commit is contained in:
@@ -48,9 +48,9 @@ public:
|
||||
arraySizeZ(10),
|
||||
#else
|
||||
|
||||
arraySizeX(30),
|
||||
arraySizeY(30),
|
||||
arraySizeZ(30),
|
||||
arraySizeX(1),
|
||||
arraySizeY(1),
|
||||
arraySizeZ(1),
|
||||
#endif
|
||||
m_useConcaveMesh(false),
|
||||
gapX(16.3),
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "Bullet3Common/b3Quaternion.h"
|
||||
#include "OpenGLWindow/b3gWindowInterface.h"
|
||||
#include "Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.h"
|
||||
#include "Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.h"
|
||||
|
||||
#include "../GpuDemoInternalData.h"
|
||||
#include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h"
|
||||
#include "OpenGLWindow/OpenGLInclude.h"
|
||||
@@ -103,7 +105,7 @@ __kernel void updateAabbSimple( __global float4* posOrnColors, const int numNode
|
||||
|
||||
struct PairBenchInternalData
|
||||
{
|
||||
b3GpuSapBroadphase* m_broadphaseGPU;
|
||||
b3GpuBroadphaseInterface* m_broadphaseGPU;
|
||||
|
||||
cl_kernel m_moveObjectsKernel;
|
||||
cl_kernel m_sineWaveKernel;
|
||||
@@ -176,6 +178,8 @@ void PairBench::initPhysics(const ConstructionInfo& ci)
|
||||
if (m_clData->m_clContext)
|
||||
{
|
||||
m_data->m_broadphaseGPU = new b3GpuSapBroadphase(m_clData->m_clContext,m_clData->m_clDevice,m_clData->m_clQueue);
|
||||
//m_data->m_broadphaseGPU = new b3GpuGridBroadphase(m_clData->m_clContext,m_clData->m_clDevice,m_clData->m_clQueue);
|
||||
|
||||
cl_program pairBenchProg=0;
|
||||
int errNum=0;
|
||||
m_data->m_moveObjectsKernel = b3OpenCLUtils::compileCLKernelFromString(m_clData->m_clContext,m_clData->m_clDevice,s_pairBenchKernelString,"moveObjectsKernel",&errNum,pairBenchProg);
|
||||
@@ -446,7 +450,7 @@ void PairBench::clientMoveAndDisplay()
|
||||
}
|
||||
}
|
||||
|
||||
bool updateOnGpu=false;
|
||||
bool updateOnGpu=false;//true;
|
||||
|
||||
if (updateOnGpu)
|
||||
{
|
||||
@@ -463,7 +467,7 @@ void PairBench::clientMoveAndDisplay()
|
||||
B3_PROFILE("updateOnCpu");
|
||||
if (!gPairBenchFileName)
|
||||
{
|
||||
int allAabbs = m_data->m_broadphaseGPU->m_allAabbsCPU.size();
|
||||
int allAabbs = m_data->m_broadphaseGPU->getAllAabbsCPU().size();
|
||||
|
||||
|
||||
b3AlignedObjectArray<b3Vector4> posOrnColorsCpu;
|
||||
@@ -476,10 +480,10 @@ void PairBench::clientMoveAndDisplay()
|
||||
{
|
||||
b3Vector3 position = posOrnColorsCpu[nodeId];
|
||||
b3Vector3 halfExtents = b3MakeFloat4(1.01f,1.01f,1.01f,0.f);
|
||||
m_data->m_broadphaseGPU->m_allAabbsCPU[nodeId].m_minVec = position-halfExtents;
|
||||
m_data->m_broadphaseGPU->m_allAabbsCPU[nodeId].m_minIndices[3] = nodeId;
|
||||
m_data->m_broadphaseGPU->m_allAabbsCPU[nodeId].m_maxVec = position+halfExtents;
|
||||
m_data->m_broadphaseGPU->m_allAabbsCPU[nodeId].m_signedMaxIndices[3]= nodeId;
|
||||
m_data->m_broadphaseGPU->getAllAabbsCPU()[nodeId].m_minVec = position-halfExtents;
|
||||
m_data->m_broadphaseGPU->getAllAabbsCPU()[nodeId].m_minIndices[3] = nodeId;
|
||||
m_data->m_broadphaseGPU->getAllAabbsCPU()[nodeId].m_maxVec = position+halfExtents;
|
||||
m_data->m_broadphaseGPU->getAllAabbsCPU()[nodeId].m_signedMaxIndices[3]= nodeId;
|
||||
}
|
||||
}
|
||||
m_data->m_broadphaseGPU->writeAabbsToGpu();
|
||||
@@ -506,7 +510,7 @@ void PairBench::clientMoveAndDisplay()
|
||||
|
||||
if (m_data->m_gui)
|
||||
{
|
||||
int allAabbs = m_data->m_broadphaseGPU->m_allAabbsCPU.size();
|
||||
int allAabbs = m_data->m_broadphaseGPU->getAllAabbsCPU().size();
|
||||
int numOverlap = m_data->m_broadphaseGPU->getNumOverlap();
|
||||
|
||||
float time = dt/1000.f;
|
||||
|
||||
@@ -100,7 +100,7 @@ GpuDemo::CreateFunc* allDemos[]=
|
||||
|
||||
|
||||
ConcaveScene::MyCreateFunc,
|
||||
|
||||
|
||||
|
||||
GpuBoxPlaneScene::MyCreateFunc,
|
||||
GpuConstraintsDemo::MyCreateFunc,
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "Bullet3Common/b3Quaternion.h"
|
||||
#include "OpenGLWindow/b3gWindowInterface.h"
|
||||
#include "Bullet3OpenCL/BroadphaseCollision/b3GpuSapBroadphase.h"
|
||||
#include "Bullet3OpenCL/BroadphaseCollision/b3GpuGridBroadphase.h"
|
||||
|
||||
#include "../GpuDemoInternalData.h"
|
||||
#include "Bullet3OpenCL/Initialize/b3OpenCLUtils.h"
|
||||
#include "OpenGLWindow/OpenGLInclude.h"
|
||||
@@ -119,6 +121,7 @@ void GpuRigidBodyDemo::initPhysics(const ConstructionInfo& ci)
|
||||
|
||||
b3GpuNarrowPhase* np = new b3GpuNarrowPhase(m_clData->m_clContext,m_clData->m_clDevice,m_clData->m_clQueue,m_data->m_config);
|
||||
b3GpuSapBroadphase* bp = new b3GpuSapBroadphase(m_clData->m_clContext,m_clData->m_clDevice,m_clData->m_clQueue);
|
||||
//b3GpuBroadphaseInterface* bp = new b3GpuGridBroadphase(m_clData->m_clContext,m_clData->m_clDevice,m_clData->m_clQueue);
|
||||
m_data->m_np = np;
|
||||
m_data->m_bp = bp;
|
||||
m_data->m_broadphaseDbvt = new b3DynamicBvhBroadphase(m_data->m_config.m_maxConvexBodies);
|
||||
@@ -419,6 +422,8 @@ bool GpuRigidBodyDemo::mouseButtonCallback(int button, int state, float x, float
|
||||
b3Quaternion orn(0,0,0,1);
|
||||
int fixedSphere = m_data->m_np->registerConvexHullShape(0,0,0,0);//>registerSphereShape(0.1);
|
||||
m_data->m_pickFixedBody = m_data->m_rigidBodyPipeline->registerPhysicsInstance(0,pos,orn,fixedSphere,0,false);
|
||||
m_data->m_rigidBodyPipeline->writeAllInstancesToGpu();
|
||||
m_data->m_bp->writeAabbsToGpu();
|
||||
|
||||
if (m_data->m_pickGraphicsShapeIndex<0)
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ struct GpuRigidBodyDemoInternalData
|
||||
class b3GpuRigidBodyPipeline* m_rigidBodyPipeline;
|
||||
|
||||
class b3GpuNarrowPhase* m_np;
|
||||
class b3GpuSapBroadphase* m_bp;
|
||||
class b3GpuBroadphaseInterface* m_bp;
|
||||
class b3DynamicBvhBroadphase* m_broadphaseDbvt;
|
||||
|
||||
b3Vector3 m_pickPivotInA;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
includedirs {
|
||||
".",
|
||||
"../../src",
|
||||
"../../btgui"
|
||||
}
|
||||
|
||||
@@ -39,8 +40,8 @@
|
||||
"../../btgui/OpenGLTrueTypeFont/fontstash.h",
|
||||
"../../btgui/OpenGLTrueTypeFont/opengl_fontstashcallbacks.cpp",
|
||||
"../../btgui/OpenGLTrueTypeFont/opengl_fontstashcallbacks.h",
|
||||
"../../btgui/Bullet3Common/**.cpp",
|
||||
"../../btgui/Bullet3Common/**.h",
|
||||
"../../src/Bullet3Common/**.cpp",
|
||||
"../../src/Bullet3Common/**.h",
|
||||
"../../btgui/Timing/b3Clock.cpp",
|
||||
"../../btgui/Timing/b3Clock.h"
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
includedirs {
|
||||
".",
|
||||
"../../src",
|
||||
"../../btgui"
|
||||
}
|
||||
|
||||
@@ -15,10 +16,12 @@
|
||||
initGlew()
|
||||
|
||||
--links{"gwen"}
|
||||
|
||||
|
||||
files {
|
||||
"**.cpp",
|
||||
"**.h",
|
||||
"../../src/Bullet3Common/**.cpp",
|
||||
"../../src/Bullet3Common/**.h",
|
||||
"../../btgui/OpenGLWindow/SimpleOpenGL3App.cpp",
|
||||
"../../btgui/OpenGLWindow/SimpleOpenGL3App.h",
|
||||
"../../btgui/OpenGLWindow/TwFonts.cpp",
|
||||
|
||||
Reference in New Issue
Block a user