Mogre + PhysX

TADS

02-08-2009 21:57:33

hi all there is a aplha download for Mogre + physx at

https://sourceforge.net/projects/eyecm-physx/files/

i had asked if it could be done and they made the wrapper for it i havnt tested it yet as im not ready to input this yet but im sure afew of you are

AndroidAdam

05-08-2009 18:17:42

What version of Mogre is this for, 1.4.8, or 1.6.2?

AndroidAdam

09-08-2009 03:30:34

I can't find the world class in this dll.
In NxOgre the class is called world, in the actual physX sdk it's called NxPhysicsSDK.
The class includes the essential CreateScene function, any ideas on what it's called here?

TADS

09-08-2009 10:39:50

if i remember right they just take the NX bit off the front but i will start to look at this soon just been abit busy as of late.

this is a messeage i got of the person that made the wrapper

All the classes that are named NxSomething in C++ are called Something in PhysX Candy Wrapper. So, a NxScene is called simply Scene.

and this was the email i got of him

Hello!

I've created the binaries that should plug right into Mogre. I just hope
I just hope I haven't inadvertently transposed the data in the matrix class.

You can download it at:
https://sourceforge.net/projects/eyecm-physx/files/

I'll move it to alpha/beta/release as someone does some testing. I don't
have much time to do this myself.

AndroidAdam

09-08-2009 21:19:10

I was impressed with the use of .net conventions, especially the use of properties. If I can figure out what class is the equivalent of world I could do some testing.

smoove

09-08-2009 21:57:10

Hello!

You'll need to do something along the lines :

using Mogre.PhysX;

// pseudo c#

class Whateva
{
static Physics p;
static Scene mainscene;

public static Physics InitPhysicsAndCreateScene()
{
var scd = new SceneDesc( SceneFlags.EnableActiveTransforms );
//
scd.BackgroundThreadCount = 2;
//
p = Phyics.Create();
mainscene = p.CreateScene( scd );
//
return p;
}

public static StopPhysics()
{
p.Dispose(); // also disposes all the scenes/actors/bodies/joints etcetera.
}

public static void OnFirstFrame()
{
mainscene.Simulate( 0 );
}
public static void AfterFrameUpdate()
{
// make all changes to the state of PhysX objects before this line

const float dt = 1.0f / 60;
//
// begin calculating next frame
mainscene.Simulate( dt );
}

public static void BeforeFrameUpdate()
{
// get physics results from previous frame
mainscene.FlushStream();
mainscene.FetchResults( SimulationStatuses.AllFinished, true );
mainscene.UpdateActiveTransforms();

// now copy all matrices (that have changed) from physx to your engine's scene graph
using ( var ats = mainscene.GetActiveTransforms() )
{
foreach ( var at in ats )
{
Node n = (Node)at.Actor.UserData; // I don't know what kind of scene elements Mogre uses, sorry
if ( n == null ) continue;
//
n.WorldMatrix = at.Actor2World;
}
}
}

}


Happy coding,
smoove

AndroidAdam

10-08-2009 05:10:41

Ok, so the Physics class is the equivalent of the World class, thanks.

issingle

17-09-2009 09:18:24

Great Job.
Thanks a lot.smoove
i'll embed this wrapper into my work

noobs

11-11-2009 00:35:45

Sorry for bumping, just thought it would be better to post here then to start new thread.
Could some one give a working code whit just say one entity that lays on a flat ground?
I'm reading some tutorials on nxogre and didn't get far, would it be better to read the physX tutorials?

Thanks

hedphelym

15-12-2009 07:00:56

A sample for this would be great.. Been trying to figure out how to get PhysX into mogre, but no luck yet..

Kohedlo

19-12-2009 12:46:54

Hi all. I trying to create simple physics scene, but no anything.
How to view created pys object by visualisation7 -aka show bounding box of invseble phys obj.
Thanks.

hedphelym

19-12-2009 14:40:17

you have to create an object in mogre, then set it's position from the position of the physx object.
You can use the nvidia physx debugger to view the "physical" mesh and simulation.

Kohedlo

