• Scaling physics mesh issues
    6 replies, posted
Hi, I've been trying to scale the collision mesh (PhysObj) and have found this to work: [CODE]local xPhysObj = xEntity:GetPhysicsObject() local xMesh = xEntity:GetPhysicsObject():GetMesh() for k,v in pairs( xMesh ) do v.pos = v.pos * fScale end xEntity:PhysicsFromMesh( xMesh ) xEntity:EnableCustomCollisions()[/CODE] The big problem with , is if you collide them with stuff or "grind push" against other entities, this will create alot of collisions which lagg/jerk up the server. So yea... Advice?
Thats because PhysicsFromMesh constructs a concave object which is really laggy to do collision testing against, this cant be solved unless garry adds the functions required (GetMesh function returning each convex)
g
Wont work garry needs to provide a physics function that returns convex If you want you can use PhysicsFromMeshConvex though, but it will breaks "hollow" props
[QUOTE=Tobba;38248035]Wont work garry needs to provide a physics function that returns convex If you want you can use PhysicsFromMeshConvex though, but it will breaks "hollow" props[/QUOTE] Here this works: aTempConvex[0] = Vector( -5.906250, -5.906250, -5.906250 ) aTempConvex[1] = Vector( -5.906250, -5.906250, 5.906250 ) aTempConvex[2] = Vector( 5.906250, 5.906250, 5.906250 ) aTempConvex[3] = Vector( 5.906250, -5.906250, -5.906250 ) aTempConvex[4] = Vector( -5.906250, 5.906250, -5.906250 ) aTempConvex[5] = Vector( 5.906250, 5.906250, 5.906250 ) aTempConvex[6] = Vector( 5.906250, 5.906250, 5.906250 ) aTempConvex[7] = Vector( 5.906250, 5.906250, -5.906250 ) table.insert( aMultiConvex, aTempConvex ) xEntity:PhysicsInitMultiConvex( aMultiConvex ) xEntity:EnableCustomCollisions() And how can I render the convexes? Like debug collision draw or something [editline]30th October 2012[/editline] PhysicsFromMeshConvex() doesnt exist [editline]30th October 2012[/editline] Hmm, so model collision is put together from different cubes like brushes. I take it each one of these cubes are a convex hull. What is the vertex arrangement of 1 convex hull? [editline]30th October 2012[/editline] Anyone?
Ok so this is pretty much where I'm at. [CODE] local xPhysObj = xEntity:GetPhysicsObject() local xMesh = xEntity:GetPhysicsObject():GetMesh() local aMultiConvex = {} local aTempConvex = {} local nCount = 0 for k,v in pairs( xMesh ) do v.pos = v.pos * fScale if( nCount < 32 ) then table.insert( aTempConvex, v ) nCount = nCount +1 else table.insert( aMultiConvex, aTempConvex ) aTempConvex = {} nCount = 0 end if( nCount == 32 && !aMultiConvex[0] ) then table.insert( aMultiConvex, aTempConvex ) aTempConvex = {} nCount = 0 end end xEntity:PhysicsInitMultiConvex( aMultiConvex ) xEntity:EnableCustomCollisions()[/CODE] I dont know anymore - Garry needs to implement a GetConvexMeshCount() and GetConvexMesh( nIndex ). Then everything would be fine. gm_queryphys.dll did this but it doesn't work anymore... Unless someone has a working version and could share it!
[QUOTE=Tingle1989;38249650]Ok so this is pretty much where I'm at. I dont know anymore - Garry needs to implement a GetConvexMeshCount() and GetConvexMesh( nIndex ). Then everything would be fine. gm_queryphys.dll did this but it doesn't work anymore... Unless someone has a working version and could share it![/QUOTE] Any news on this?
Sorry, you need to Log In to post a reply to this thread.