ok a few things I need help understanding...(for those who will say optimize etc... I have, believe me as much as possible)
firstly starting with physx v7.0b of Rad.
ok I just noticed that I made a project with 38 car (shadows off and no collisions except with the environment) objects and 1 terrain and 1 gravity object. and runs at the same performance whether i enable (hw) or leave it at (sw) modes. but if i add any extra cars frame rate drops 2fps for every extra car. so is that meant to happen as I thought there would be a big benefit other than stability which is obviously improved. but (sw) and (hw) seem to be identicle on my system. so curious as to why that is...
secondly...
I just made an addon that is basically ejects bullet shells from a location (skinmesh master location).
the source contains 25 rigid body's(each is just a single sphere).each rigid body has it's own force and gravity object attached to it(now these bodies need to have their own for and and gravity as explained in a second), and a master skinmesh for the visual bullet shells from which imposters are made from but by default there is 25 imposter representing the rb's and 25 imposters for when the rb speed is less than x it moves the rb out of the way and places a free imposter at that location so that the rigid body's can be used again and again to eject a visual bullet shell from a weapon. when each rigid body is finnished falling to the ground itmoves to some location out of the game area and forces are stopped as is gravity and velocity and spin are set to zero.
that that in a nutshell and it works brilliantly. however...
after I add this addon to my project it runs fine but I need more than one of these and as soon as I add the second one, 3drad fps is zero and never updates and in the editor it drains to about 15-20 fps.
now in this scenaria I wonder what the bottle neck is. I was thinking maybe it was that I have a gravity and a force object for each rigid body and maybe there are too many internal check or something but that sort of defeats the purpose of useing the objects as to me they are just 3impacts iBodyAccelerationApply() function made easier to use. if that is the bottle neck is it possible to add this function to the script to save haveing to link all the force object but only if it is and if it would be faster.
I thought maybe collision couples but each rb has one collision and that is with the ground not eachother. but surely 3drad can handle 50 collisions going on at once with the same singular .ply rb (sphere to ply). and I'm sure I've had many more rb in 3Impact that only collided with the ground when not with eachother.
in my project before I import the addon have a 150 objects in total:
26 x scipts of average length nothing over the top.
1 x sunlight
56 x skinmeshes (no shadows)
33 x rb (5 are .ply's)
2 x camera( 1 is always disabled)
2 x exit fades
1 x text print
4 x gravity
4 x force
10 x joints
12 x groups (used as deviders not linked to anything)
so I'm adding an extra 80 objects behind the scenes with each bullet shell addon with 4 objects exposed in total (2xscripts,1x skinmesh and a .ply rigid body)
so although 80 object may sound like alot in 3Impact that wouldn't be much as 50 of those are force and gravity objects 25 are rigid bodies, 1 skinmesh and 3scripts in total.
for a grand total of 310 objects in the project.
an alternative example is if I have a project with just 4 of the same bullet shell ejection addons the project runs at about 15 fps i the editor. for a total of 320 object.
so in sumation(really sorry about this being so long but I had to explain myself properly) whether the objects are simple or complicated about 320 on my system irespective of the new physx system being implemented will no allow more objects than this to be added.
is there anything that can be done to allow for less internal check or more objects. would a 3drad version of 3Impacts iBodyAccelerationApply() be faster from a script than useing force and gravity objects?
so compareing with physx (which looks like it will be limited by 3drads limits)
each car would be made of 5 RB's, 4 wheel joints an force object * 38 is 380 + 1 gravity and 1 terrain. note: cars have no shadows or collision with eachother so without those things there would be a scaled reduction to around 300 objects aswell).
as the only way to add rigid bodies is one at a time so the list gets filled up fast if you just need an array of simple spheres to not collide with eacchother but to simulate falling for other objects etc.
so I guess I'm asking, can you see a bottle neck Fernando with the above information and can anything be done to increase performance? as I have had a version of this project done in 3Impact and it ran fine and although better optimised now and useing 3drad. I can't go back to 3Impact as it lacks the functionality that is in Rad and I was really hopeing to not have to cut alot of bling that can be done in 3Impact. if not I'll just have to work within these limitations but maybe I'm not understanding something.
thanks for any feedback on this
firstly starting with physx v7.0b of Rad.
ok I just noticed that I made a project with 38 car (shadows off and no collisions except with the environment) objects and 1 terrain and 1 gravity object. and runs at the same performance whether i enable (hw) or leave it at (sw) modes. but if i add any extra cars frame rate drops 2fps for every extra car. so is that meant to happen as I thought there would be a big benefit other than stability which is obviously improved. but (sw) and (hw) seem to be identicle on my system. so curious as to why that is...
secondly...
I just made an addon that is basically ejects bullet shells from a location (skinmesh master location).
the source contains 25 rigid body's(each is just a single sphere).each rigid body has it's own force and gravity object attached to it(now these bodies need to have their own for and and gravity as explained in a second), and a master skinmesh for the visual bullet shells from which imposters are made from but by default there is 25 imposter representing the rb's and 25 imposters for when the rb speed is less than x it moves the rb out of the way and places a free imposter at that location so that the rigid body's can be used again and again to eject a visual bullet shell from a weapon. when each rigid body is finnished falling to the ground itmoves to some location out of the game area and forces are stopped as is gravity and velocity and spin are set to zero.
that that in a nutshell and it works brilliantly. however...
after I add this addon to my project it runs fine but I need more than one of these and as soon as I add the second one, 3drad fps is zero and never updates and in the editor it drains to about 15-20 fps.
now in this scenaria I wonder what the bottle neck is. I was thinking maybe it was that I have a gravity and a force object for each rigid body and maybe there are too many internal check or something but that sort of defeats the purpose of useing the objects as to me they are just 3impacts iBodyAccelerationApply() function made easier to use. if that is the bottle neck is it possible to add this function to the script to save haveing to link all the force object but only if it is and if it would be faster.
I thought maybe collision couples but each rb has one collision and that is with the ground not eachother. but surely 3drad can handle 50 collisions going on at once with the same singular .ply rb (sphere to ply). and I'm sure I've had many more rb in 3Impact that only collided with the ground when not with eachother.
in my project before I import the addon have a 150 objects in total:
26 x scipts of average length nothing over the top.
1 x sunlight
56 x skinmeshes (no shadows)
33 x rb (5 are .ply's)
2 x camera( 1 is always disabled)
2 x exit fades
1 x text print
4 x gravity
4 x force
10 x joints
12 x groups (used as deviders not linked to anything)
so I'm adding an extra 80 objects behind the scenes with each bullet shell addon with 4 objects exposed in total (2xscripts,1x skinmesh and a .ply rigid body)
so although 80 object may sound like alot in 3Impact that wouldn't be much as 50 of those are force and gravity objects 25 are rigid bodies, 1 skinmesh and 3scripts in total.
for a grand total of 310 objects in the project.
an alternative example is if I have a project with just 4 of the same bullet shell ejection addons the project runs at about 15 fps i the editor. for a total of 320 object.
so in sumation(really sorry about this being so long but I had to explain myself properly) whether the objects are simple or complicated about 320 on my system irespective of the new physx system being implemented will no allow more objects than this to be added.
is there anything that can be done to allow for less internal check or more objects. would a 3drad version of 3Impacts iBodyAccelerationApply() be faster from a script than useing force and gravity objects?
so compareing with physx (which looks like it will be limited by 3drads limits)
each car would be made of 5 RB's, 4 wheel joints an force object * 38 is 380 + 1 gravity and 1 terrain. note: cars have no shadows or collision with eachother so without those things there would be a scaled reduction to around 300 objects aswell).
as the only way to add rigid bodies is one at a time so the list gets filled up fast if you just need an array of simple spheres to not collide with eacchother but to simulate falling for other objects etc.
so I guess I'm asking, can you see a bottle neck Fernando with the above information and can anything be done to increase performance? as I have had a version of this project done in 3Impact and it ran fine and although better optimised now and useing 3drad. I can't go back to 3Impact as it lacks the functionality that is in Rad and I was really hopeing to not have to cut alot of bling that can be done in 3Impact. if not I'll just have to work within these limitations but maybe I'm not understanding something.
thanks for any feedback on this