24-12-2009 19:29:44

Thanks. In wrapper(is really cool) i find method - GetDebugRenderable() in scene class.

Need write method -shower lines, triangles and so.


void DebugRenderer_renderData(DebugRenderable data)
{
data.Points;
data.Lines;
data.Triangles;
}


Is right way7
See actors in scene is great need(stone of stumbling) for my project.

hedphelym

24-12-2009 20:08:14

Thanks for all your effort! I'm really looking forward to see how things work out!

One thing that would be really powerful is the "serialization", where you just use a xml exported
from 3d app, and then it "just works".. we do this at a project at work (not mogre, but c++ version),
(But on my personal projects I use C#, and really want to get physx working.).
I'm not the coder on the c++ stuff at work, I just do C#, this is why I do not have any indepth info..

The plugin we\I use is the physx plugin for 3dsmax:
http://developer.nvidia.com/object/physx_dcc_plugins.html

If you'd like any samplescenes with physx XML data included, just let me know, I can make some :)

hedphelym

02-01-2010 15:34:40

Does anyone have some info to share on getting this to work? :)

Kohedlo

02-01-2010 23:13:31

If some need -there are exist tutorials how use this wrapper, but for modefied OpenGL , not for ogre. And video show how it works.
http://eyecm-physx.sourceforge.net/demos.html

hedphelym

03-01-2010 00:29:43

I'm not a very good programmer, but I started to look at it again when you wrote the post above,
and now I'm spawning boxes in my scene :D

Next up is to make the mogre boxes, and map the movement from the physx boxes to the graphical ones.. (this is the tough part).
then I'll write down how I did everything..

It's a start :)

hedphelym

03-01-2010 02:10:38

[attachment=0]mogre_physx.jpg[/attachment]


This is how I made it work:
(Quick and dirty sample)

Please note;
I will create a sample scene within a few days (hopefully tomorrow).

Tools I used :

Windows 7 X64 pro
VisualStudio 2008 SP1
Mogre 1.6.4
Newest Nvidia Physx runtime
Newest Nvidia SDK (registration needed at physx developer site for download).


Download wrapper from here:
http://sourceforge.net/projects/eyecm-physx/files/eyecm-physx-mogre/1.6.2/eyecm-physx-mogre-1.6.2-090813.zip/download

Here we go!

1) unpack wrapper and add it as reference in your project.

2)

I used the following variables:


protected const long tickspersec = 10000000;
protected static long lasttickcount;
protected static double t = 0;
protected static double dt = 0;
protected PhysX.Scene phscene;

//the "startToUpdatephysx" is so that it wont try get the scenenodes before it has created everything.
protected bool StartToUpdatePhysx = false;
protected Physics physics;
private int PhysxBoxCount = 1;



i have a key i press 'p' - the following happens there:



Here we create a new physx cube, and place it at 200,200,200

Vector3 pos = new Mogre.Vector3(200, 200, 200);

var ad = new ActorDesc(new BodyDesc(), 100, new BoxShapeDesc(new Vector3(2, 2, 2)));
ad.GlobalPosition = pos;
var a = phscene.CreateActor(ad);



then we create the mogre eqvalient of the physx box:

Entity planeEnt = sceneMgr.CreateEntity( ("Actor_" + PhysxBoxCount) , SceneManager.PrefabType.PT_CUBE);


then we create a scenenode to attach the box to, and then start to update physx simulation:

var physxnodew = sceneMgr.CreateSceneNode("Forphysx");

physxnodew.AttachObject(planeEnt);
physxnodew._update(true, true);
PhysxBoxCount += 1;
StartToUpdatePhysx = true;


In my "frame" loop i have the following:


foreach (var a in phscene.Actors)
{

if (!a.IsDynamic) continue;
//get the global pose of the first dynamic object (the one we created above):
var mat = a.GlobalPose;

if (StartToUpdatePhysx)
{
//get the scenenode in mogre
var scenenode = sceneMgr.GetSceneNode("Forphysx");


//get the actor:
var test2 = sceneMgr.GetEntity("Actor_1");

//set the node's position to where the physx box position is:
test2.ParentSceneNode.Position = mat.GetTrans();

//make the camera look at the box.
camera.LookAt(scenenode.Position);
}
}

