Exception in Create Fluids

guji

09-04-2008 06:50:09

I am trying to create fluids using NxOgre 0.9,
Following is what i've done:


mWorld = new World("log: html");
mScene = mWorld->createScene("Main", mSceneMgr, "gravity: yes, floor: yes");

FluidParams fluidParam;
mScene->createFluid(Vector3(0,2.5f, 3),fluidParam);

Unfortunately,I got the exception when running:

Fluid::Fluid(Scene* scene, const Pose& pose, FluidParams fp) : mOwner(scene) {

mName = NxCreateID(mOwner->getNbFluids(), "Fluid");
mOwner->_registerFluid(mName, this);

//Create fluid
NxFluidDesc fluidDesc;
fluidDesc.setToDefault();
fluidDesc.simulationMethod = NX_F_SPH;
fluidDesc.staticCollisionRestitution = 0.1;
fluidDesc.staticCollisionAdhesion = 0.5;
fluidDesc.maxParticles = FC_MAX_PARTICLES;
fluidDesc.restParticlesPerMeter = 50;
fluidDesc.stiffness = 1;
fluidDesc.viscosity = 6;

mParticles = new NxVec3[fluidDesc.maxParticles];
fluidDesc.particlesWriteData.bufferPos = &mParticles[0].x;
fluidDesc.particlesWriteData.bufferPosByteStride = sizeof(NxVec3);
fluidDesc.particlesWriteData.numParticlesPtr = &mNbParticles;


mFluid = mOwner->getNxScene()->createFluid(fluidDesc);
NxFluidEmitterDesc emitterDesc;
emitterDesc.setToDefault();
emitterDesc.dimensionX = 1;
emitterDesc.dimensionY = 1;
emitterDesc.relPose.id();
NxReal mat[] = {1,0,0,0, 0,0,1,0, 0,-1,0,0, 0,2,0,1};
emitterDesc.relPose.setColumnMajor44(mat);
emitterDesc.rate = 500.0;
emitterDesc.randomAngle = 0.1f;
emitterDesc.fluidVelocityMagnitude = 6.5f;
emitterDesc.maxParticles = FC_MAX_PARTICLES;
emitterDesc.particleLifetime = 100.0f;
emitterDesc.type = NX_FE_CONSTANT_FLOW_RATE;
emitterDesc.shape = NX_FE_ELLIPSE;
=>mFluid->createEmitter(emitterDesc);
}

Unhandled exception at 0x00446af5 (NxOgre.dll) in Cakebox.exe: 0xC0000005: Access violation reading location 0x00000000.

boboss

09-04-2008 10:03:31

you have to add :

fluidDesc.flags &= ~NX_FF_HARDWARE;