Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

Tags in this Discussion

[PHYSX] 3.2 BUG- PxSimulationFilterCallback sends correct reports only from PxActor Now with Video
  • Hi

    nobody answered my questions on the other thread -
    http://forums.developer.nvidia.com/devforum/discussion/4486/physx-strange-bugs-on-pxcontroller-he-can-be-pushed-by-pxactors-without-coding-physx-3-2-betax

    So I´ve found another bug ..

    If the cooked trimesh or other shape forms include "inside" shapes, -> more shapes than one,
    like a plane and in the middle are a box which is together only one actor,
    the AABBs are big. ( Thats not the problem )

    If a PxRigidActor is falling down on the shape, the PxSimulationFilterCallback sends
    correct information about collision enter and leave ( when the object is bumping up ).

    But the PxSimulationFilterCallback sends only collision information if the PxController
    is leaving or entering the shape, not while he is running against a shape inside the AABB,
    which is from the trimesh.

    I guess that the PxSimulationFilterCallback cant handle the PxController right.

    Is this a desired behavior or is this a bug?


    Regards.
  • 8 Comments sorted by
  • Hi,

    why is nobody interested to read or to solve my problem?
  • "But the PxSimulationFilterCallback sends only collision information if the PxController
    is leaving or entering the shape, not while he is running against a shape inside the AABB,
    which is from the trimesh."

    I'm not sure I completely understand your comment.
    PxSimulationFilterCallback ::pairFound and PxSimulationFilterCallback::pairLost only track entering and leaving, they don't track in contact collision pairs or "running against a shape".

    You would need to use eNOTIFY_TOUCH_PERSISTS for that.
  • Hi,

    The video file is compressed in 7zip and its about 11 mb - 1.25 minutes.


    I´ve uploaded an video to show you the reports which will be sended when a PxRidigActor touches the plane. When the actor touches the plane, I print a message on the console :
    "CSimulationFilterCallback : PAIR FOUND" and when it loose the contact I print
    "SimulationFilterCallback : pair lost!". The controller cant send these messages and I dont know why, I guess its a limitation right now. - These messages are printed by each call directly in CSimulationFilterCallback.
    ( I dont show the AABB thing that I said in my thread)

    But I´ve recoded another anyoing "bug" but its hard for me to explain:

    The controller can move while he isn´t touching an actor. If he touchs an actor he
    want to climb it and will stuck - because if I still call move() he will moves along with
    the actor, ( rides on it ? ) ( undesired behavior - look at my thread:
    http://forums.developer.nvidia.com/devforum/discussion/4486/physx-strange-bugs-on-pxcontroller-he-can-be-pushed-by-pxactors-without-coding-now-with-video )

    If the actor under my character will deleted ( time experience ) and if I call move()
    on my character ( for gravity or new velocity ) the game crashs. ( You will see it too in the video, at 54 sec. ) But if I dont call move(), the game wont crash. ( But I cant move my character controller )

    Now I found maybe one reason which creates "the dont call move()" bug:

    You have to look carefully at 48 sec and 53 sec - I move my character controller but it didnt crashed. I was standing on an actor, the first one was deleted and I´ve created some new actos, and after calling move() ( I pushed W ) my controller stands on an new item + has a new position ( THAT CANT BE!!! ) I guess PhysX remembered the last actor on which the controller stands and after calling a move() he wants to calculate something between them, but it cant work because the actor was deleted. - But the controller touched 2 other new actors, and after calling move() he stands on the last touched actor! AWESOME !

    Hm, and after calling move() while the controller was standing on an actor the game crashs,
    on the call of move() - but I cant debug them, I dont have any information about it.
    ( It crashs in the dll somewhere )


    ( Btw: In my other thread I say that i´ve changed only my renderer, not more and
    it works with the old renderer, there are no bugs like this . Very weird ! )

    So, do you have some ideas?

    Regards.
    Video.7z
    12M
  • Does somebody have an idea?
  • Hi,

    is my problem to difficult?

    Isn´t there some developer from Nvidia who can help me?
  • Hi,

    We do care about your question, I'm sorry we haven't answered it completely yet.

    I didn't see any response to Loc's suggestion and question above...
    "PxSimulationFilterCallback ::pairFound and PxSimulationFilterCallback::pairLost only track entering and leaving, they don't track in contact collision pairs or "running against a shape".

    You would need to use eNOTIFY_TOUCH_PERSISTS for that."


    Also, though, I suspect that people are reluctant to speculate on this problem without being able to look at the code. I'll try to look into it more deeply, I'm very sorry for the slow response. We're a bit swamped with GDC preparation, etc.
    Thanks,

    Mike
  • The user and all related content has been deleted.
  • Hi,

    I´m sorry for my late reply.

    I´ve changed my code with many improvements and it should work now - but I didnt test it long enough. But I guess many problems are solved now.

    Thank you for your help.

    Regards.