hedphelym

08-01-2010 20:51:48

Hi again,

I'm working on putting together the little demo app..

Here's a little video showing what it does (as in right now).
it spawns and drops a simple cube.

I want to make it so that you can spawn multiple boxes before i upload anything.

http://www.youtube.com/watch?v=VSOmuCkB6JU

hedphelym

09-01-2010 01:31:03

Getting closer and closer to finishing up the demo.
It's 02:40 at night now, so I'll wrap it up and continue tomorrow.

heres a picture:
[attachment=0]mogre_physx_working.jpg[/attachment]

hedphelym

10-01-2010 12:33:00

Here's an article I wrote on how I made the result in the screenshot above.

http://stigatle.net/index.php/mogre/71-mogrephysx

hedphelym

14-01-2010 17:57:26

I'm doing something very wrong here, (I don't understand what matrix4 is or does),
but anyways; serialization was very easy (Loading scenes from exported XML).

The sphere in the picture is from my exported scene (With the nvidia 3dsmax exporter).

[attachment=0]physx_xml_loading.jpg[/attachment]

It loads on a 90 degree angle (wrong angle) with this code, most likely becuase
I don't know the matrix4 thing.


var physxXmlscene = PhysicsCollection.Load("c:\\test.xml", NXUFileTypes.XML);
var testvector = new Mogre.Matrix4(0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f,0f);
physxXmlscene.Instantiate(physics, phscene, testvector, null);

hedphelym

17-01-2010 23:22:01

I fixed the 90 degree's angle problem.
In the debugger you choose the "up axis" so that it looks correct.

then you need to swap the translation in your scene.
swap the "Y-Axis in mogre with Z-Axis from physx.


//Get the translation of the object in physx.
var temptransphys = mat.GetTrans();

//split them up to each axis.
var tempTransPhysxX = temptransphys.x;
var tempTransPhysxY = temptransphys.y;
var temptransphysxz = temptransphys.z;

// Set the translation in Mogre, but as you see
//we swap the "Y in mogre with Z in physx"
var temptransogrex = tempTransPhysxX;
var temptransogrey = temptransphysxz;
var temptransogrez = tempTransPhysxY;

hedphelym

26-01-2010 15:44:28

hi again,

continuing my work on this, when working with implementing kinematics (from serialization ,exported xml from 3dsmax)
I found a really annoying thing, as you can see in the post here:
http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=10776&start=15#p67551

there is 2 groundplanes. I now figured out why, on export you have to uncheck the "use groundplane" in 3dsmax.

you change this by opening the physx tool window, and uncheck the "use groundplane",
then everything will be fine when exported.

I'll update and post as soon as kinematics works. :)

hedphelym

29-01-2010 18:31:24

To make the kinematic move inside Physx, I use this code:
(Remember, I use a exported xml from 3dsmax).


//parse through all physx actors
foreach (Actor a in phscene.Actors)
{
//if it's kinematic
if (a.BodyFlags.Kinematic)
{

SceneNode mogreSceneNodeName = sceneMgr.GetSceneNode(a.Name);
Quaternion mogreSceneNodeRot = mogreSceneNodeName.Orientation;
Quaternion MogreToPhysxRot = mogreSceneNodeRot;

float temprotPhysxX = mogreSceneNodeRot.x;
float temprotPhysxY = mogreSceneNodeRot.y;
float temprotPhysxZ = mogreSceneNodeRot.z;

float temprotogreX = temprotPhysxX;
float temprotogreY = temprotPhysxZ;
float temprotogreZ = temprotPhysxY;

MogreToPhysxRot.x = temprotogreX;
MogreToPhysxRot.y = temprotogreY;
MogreToPhysxRot.z = temprotogreZ;

a.GlobalOrientationQuaternion = MogreToPhysxRot;
}
}


//Code for dynamics goes here....(see earlier posts).



