Report any bugs here and we'll post fixes
Moderators: Sascha Willems, Thomas
by Marc » Wed Nov 18, 2009 7:48 pm
Hi !
Related to my issue in this thread
http://newtondynamics.com/forum/viewtopic.php?f=9&t=5499&start=15, I continued developing with the modified spheres of radius x and y being 1 instead of 0.3 for my local test system.
Now I have this situation: When I crowd about 20 units around a house, my app crashes inside NewtonUpdate(). Here is a stacktrace:
- Code: Select all
newton.dll!dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen(const dgMatrix & matrix={...}, const dgVector & scale={...}, float radius=1.0000000, dgVector & out={...}) Line 595 + 0x1d bytes C++
newton.dll!dgWorld::CalculatePolySoupToElipseContactsDescrete(dgCollisionParamProxi & proxi={...}) Line 7336 + 0x2d bytes C++
newton.dll!dgWorld::CalculateConvexToNonConvexContacts(dgCollisionParamProxi & proxi={...}) Line 8364 C++
newton.dll!dgWorld::ConvexContacts(dgCollidingPairCollector::dgPair * const pair=0x225f8268, dgCollisionParamProxi & proxi={...}) Line 2134 + 0xa bytes C++
newton.dll!dgWorld::CalculateContacts(dgCollidingPairCollector::dgPair * const pair=0x225f8268, float timestep=0.016000001, int threadIndex=0) Line 2375 C++
newton.dll!dgBroadPhaseCalculateContactsWorkerThread::ThreadExecute() Line 911 C++
newton.dll!dgBroadPhaseCollision::UpdateContacts(float timestep=0.016000001, bool collisioUpdate=false) Line 1691 C++
newton.dll!dgWorld::Update(float timestep=0.016000001) Line 702 C++
> newton.dll!Newton::UpdatePhysics(float timestep=0.016000001) Line 115 C++
[External Code]
Client.exe!CUPhysics::Iterate() Line 296 C++
Client.exe!RegionDataResCU::Iterate(unsigned __int64 timeold = 1258587057831936, unsigned __int64 timestep = 16384, unsigned int participants = 1, bool isclient = true, bool iskeyframe = false) Line 444 C++
I can reproduce this by moving about 20 units towards a house.
Maybe I did something wrong - but I'm 100% sure what. As you noticed a few weeks back when we were debugging, I use usercollisions with OPCODE 1.3 backend. Do you think that could be the problem? I don't see a the callback in the stacktrace. But maybe the callback was called before and the returned values are the problem?
I haven't noticed crashes like that with radius x and y being 0.3.
Any idea/clue?
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Julio Jerez » Wed Nov 18, 2009 8:36 pm
so it crashes consitently in function when usein spheres of equal radio?
newton.dll!dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen(const dgMatrix & matrix={...}, const dgVector & scale={...}, float radius=1.0000000, dgVector & out={...}) Line 595 + 0x1d bytes C++
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Julio Jerez » Wed Nov 18, 2009 8:40 pm
can you runn it until is crashe an dthe disaseembly when it crashes maybe I can see what is wrong in the function.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Marc » Wed Nov 18, 2009 10:07 pm
it's not just spheres. about 20 spheres, 1 newtonheightfield and 1 usermeshcollision with opcode as backend.
I'll have do undo a few changes because of my attempt to replace the opcode-usermeshcollision with newtoncollisions leading to "not working anymore". Luckily I made ifdefs around the changes. Let's see how easy I can revert it for getting the disasm ...
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Marc » Wed Nov 18, 2009 10:17 pm
actually, my ifdefs worked perfectly
here is the crash again:
- Code: Select all
newton.dll!dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen(const dgMatrix & matrix={...}, const dgVector & scale={...}, float radius=1.0000000, dgVector & out={...}) Line 595 + 0x1d bytes C++
newton.dll!dgWorld::CalculatePolySoupToElipseContactsDescrete(dgCollisionParamProxi & proxi={...}) Line 7336 + 0x2d bytes C++
newton.dll!dgWorld::CalculateConvexToNonConvexContacts(dgCollisionParamProxi & proxi={...}) Line 8364 C++
newton.dll!dgWorld::ConvexContacts(dgCollidingPairCollector::dgPair * const pair=0x29804208, dgCollisionParamProxi & proxi={...}) Line 2134 + 0xa bytes C++
newton.dll!dgWorld::CalculateContacts(dgCollidingPairCollector::dgPair * const pair=0x29804208, float timestep=0.016000001, int threadIndex=0) Line 2375 C++
newton.dll!dgBroadPhaseCalculateContactsWorkerThread::ThreadExecute() Line 911 C++
newton.dll!dgBroadPhaseCollision::UpdateContacts(float timestep=0.016000001, bool collisioUpdate=true) Line 1691 C++
newton.dll!dgWorld::Update(float timestep=0.016000001) Line 702 C++
newton.dll!Newton::UpdatePhysics(float timestep=0.016000001) Line 115 C++
[External Code]
> Client.exe!CUPhysics::Iterate() Line 296 C++
Client.exe!RegionDataResCU::Iterate(unsigned __int64 timeold = 1258596853301248, unsigned __int64 timestep = 16384, unsigned int participants = 1, bool isclient = true, bool iskeyframe = false) Line 445 C++
... and here hte disasm: the arrow points to
00649BA2 fld dword ptr [ecx]
- Code: Select all
--- No source file -------------------------------------------------------------
006499B5 int 3
006499B6 int 3
006499B7 int 3
006499B8 int 3
006499B9 int 3
006499BA int 3
006499BB int 3
006499BC int 3
006499BD int 3
006499BE int 3
006499BF int 3
--- c:\newton_200\3dlib\sdk\physics\dgcollisionmesh.cpp ------------------------
006499C0 push ebp
006499C1 mov ebp,esp
006499C3 and esp,0FFFFFFF0h
006499C6 sub esp,54h
006499C9 fld dword ptr [__real@60ad78ec (6AE51Ch)]
006499CF push ebx
006499D0 fst dword ptr [esp+14h]
006499D4 push esi
006499D5 mov esi,ecx
006499D7 mov ecx,dword ptr [esi+830h]
006499DD mov edx,dword ptr [esi+82Ch]
006499E3 mov eax,dword ptr [esi+838h]
006499E9 push edi
006499EA mov edi,dword ptr [ecx]
006499EC imul edi,edx
006499EF fld dword ptr [eax+edi*4]
006499F2 fld dword ptr [eax+edi*4+4]
006499F6 fld dword ptr [eax+edi*4+8]
006499FA lea eax,[eax+edi*4]
006499FD mov edi,dword ptr [matrix]
00649A00 mov eax,dword ptr [scale]
00649A03 lea ebx,[esi+120h]
00649A09 fld dword ptr [edi]
00649A0B fmul st,st(3)
00649A0D fld dword ptr [edi+20h]
00649A10 fmul st,st(2)
00649A12 faddp st(1),st
00649A14 fld dword ptr [edi+10h]
00649A17 fmul st,st(3)
00649A19 faddp st(1),st
00649A1B fadd dword ptr [edi+30h]
00649A1E fld dword ptr [edi+24h]
00649A21 fmul st,st(2)
00649A23 fld dword ptr [edi+14h]
00649A26 fmul st,st(4)
00649A28 faddp st(1),st
00649A2A fld st(4)
00649A2C fmul dword ptr [edi+4]
00649A2F faddp st(1),st
00649A31 fadd dword ptr [edi+34h]
00649A34 fxch st(2)
00649A36 fmul dword ptr [edi+28h]
00649A39 fxch st(3)
00649A3B fmul dword ptr [edi+18h]
00649A3E faddp st(3),st
00649A40 fld dword ptr [edi+8]
00649A43 fmulp st(4),st
00649A45 fxch st(2)
00649A47 faddp st(3),st
00649A49 fxch st(2)
00649A4B fadd dword ptr [edi+38h]
00649A4E fld dword ptr [eax]
00649A50 fmulp st(2),st
00649A52 fxch st(1)
00649A54 fstp dword ptr [esp+20h]
00649A58 mov edx,dword ptr [esp+20h]
00649A5C fld dword ptr [eax+4]
00649A5F fmulp st(2),st
00649A61 fxch st(1)
00649A63 fstp dword ptr [esp+24h]
00649A67 fmul dword ptr [eax+8]
00649A6A mov dword ptr [ebx],edx
00649A6C mov edx,dword ptr [esp+24h]
00649A70 mov dword ptr [ebx+4],edx
00649A73 fstp dword ptr [esp+28h]
00649A77 mov edx,dword ptr [esp+28h]
00649A7B fldz
00649A7D mov dword ptr [ebx+8],edx
00649A80 fst dword ptr [esp+2Ch]
00649A84 mov edx,dword ptr [esp+2Ch]
00649A88 mov dword ptr [ebx+0Ch],edx
00649A8B mov edx,dword ptr [ecx+4]
00649A8E imul edx,dword ptr [esi+82Ch]
00649A95 mov ecx,dword ptr [esi+838h]
00649A9B lea ecx,[ecx+edx*4]
00649A9E fld dword ptr [ecx]
00649AA0 fld dword ptr [ecx+4]
00649AA3 fld dword ptr [ecx+8]
00649AA6 fld dword ptr [edi]
00649AA8 fmul st,st(3)
00649AAA fld dword ptr [edi+20h]
00649AAD fmul st,st(2)
00649AAF faddp st(1),st
00649AB1 fld dword ptr [edi+10h]
00649AB4 fmul st,st(3)
00649AB6 faddp st(1),st
00649AB8 fadd dword ptr [edi+30h]
00649ABB fld dword ptr [edi+24h]
00649ABE fmul st,st(2)
00649AC0 fld dword ptr [edi+14h]
00649AC3 fmul st,st(4)
00649AC5 faddp st(1),st
00649AC7 fld st(4)
00649AC9 fmul dword ptr [edi+4]
00649ACC faddp st(1),st
00649ACE fadd dword ptr [edi+34h]
00649AD1 fld dword ptr [edi+8]
00649AD4 fmulp st(5),st
00649AD6 fxch st(2)
00649AD8 fmul dword ptr [edi+28h]
00649ADB faddp st(4),st
00649ADD fxch st(2)
00649ADF fmul dword ptr [edi+18h]
00649AE2 faddp st(3),st
00649AE4 fxch st(2)
00649AE6 fadd dword ptr [edi+38h]
00649AE9 fld dword ptr [eax]
00649AEB fmulp st(2),st
00649AED fxch st(1)
00649AEF fstp dword ptr [esp+20h]
00649AF3 mov ecx,dword ptr [esp+20h]
00649AF7 fxch st(1)
00649AF9 fmul dword ptr [eax+4]
00649AFC fstp dword ptr [esp+24h]
00649B00 mov edx,dword ptr [esp+24h]
00649B04 fmul dword ptr [eax+8]
00649B07 mov dword ptr [esi+130h],ecx
00649B0D mov dword ptr [esi+134h],edx
00649B13 fstp dword ptr [esp+28h]
00649B17 mov ecx,dword ptr [esp+28h]
00649B1B mov dword ptr [esi+138h],ecx
00649B21 fst dword ptr [esp+2Ch]
00649B25 mov edx,dword ptr [esp+2Ch]
00649B29 fst dword ptr [esp+50h]
00649B2D mov ecx,2
00649B32 cmp dword ptr [esi+820h],ecx
00649B38 fst dword ptr [esp+54h]
00649B3C fst dword ptr [esp+58h]
00649B40 mov dword ptr [esi+13Ch],edx
00649B46 fst dword ptr [esp+5Ch]
00649B4A mov dword ptr [esp+14h],ecx
00649B4E fst dword ptr [esp+20h]
00649B52 fst dword ptr [esp+24h]
00649B56 fst dword ptr [esp+28h]
00649B5A fst dword ptr [esp+2Ch]
00649B5E jle dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+2EAh (649CAAh)
00649B64 fstp st(1)
00649B66 lea ecx,[esi+140h]
00649B6C fstp dword ptr [esp+3Ch]
00649B70 mov dword ptr [esp+18h],ecx
00649B74 jmp dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+1C5h (649B85h)
00649B76 jmp dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+1C0h (649B80h)
00649B78 lea esp,[esp]
00649B7F nop
00649B80 mov eax,dword ptr [scale]
00649B83 fstp st(0)
00649B85 mov edx,dword ptr [esi+830h]
00649B8B mov ecx,dword ptr [esp+14h]
00649B8F mov edx,dword ptr [edx+ecx*4]
00649B92 imul edx,dword ptr [esi+82Ch]
00649B99 mov ecx,dword ptr [esi+838h]
00649B9F lea ecx,[ecx+edx*4]
00649BA2 fld dword ptr [ecx]
00649BA4 fld dword ptr [ecx+4]
00649BA7 fld dword ptr [ecx+8]
00649BAA fld st(0)
00649BAC fmul dword ptr [edi+20h]
00649BAF fld st(2)
00649BB1 fmul dword ptr [edi+10h]
00649BB4 faddp st(1),st
00649BB6 fld dword ptr [edi]
00649BB8 fmul st,st(4)
00649BBA faddp st(1),st
00649BBC fadd dword ptr [edi+30h]
00649BBF fld dword ptr [edi+24h]
00649BC2 fmul st,st(2)
00649BC4 fld dword ptr [edi+14h]
00649BC7 fmul st,st(4)
00649BC9 faddp st(1),st
00649BCB fld st(4)
00649BCD fmul dword ptr [edi+4]
00649BD0 faddp st(1),st
00649BD2 fadd dword ptr [edi+34h]
00649BD5 fld dword ptr [edi+8]
00649BD8 fmulp st(5),st
00649BDA fxch st(2)
00649BDC fmul dword ptr [edi+28h]
00649BDF faddp st(4),st
00649BE1 fxch st(2)
00649BE3 fmul dword ptr [edi+18h]
00649BE6 faddp st(3),st
00649BE8 fxch st(2)
00649BEA fadd dword ptr [edi+38h]
00649BED fld dword ptr [eax]
00649BEF fmulp st(2),st
00649BF1 fxch st(1)
00649BF3 fstp dword ptr [esp+30h]
00649BF7 mov edx,dword ptr [esp+30h]
00649BFB fxch st(1)
00649BFD fmul dword ptr [eax+4]
00649C00 fstp dword ptr [esp+34h]
00649C04 mov ecx,dword ptr [esp+34h]
00649C08 fmul dword ptr [eax+8]
00649C0B mov eax,dword ptr [esp+18h]
00649C0F mov dword ptr [eax],edx
00649C11 mov dword ptr [eax+4],ecx
00649C14 mov ecx,dword ptr [esp+3Ch]
00649C18 fstp dword ptr [esp+38h]
00649C1C mov edx,dword ptr [esp+38h]
00649C20 push eax
00649C21 mov dword ptr [eax+8],edx
00649C24 mov dword ptr [eax+0Ch],ecx
00649C27 add eax,0FFFFFFF0h
00649C2A push eax
00649C2B push ebx
00649C2C lea edx,[esp+5Ch]
00649C30 push edx
00649C31 lea eax,[esp+50h]
00649C35 push eax
00649C36 mov ecx,esi
00649C38 call dgCollisionMesh::dgCollisionConvexPolygon::ClosestDistanceToTriangle (649370h)
00649C3D fld dword ptr [esp+40h]
00649C41 fld dword ptr [esp+44h]
00649C45 fld dword ptr [esp+48h]
00649C49 fmul st(0),st
00649C4B fld st(1)
00649C4D fmulp st(2),st
00649C4F faddp st(1),st
00649C51 fld st(1)
00649C53 fmulp st(2),st
00649C55 faddp st(1),st
00649C57 fld dword ptr [esp+1Ch]
00649C5B fcom st(1)
00649C5D fnstsw ax
00649C5F test ah,41h
00649C62 jne dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+2CCh (649C8Ch)
00649C64 mov ecx,dword ptr [esp+40h]
00649C68 fstp st(0)
00649C6A mov edx,dword ptr [esp+44h]
00649C6E fst dword ptr [esp+1Ch]
00649C72 mov eax,dword ptr [esp+48h]
00649C76 mov dword ptr [esp+20h],ecx
00649C7A mov ecx,dword ptr [esp+4Ch]
00649C7E mov dword ptr [esp+24h],edx
00649C82 mov dword ptr [esp+28h],eax
00649C86 mov dword ptr [esp+2Ch],ecx
00649C8A jmp dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+2CEh (649C8Eh)
00649C8C fstp st(1)
00649C8E mov eax,dword ptr [esp+14h]
00649C92 add dword ptr [esp+18h],10h
00649C97 inc eax
00649C98 cmp eax,dword ptr [esi+820h]
00649C9E mov dword ptr [esp+14h],eax
00649CA2 jl dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+1C0h (649B80h)
00649CA8 fldz
00649CAA fld dword ptr [radius]
00649CAD fmul st(0),st
00649CAF fcomp st(2)
00649CB1 fnstsw ax
00649CB3 fstp st(1)
00649CB5 test ah,5
00649CB8 jp dgCollisionMesh::dgCollisionConvexPolygon::DistanceToOrigen+307h (649CC7h)
00649CBA fstp st(0)
00649CBC xor al,al
00649CBE pop edi
00649CBF pop esi
00649CC0 pop ebx
00649CC1 mov esp,ebp
00649CC3 pop ebp
00649CC4 ret 10h
00649CC7 mov eax,dword ptr [esi+830h]
00649CCD mov edi,dword ptr [eax]
00649CCF mov ecx,dword ptr [esi+82Ch]
00649CD5 mov edx,dword ptr [esi+838h]
00649CDB imul edi,ecx
00649CDE fld dword ptr [edx+edi*4]
00649CE1 fstp dword ptr [esp+40h]
00649CE5 fld dword ptr [edx+edi*4+4]
00649CE9 fstp dword ptr [esp+44h]
00649CED fld dword ptr [edx+edi*4+8]
00649CF1 fstp dword ptr [esp+48h]
00649CF5 fst dword ptr [esp+4Ch]
00649CF9 lea edi,[edx+edi*4]
00649CFC mov edi,dword ptr [esp+40h]
00649D00 mov dword ptr [ebx],edi
00649D02 mov edi,dword ptr [esp+44h]
00649D06 mov dword ptr [ebx+4],edi
00649D09 mov edi,dword ptr [esp+48h]
00649D0D mov dword ptr [ebx+8],edi
00649D10 mov edi,dword ptr [esp+4Ch]
00649D14 mov dword ptr [ebx+0Ch],edi
00649D17 mov edi,dword ptr [eax+4]
00649D1A imul edi,ecx
00649D1D fld dword ptr [edx+edi*4]
00649D20 fstp dword ptr [esp+40h]
00649D24 fld dword ptr [edx+edi*4+4]
00649D28 fstp dword ptr [esp+44h]
00649D2C fld dword ptr [edx+edi*4+8]
00649D30 fstp dword ptr [esp+48h]
00649D34 fst dword ptr [esp+4Ch]
00649D38 lea edi,[edx+edi*4]
00649D3B mov edi,dword ptr [esp+40h]
00649D3F mov dword ptr [esi+130h],edi
00649D45 mov edi,dword ptr [esp+44h]
00649D49 mov dword ptr [esi+134h],edi
00649D4F mov edi,dword ptr [esp+48h]
00649D53 mov dword ptr [esi+138h],edi
00649D59 mov edi,dword ptr [esp+4Ch]
00649D5D mov dword ptr [esi+13Ch],edi
00649D63 mov eax,dword ptr [eax+8]
00649D66 imul eax,ecx
00649D69 fld dword ptr [edx+eax*4]
00649D6C fstp dword ptr [esp+40h]
00649D70 fld dword ptr [edx+eax*4+4]
00649D74 fstp dword ptr [esp+44h]
00649D78 fld dword ptr [edx+eax*4+8]
00649D7C fstp dword ptr [esp+48h]
00649D80 mov ecx,dword ptr [esp+40h]
00649D84 fstp dword ptr [esp+4Ch]
00649D88 lea eax,[edx+eax*4]
00649D8B mov edx,dword ptr [esp+44h]
00649D8F mov eax,dword ptr [esp+48h]
00649D93 mov dword ptr [esi+140h],ecx
00649D99 mov ecx,dword ptr [esp+4Ch]
00649D9D mov dword ptr [esi+144h],edx
00649DA3 mov dword ptr [esi+148h],eax
00649DA9 mov dword ptr [esi+14Ch],ecx
00649DAF fld dword ptr [esi+130h]
00649DB5 fsub dword ptr [ebx]
00649DB7 fld dword ptr [esi+134h]
00649DBD fsub dword ptr [ebx+4]
00649DC0 fld dword ptr [esi+138h]
00649DC6 fsub dword ptr [ebx+8]
00649DC9 fld dword ptr [esi+13Ch]
00649DCF fstp dword ptr [esp+5Ch]
00649DD3 fld dword ptr [esi+140h]
00649DD9 fsub dword ptr [esi+130h]
00649DDF fld dword ptr [esi+144h]
00649DE5 fsub dword ptr [esi+134h]
00649DEB fld dword ptr [esi+148h]
00649DF1 fsub dword ptr [esi+138h]
00649DF7 fld st(0)
00649DF9 fmul st,st(5)
00649DFB fld st(2)
00649DFD fmul st,st(5)
00649DFF fsubp st(1),st
00649E01 fst dword ptr [esp+30h]
00649E05 fxch st(4)
00649E07 fmul st,st(3)
00649E09 fxch st(1)
00649E0B fmul st,st(6)
00649E0D fsubp st(1),st
00649E0F push ecx
00649E10 fst dword ptr [esp+38h]
00649E14 fxch st(1)
00649E16 fmulp st(5),st
00649E18 fxch st(3)
00649E1A fmulp st(1),st
00649E1C fsubp st(3),st
00649E1E fxch st(2)
00649E20 fst dword ptr [esp+3Ch]
00649E24 fmul st(0),st
00649E26 fld st(1)
00649E28 fmulp st(2),st
00649E2A faddp st(1),st
00649E2C fld st(1)
00649E2E fmulp st(2),st
00649E30 faddp st(1),st
00649E32 fadd dword ptr [__real@179abe15 (6AE68Ch)]
00649E38 fstp dword ptr [esp]
00649E3B call dgSqrt (68CAE0h)
00649E40 fld1
00649E42 add esp,4
00649E45 fdivrp st(1),st
00649E47 pop edi
00649E48 fld dword ptr [esp+2Ch]
00649E4C fmul st,st(1)
00649E4E fstp dword ptr [esp+3Ch]
00649E52 mov edx,dword ptr [esp+3Ch]
00649E56 fld dword ptr [esp+30h]
00649E5A mov dword ptr [esi+110h],edx
00649E60 fmul st,st(1)
00649E62 fstp dword ptr [esp+40h]
00649E66 mov eax,dword ptr [esp+40h]
00649E6A mov dword ptr [esi+114h],eax
00649E70 fmul dword ptr [esp+34h]
00649E74 mov eax,dword ptr [ebp+14h]
00649E77 fstp dword ptr [esp+44h]
00649E7B mov ecx,dword ptr [esp+44h]
00649E7F fld dword ptr [esp+58h]
00649E83 mov dword ptr [esi+118h],ecx
00649E89 mov ecx,dword ptr [esp+1Ch]
00649E8D fstp dword ptr [esp+48h]
00649E91 mov edx,dword ptr [esp+48h]
00649E95 mov dword ptr [esi+11Ch],edx
00649E9B mov edx,dword ptr [esp+20h]
00649E9F mov dword ptr [eax],ecx
00649EA1 mov ecx,dword ptr [esp+24h]
00649EA5 mov dword ptr [eax+4],edx
00649EA8 mov edx,dword ptr [esp+28h]
00649EAC mov dword ptr [eax+8],ecx
00649EAF pop esi
00649EB0 mov dword ptr [eax+0Ch],edx
00649EB3 mov al,1
00649EB5 pop ebx
00649EB6 mov esp,ebp
00649EB8 pop ebp
00649EB9 ret 10h
--- No source file -------------------------------------------------------------
00649EBC int 3
00649EBD int 3
00649EBE int 3
00649EBF int 3
--- c:\newton_200\3dlib\sdk\physics\dgcollisionmesh.cpp ------------------------
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Marc » Thu Nov 19, 2009 6:10 pm
Just a note: I retried this after I made the heightfield determinant positive and it still crashes in this situation at the same position.
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Julio Jerez » Thu Nov 19, 2009 7:15 pm
we deal with that later, the bug fix is so that I do not get so many asserts.
plus some rotations are comming out wrong because of that.
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Marc » Thu Nov 19, 2009 7:30 pm
I just got the replacement of opcode user collisions with newtoncollisions completed. And now, this crash doesn't happen anymore. So it must have been related to the results opcode returned.
I tried moving >20 to houses multiple times and no crash anymore while it happened every time before.
As a sidenote: besides that, the bouncing increased with this change when a building is involved in the collision. Not the amount of bounces, but the energy/width of every bounce. Every time I see a bounce now, the units literally get fired into orbit
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Julio Jerez » Thu Nov 19, 2009 7:42 pm
Marc wrote:I just got the replacement of opcode user collisions with newtoncollisions completed. And now, this crash doesn't happen anymore. So it must have been related to the results opcode returned. I tried moving >20 to houses multiple times and no crash anymore while it happened every time before.
Maybe it could be that the some how the locla buffet fo eth polygon was over flowed. but let us not worried abpou that, never look into eth mouse of a gifted horse.
Marc wrote:As a sidenote: besides that, the bouncing increased with this change when a building is involved in the collision. Not the amount of bounces, but the energy/width of every bounce. Every time I see a bounce now, the units literally get fired into orbit
Is asume the this is bad, this happen when you use spheres intead of elipsis?
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Marc » Thu Nov 19, 2009 7:48 pm
Ah no, it's still related to distorted ellipsoids as far as I can tell. If I try this with perfect spheres, I can't see these bounces/fireing into orbit.
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Julio Jerez » Thu Nov 19, 2009 8:04 pm
Ok so the sphere are ok but the bug happend with elipses,
Marc wrote:Ah no, it's still related to distorted ellipsoids as far as I can tell. If I try this with perfect spheres, I can't see these bounces/fireing into orbit.
that is a signg of some numerical bug that should trigger an assert.
can you run one more test, can you try elipsi with half the aspec ratio,
say a elipsi is 2 high an 1 in radio, make it 1.5 and 1,
see if the jump is less energetic, the purpose is to see if the bug is related to a bad rotation because of the curvature of the eleisi surface at the contact
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Marc » Thu Nov 19, 2009 8:31 pm
ok I can try such things. What I already tried was
- Code: Select all
xy z
0.3 0.9 original values, bounces like you know it
1 0.9 can't see bounces
0.9 0.9 can't see bounces
after replacing opcode with newtoncollisions for houses
1 0.9 can't see bounces
0.9 0.9 can't see bounces
4 0.9 against house: huge bounces, fire into orbit
4 0.9 against terrain edges: normal bounces
0.3 0.9 against house: no bounces
0.3 0.9 against terrain edges: normal bounces
so it seems to make a differnces as well how the ellipsoid is distorted, 0.3/0.9 is distorted oposite of 4/0.9.
Also note that these hugh bounces probably also happened with 0.3,0.9 with opcode somehow. That's what I got complains about, units flying over the whole map and die etc. But I haven't seen it myself like now before.
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Julio Jerez » Thu Nov 19, 2009 8:35 pm
Ok, well hopefull when I get you fixes and I run another debug section tomorrow we can find what it is
-
Julio Jerez
- Moderator
-
- Posts: 12249
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by Marc » Thu Nov 19, 2009 8:44 pm
Ok I tried a few aspect ratios and it looks like the jump distances is related to the aspect ratio.
radiusxy 4 makes them fire in the orbit
3 makes them jump about 50
2 about 15
With 3, I've seen something new: On rather flat terrain, 3 units pushed against each other approximately symetrically from 3 directions and then jumped appart backwards at the same time about the same length. Before, I've only seen bounces between dynamic vs. static bodies but this looked like dynamic vs. dynamic can bounce as well. I've only seen this once though.
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
by Marc » Thu Nov 19, 2009 8:45 pm
Julio Jerez wrote:Ok, well hopefull when I get you fixes and I run another debug section tomorrow we can find what it is
Just wondering: you noticed that I posted the determinat positive fix on the other thread?
-
Marc
-
- Posts: 281
- Joined: Sun Mar 14, 2004 4:07 pm
- Location: Germany
-
Return to Bugs and Fixes
Who is online
Users browsing this forum: No registered users and 5 guests