The code is not optimized, I just try to get everything to work, and then continue from there.
The above was to make the kinematic move. next up is fixing what I mention next.
When the Kinematic hits a Dynamic, Nothing happens at the moment.
I'll post more when I get that fixed.

It was troublesome to use FRAPS to record, so I just post a image:
[attachment=0]physx_kinematic.jpg[/attachment]

The blue box is in 3dsmax, animated, then when exported as physx xml it appears in the scene.
I then have the "same" object in mogre, and apply the transformation in physx from mogre object.
Same way as with the dynamics, but in reverse.

hedphelym

01-02-2010 16:50:18

I've progressed some today. Kinematics now works great.
Forgot to say that Translation was no in my last post.. but here's the code for this:
Just place it after the "rotation" code above :)


var mogreSceneNodetrans = mogreSceneNodeName.Position;
// get the Physx node global pos, in this case a kinematic.
Vector3 tempPhysxTrans = a.GlobalPosition;

//get the mogre objects position.
var tempMogreTrans = mogreSceneNodetrans;

//convert it to match.
tempPhysxTrans.x = tempMogreTrans.x;
tempPhysxTrans.y = tempMogreTrans.z;
tempPhysxTrans.z = tempMogreTrans.y;

//For my scene I have to scale it by 100.
//apply it to physx object.
a.GlobalPosition = tempPhysxTrans / 100;



The current problem I have is that if the dymamics is sleeping ,then the kinematic does not wake them up.
My best guess is that I need a collision report, then wake up the dynamics that's supposed to wake up.

I'll post up as soon as this works.
Note: They do move, as long as they did not fall to sleep before the kinematic hits them.


[EDIT]:

I need help on solving the contact report thing... Can anyone of you help on this?

hedphelym

07-02-2010 11:58:54

Hi again,
a friend of mine helped me sovlve the kinematic->dynamic problem.

when using Kinematics, you have to use the following to set it's position:


physx_object_kinematic.MoveGlobalPosition(position);

to make them affect the dynamics. :)


Demo video here:

http://www.youtube.com/watch?v=QQIe4RhBzao

hedphelym

26-12-2010 11:49:38

hi again.

I've created a project which spawns boxes and spheres as dynamic objects.
this works fine.

But I'm having trouble with the cooking of meshes.

I've used the funtions here:
http://www.ogre3d.org/tikiwiki/PhysX+Candy+Wrapper

I get the static mesh data with this function:
public class StaticMeshData

but then when I want to create the shape it does not work.
I use this function:
public ConvexShapeDesc CreateConvexHull(StaticMeshData meshData)

my code is this:


var _staticmeshdata = new StaticMeshData(ent.GetMesh());
var asdf = CreateConvexHull(_staticmeshdata);
//The asdf variable contains the mesh data..
//-----------------------------------
//This is where it throws an exception..
var ad = new ActorDesc(new BodyDesc(), 1,new ConvexShapeDesc(asdf));



Has anyone of you used this? How do I add it to the scene without crashing?

kdr35

10-01-2011 14:55:03

Hi,
I am new in physx + mogre. I want to create a flag application in mogre. I found one example in ogre (http://www.ogre3d.org/addonforums/viewtopic.php?t=5888&f=6#p78093) , i try to convert ogre code to mogre code. I largely completed conversion but i have some problems about conversion. I didnt found properties of some class and didnt create a new cloth. While creating cloth , I have null exception.

http://www.ogre3d.org/addonforums/viewtopic.php?t=5888&f=6#p78093 orginal code in ogre forum.

I have converted to mogre code:

CapsuleShapeDesc csd = new CapsuleShapeDesc(0.2f,12f);
csd.LocalPosition = new Vector3(0, -0.2f, 0);
csd.Density = 0;

PhysX.ActorDesc flagPoleDsc = new ActorDesc(csd);
flagPoleDsc.Density = 0;
PhysX.Actor flagPole = phscene.CreateActor(flagPoleDsc);

PhysX.ClothDesc cp = new ClothDesc();
cp.SetToDefault();
cp.Thickness = 0.2f;
cp.BendingStiffness = 0.5f;
cp.Friction = 0.25f;
cp.Flags |= PhysX.ClothFlags.Bending;
cp.Flags |= PhysX.ClothFlags.CollisionTwoway;
cp.Flags |= PhysX.ClothFlags.Visualization;
cp.Flags |= PhysX.ClothFlags.Hardware;
cp.WindAcceleration = new Vector3(-20, 12, -1);
cp.Density = 0.15f;

// cp.meshMaterial = "nx.flag"; //i dont find equivalent value in mogre.
// cp.height = 8; //i dont find equivalent value in mogre.
// cp.width = 0.15f; //i dont find equivalent value in mogre.

PhysX.Cloth flag = phscene.CreateCloth(cp); // I DONT CREATE A CLOTH. WHILE CRETING CLOTH , HANDLE NULL EXEPTION.

flag.AttachToShape(flagPole.Shapes[0], PhysX.ClothAttachmentFlags.Twoway);


Thanks...

kdr35

11-01-2011 09:41:29

Has anyone of you used cloth in mogre?

hedphelym

11-01-2011 10:03:19

I looked at the post here the other day, I tried my best to get cloth,
but I think the sample is missing something fundamental (cooking, or something like that).

I'll look more into it asap, and port some more samples.

Maybe ask at the physx candywrapper forum too? might be someone there that can help with this.

kdr35

11-01-2011 10:24:06

Thanks for reply, I dont find any sample with cloth in mogre physx. Does Mogre Physx Wrapper support nvidia cloth? I will ask the problem in here

hedphelym

11-01-2011 10:26:17

we have no mogre sample for cloth, but It would be very nice to have.

This is why I feel it's better to post in the physx candywrapper site to get help for this,
it's mostly the same people in both threads.

kdr35

12-01-2011 07:48:18

OK, I asked to problem the other thread in fact I want to know whether Mogre Physx Wrapper supports cloth part of Nvidia Physx?

hedphelym

12-01-2011 07:51:07

google: "physx candywrapper cloth" returns:
Cloth is now supported. Also cloth mesh cooking. 2008-05-21 ... PhysX Candy Wrapper was built against .NET Framework 3.5, but it compiles under the 2.0 ...

kdr35

12-01-2011 09:43:52

Yes, of course. I read http://eyecm-physx.sourceforge.net/ but it doesnt work, creating cloth function returns null. As you said , maybe problem is related cookmesh.
I try to work cooking mesh function but it doesnt work as you said;

hi again.
But I'm having trouble with the cooking of meshes.

I've used the funtions here:
http://www.ogre3d.org/tikiwiki/PhysX+Candy+Wrapper

I get the static mesh data with this function:
public class StaticMeshData

but then when I want to create the shape it does not work.
I use this function:
public ConvexShapeDesc CreateConvexHull(StaticMeshData meshData)

my code is this:


var _staticmeshdata = new StaticMeshData(ent.GetMesh());
var asdf = CreateConvexHull(_staticmeshdata);
//The asdf variable contains the mesh data..
//-----------------------------------
//This is where it throws an exception..
var ad = new ActorDesc(new BodyDesc(), 1,new ConvexShapeDesc(asdf));




Did you solve cookmesh problem ?

hedphelym

12-01-2011 10:01:37

No, I did not solve this problem unfortunately.

I pm'ed the guy who made the article for cooking meshes in wiki,
he said that there was not anything obviously wrong with my code.

So I still do not know why it does not work.

he mentioned "Glueengine" has mesh cooking:
https://code.google.com/p/glueengine/


Here's my latest attempt:


public void CookMesh()
{
CookingInterface.InitCooking();

Vector3 pos = new Mogre.Vector3(0, 0, 0);

float tempy = pos.y;

Random random = new Random();

var temprandom = random.Next(1, 300);

pos.x = temprandom;
pos.y = 100;
pos.z = temprandom;

//Cook ogre head mesh here.
Entity ent;
//StaticMeshData
Console.WriteLine("Cooking mesh..");
// Add a head, give it it's own node
SceneNode headNode = sceneMgr.RootSceneNode.CreateChildSceneNode();
ent = sceneMgr.CreateEntity(("head" + PhysxBoxCount), "ogrehead.mesh");
headNode.AttachObject(ent);
ent.ParentSceneNode.Scale(0.01f, 0.01f, 0.01f);
Console.WriteLine("Created head:" + ("head" + PhysxBoxCount) as string);
PhysxBoxCount += 1;

//var ad = new ActorDesc(new BodyDesc(), 1, new SphereShapeDesc(1.0f));

//CreateConvexHull

var _staticmeshdata = new StaticMeshData(ent.GetMesh());

//CreateConvexHull(test);
var asdf = CreateConvexHull(_staticmeshdata);

CookingInterface.CloseCooking();
//-----------------------------------
//var ad = new ActorDesc(new BodyDesc(), 1, new SphereShapeDesc(1.0f));
//var ad = new ActorDesc(new BodyDesc(), 1,new ConvexShapeDesc(asdf.ConvexMesh));


//_--------------------------------------------------------
//NxTriangleMeshShapeDesc bunnyShapeDesc;
//bunnyShapeDesc.meshData = bunnyTriangleMesh;
//NxBodyDesc bodyDesc;
//NxActorDesc actorDesc;
//actorDesc.shapes.pushBack(&bunnyShapeDesc);
//actorDesc.body = &bodyDesc;
//actorDesc.density = 1.0f;
//NxActor* newActor = gScene->createActor(actorDesc);
//_--------------------------------------------------------


ad.Name = "Actor_" + PhysxBoxCount;
ad.GlobalPosition = pos;

phscene.CreateActor(ad);

//------------------------------------
}

kdr35

12-01-2011 10:25:38

Hımm Ok, I do something like your code but result is same. I have a question about cloth. Maybe you can help me. Do i need cookmesh for doing something with cloth ? (flag etc.) or how to i can do this different way?

hedphelym

12-01-2011 10:34:49

My impression as that you need cooking.
This is the only way to get a non-primitive mesh into the physx world.

I have not been able to cook a mesh yet with candywrapper.

Right now I'm just using primitives (spheres, cubes etc).

What you have to do is:
create a physx plane and cook it into a cloth.
Create one in ogre (or use ogre mesh and cook to cloth mesh).
grab each vertex and update it with the physx vertex from cloth.

I have some time tonight after work to check out more code.

As you can see in the cloth sample app that comes with the SDK, it does cooking, and also
there's a lot too do before it works..

C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.3\Samples\SampleCloth\src

kdr35

12-01-2011 12:45:56

I have examined in details SDK sample for a long time . You know, we use mogre so conversion it's so complicated. I dont sometimes find mogre-equivalent properties,class etc.
Thanks for helps :)

randomcode

15-11-2016 03:52:40

How to create a cloth? There is my code:

Plane p=new Plane(Vector3.UNIT_Y, 0);
PlaneShapeDesc pdesc=new PlaneShapeDesc(p)

but didn't work.

randomcode

16-11-2016 05:08:52

Hey, guys. I want to create the physx cloth with Physx Candy Wrapper, but i meet problems:
here is my code:

class TestCloth
{
public TestCloth(Scene scene, ClothDesc clothdesc, float width, float height, float length, string txtFileName, bool tearLines)
{
ClothMeshDesc desc=new ClothMeshDesc();
generateRegularMeshDesc(desc, width, height, length, true, false);
}
private void generateRegularMeshDesc(ClothMeshDesc desc,float w,float h,float d,bool txtCoods,bool tearLines)
{
int numX = (int)(w / d) + 1;
int numY = (int)(h / d) + 1;

desc.VertexCount = ((uint)numX+1)*((uint)numY+1);
desc.TriangleCount = (uint)(numX * numY) * 2;
desc.PointsByteStride = (uint)Marshal.SizeOf(new Vector3());
desc.TrianglesByteStride = (uint)sizeof(UInt32);
desc.VertexMassesByteStride = (uint)sizeof(float);
desc.VertexFlagsByteStride = (uint)sizeof(UInt32);
desc. = Marshal.AllocHGlobal((int)(Marshal.SizeOf(new Vector3()) * desc.VertexCount));
desc.TrianglesPtr = Marshal.AllocHGlobal((int)(sizeof(UInt32)*desc.TriangleCount));
//desc.VertexMassesPtr = mas;
int i, j;
Vector3 p = (Vector3)desc.PointsPtr;
for (i = 0; i <= numY; i++)
{
for (j = 0; j <= numX; j++)
{

p.(d * j, 0.0f, d * i);
p++;
}
}
}
}


original c++ code:

void MyCloth::generateRegularMeshDesc(NxClothMeshDesc &desc, NxReal w, NxReal h, NxReal d, bool texCoords, bool tearLines)
{
int numX = (int)(w / d) + 1;
int numY = (int)(h / d) + 1;

desc.numVertices = (numX+1) * (numY+1);
desc.numTriangles = numX*numY*2;
desc.pointStrideBytes = sizeof(NxVec3);
desc.triangleStrideBytes = 3*sizeof(NxU32);
desc.vertexMassStrideBytes = sizeof(NxReal);
desc.vertexFlagStrideBytes = sizeof(NxU32);
desc.points = (NxVec3*)malloc(sizeof(NxVec3)*desc.numVertices);
desc.triangles = (NxU32*)malloc(sizeof(NxU32)*desc.numTriangles*3);
desc.vertexMasses = 0;
desc.vertexFlags = 0;
desc.flags = 0;

mMaxVertices = TEAR_MEMORY_FACTOR * desc.numVertices;
mMaxIndices = 3 * desc.numTriangles;

int i,j;
NxVec3 *p = (NxVec3*)desc.points;
for (i = 0; i <= numY; i++) {
for (j = 0; j <= numX; j++) {
p->set(d*j, 0.0f, d*i);
p++;
}
}

if (texCoords) {
mTempTexCoords = (GLfloat *)malloc(sizeof(GLfloat)*2*TEAR_MEMORY_FACTOR*desc.numVertices);
GLfloat *f = mTempTexCoords;
GLfloat dx = 1.0f; if (numX > 0) dx /= numX;
GLfloat dy = 1.0f; if (numY > 0) dy /= numY;
for (i = 0; i <= numY; i++) {
for (j = 0; j <= numX; j++) {
*f++ = j*dx;
*f++ = i*dy;
}
}
mNumTempTexCoords = desc.numVertices;
}
else
{
mNumTempTexCoords = 0;
mTempTexCoords = NULL;
}

NxU32 *id = (NxU32*)desc.triangles;
for (i = 0; i < numY; i++) {
for (j = 0; j < numX; j++) {
NxU32 i0 = i * (numX+1) + j;
NxU32 i1 = i0 + 1;
NxU32 i2 = i0 + (numX+1);
NxU32 i3 = i2 + 1;
if ((j+i)%2) {
*id++ = i0; *id++ = i2; *id++ = i1;
*id++ = i1; *id++ = i2; *id++ = i3;
}
else {
*id++ = i0; *id++ = i2; *id++ = i3;
*id++ = i0; *id++ = i3; *id++ = i1;
}
}
}

// generate tear lines if necessary
if(tearLines)
generateTearLines(desc, numX + 1, numY + 1);
}


i can't convert intptr to vector3, and i didn't find any property in "desc" has the Vector3 return value, what should i do?

randomcode

19-11-2016 13:13:57

PhysX: (InvalidParameter) "Supplied NxActorDesc is not valid. createActor returns NULL." [..\..\Physics\src\NpScene.cpp,894]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]
PhysX: (InvalidParameter) "Scene::simulate: The elapsed time must be non-negative!" [..\..\Physics\src\NpScene.cpp,2762]
PhysX: (InvalidParameter) "Scene::fetchResults: simulate() was not called or aborted" [..\..\Physics\src\NpScene.cpp,3077]

randomcode

12-01-2017 03:47:59

We need some tutorials about this wrapper(or something like wiki)