Jump to content
Sign in to follow this  

Recommended Posts

I got problem: I am using East Mercs in my mission. But I got normally FPS about 30-35. WHen I putted in close range about 10 your mercs, FPS... went down to 12-20!

Its totally unplayable! Someone got sollution for this?

E6550 Core 2

2GB RAM

Radeon X1950 Pro 256MB

Last format - 1 year ago

20GB addons installed and running

Original ArmA 1.14

I would hazard a guess that it's the section count issue that some people have been mentioning off and on in this thread.

Well, the section count is only one factor, but it's not the only reason. I will update all of the models as soon as I know what exactly is killing the performance...

Share this post


Link to post
Share on other sites

did you check the thread in my sig?

Share this post


Link to post
Share on other sites
did you check the thread in my sig?

Yes, I did, I tried some things mentioned there, but performance is still not as good as with standard BI models...

help.gif

Share this post


Link to post
Share on other sites

hm your addon is quite big.

Do you use 2048 textures for each model?

And 2-3 of each for one model?

You might wanna provide some data. Could help to get ideas.

Share this post


Link to post
Share on other sites
hm your addon is quite big.

Do you use 2048 textures for each model?

And 2-3 of each for one model?

You might wanna provide some data. Could help to get ideas.

On most of the models I use one 2048x1024 texture

Share this post


Link to post
Share on other sites

Thanks for the infos!

Just pointing out things that came to mind from looking at the MLODs:

1) Your models use prefershadowvolume = 1

BI models almost never do this. They dont set this value at all often.

Choose which shadow casting technique will be used. 0 = Shadow Buffer; 1 = Shadow Volume

2) Any particular reason you have step and xstep defined?

Step a xStep values for movement settings, they are generated automatically when you optimize animation

xsize=0.99; ysize=0.528; xcount=6; ycount=5

used by animated flags, obsolete

3) LOD - these look promising.

From what I can see you have 5000 to 8000 face for the 1st LOD.

However almost the same for the second LOD.

While it should be like 60% of the fromer.

And the remain LOD all only have 250.

Probably those won't be used be the engine much apart from

at very high distance.

This means your models could stay in quite high 1st and 2nd

LOD for most of the time.

4) Sections - well at times the first LOD has 7, while BI do have 4-6.

Hope it helps.  smile_o.gif

Share this post


Link to post
Share on other sites
Thanks for the infos!

Just pointing out things that came to mind from looking at the MLODs:

1) Your models use prefershadowvolume = 1

BI models almost never do this. They dont set this value at all often.

Choose which shadow casting technique will be used. 0 = Shadow Buffer; 1 = Shadow Volume

2) Any particular reason you have step and xstep defined?

Step a xStep values for movement settings, they are generated automatically when you optimize animation

xsize=0.99; ysize=0.528; xcount=6; ycount=5

used by animated flags, obsolete

3) LOD - these look promising.

From what I can see you have 5000 to 8000 face for the 1st LOD.

However almost the same for the second LOD.

While it should be like 60% of the fromer.

And the remain LOD all only have 250.

Probably those won't be used be the engine much apart from

at very high distance.

This means your models could stay in quite high 1st and 2nd

LOD for most of the time.

4) Sections - well at times the first LOD has 7, while BI do have 4-6.

Hope it helps.  smile_o.gif

Tanks for helping me out here!

1.) removed it, but it didn't change anything

2.) removed it, but it didn't change anything

3.) checked it, lowering the polycount of the 2nd Lod didn't change anything

4.) I'm making my performance checks with this model

merc1jc5.jpg

It has 3 sections, but the performance is worse then with any BImodel

I tested the performance again with this model:

merc8qa2ku6.jpg

which is just a resistance captive model with a cap. Although it's a BI model using BI textures the performance is as bad as it is with my models so I assume that the reason for the bad performance might be an error in my config.cpp

edit:

the reason was the config, it seems to run much smoother now, I will update the pack soon...

Share this post


Link to post
Share on other sites

And here it is:

download

Civilians by SchnapsdroSel

v1.0 Beta

- corrected config.cpp to improve the performance

- added "heavy metal guy" model (request from belgerot)

- some minor model changes

merc2mi2.jpg

merc3qr8.jpg

Share this post


Link to post
Share on other sites

Awesome news, thank you Schnapsdrosel!

I'm glad to see that the config.cpp file has been corrected, hopefully this will lead to better performance. I myself have experienced it from time to time so I am glad this quality pack is improved. Thanks for creating the fellow, too! pistols.gif

Share this post


Link to post
Share on other sites

Mediafire.com all the way wink_o.gif

I'll try them out tomorrow and let you know about the performance smile_o.gif

Share this post


Link to post
Share on other sites

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">corrected config.cpp to improve the performance

Can you please share some more details here?

It might help other people too. From my compare the main thing

i could see is that you have binarized the rvmats now as well.

Do mean that or sth else?

Quote[/b] ]checked it, lowering the polycount of the 2nd Lod didn't change anything

Well how does your test scenario look like?

Having more working LODs should help the performance in every

case - even if there are other areas that need attention or fixing.

two tips regarding your current config.cpp

1) you should move cfgModels and cfgSkeletons in a file called

model.cfg. its also a text file yet with cfg as extension.

it will merge that data into the models itself and delete the file

during binarization.

2) you define many values for each model again and again.

either you use defines to define it only once and include the list

of same values

or you use a base class in between the base class you use now

for your models (civilian, SoldierGB)

that would look like this:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class Women: Civilian

{

moves = "BI_PeopleMoves";

vehicleClass = "BB_Mercenary5";

woman = "true";

soundEngine[] = {"\ca\characters\Data\sound\breath", 0.05, 2.5};

hitSound1[] = {"\ca\Characters\Data\Sound\Hit11", db-25, 1.4};

hitSound2[] = {"\ca\Characters\Data\Sound\Hit12", db-25, 1.4};

hitSound3[] = {"\ca\Characters\Data\Sound\Hit13", db-25, 1.4};

hitSound4[] = {"\ca\Characters\Data\Sound\Hit14", db-25, 1.4};

hitSound5[] = {"\ca\Characters\Data\Sound\Hit15", db-25, 1.4};

hitSound6[] = {"\ca\Characters\Data\Sound\Hit16", db-25, 1.4};

hitSound7[] = {"\ca\Characters\Data\Sound\Hit17", db-25, 1.4};

hitSound8[] = {"\ca\Characters\Data\Sound\Hit18", db-25, 1.4};

hitSound9[] = {"\ca\Characters\Data\Sound\Hit19", db-25, 1.4};

hitSound10[] = {"\ca\Characters\Data\Sound\Hit20", db-25, 1.4};

hitSound11[] = {"\ca\Characters\Data\Sound\Hit21", db-25, 1.4};

hitSound12[] = {"\ca\Characters\Data\Sound\Hit22", db-25, 1.4};

hitSound13[] = {"\ca\Characters\Data\Sound\Hit23", db-25, 1.4};

hitSound14[] = {"\ca\Characters\Data\Sound\Hit24", db-25, 1.4};

hitSound15[] = {"\ca\Characters\Data\Sound\Hit25", db-25, 1.4};

hitSound16[] = {"\ca\Characters\Data\Sound\Hit26", db-25, 1.4};

hitSound17[] = {"\ca\Characters\Data\Sound\Hit27", db-25, 1.4};

hitSound18[] = {"\ca\Characters\Data\Sound\Hit28", db-25, 1.4};

hitSound19[] = {"\ca\Characters\Data\Sound\Hit29", db-25, 1.4};

hitSound20[] = {"\ca\Characters\Data\Sound\Hit30", db-25, 1.4};

hitSounds[] = {"hitSound1", 0.05, "hitSound2", 0.05, "hitSound3", 0.05, "hitSound4", 0.05, "hitSound5", 0.05, "hitSound6", 0.05, "hitSound7", 0.05, "hitSound8", 0.05, "hitSound9", 0.05, "hitSound10", 0.05, "hitSound11", 0.05, "hitSound12", 0.05, "hitSound13", 0.05, "hitSound14", 0.05, "hitSound15", 0.05, "hitSound16", 0.05, "hitSound17", 0.05, "hitSound18", 0.05, "hitSound19", 0.05, "hitSound20", 0.05};

};

class Female_Civilian3: Women

{

displayName = "Female Civilian 4";

model = "\bb_civilians\Woman1.p3d";

class Wounds

{

tex[] = {};

mat[] = {...};

};

};

Share this post


Link to post
Share on other sites
<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">corrected config.cpp to improve the performance

Can you please share some more details here?

It might help other people too. From my compare the main thing

i could see is that you have binarized the rvmats now as well.

Do mean that or sth else?

The main error that caused the problem was, that the skeleton in my config.cpp was wrong defined.

So I exchanged this:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">            class Merc_Skeleton: Default

           {

                        skeletonName = "OFP2_ManSkeleton";

                        sectionsInherit="Head";

                        sections[] =

{"osobnost", "Head_Injury", "Body_Injury", "l_leg_injury", "l_arm_injury","r_leg_injury", "r_arm_injury","weapon","","launcher","","Camera","","Spine","","Spine1","","Spine2","","Spine3","","Pelvis","","LeftShoulder","","LeftArm","","LeftArmRoll","","LeftForeArm","","LeftForeArmRoll","","LeftHand","",

"LeftHandRing","","LeftHandRing1","","LeftHandRing2","","LeftHandRing3","","LeftHandPinky1","","LeftHandPinky2","","LeftHandPinky3","","LeftHandMiddle1","","LeftHandMiddle2","",

"LeftHandMiddle3","","LeftHandIndex1","","LeftHandIndex2","","LeftHandIndex3","","LeftHandThumb1","","LeftHandThumb2","","LeftHandThumb3","","RightShoulder","","RightArm","",

"RightArmRoll","","RightForeArm","","RightForeArmRoll","","RightHand","","RightHandRing","","RightHandRing1","","RightHandRing2","","RightHandRing3","","RightHandPinky1","",

"RightHandPinky2","","RightHandPinky3","","RightHandMiddle1","","RightHandMiddle2","","RightHandMiddle3","","RightHandIndex1","","RightHandIndex2","","RightHandIndex3","",

"RightHandThumb1","","RightHandThumb2","","RightHandThumb3","","LeftUpLeg","","LeftUpLegRoll","","LeftLeg","","LeftLegRoll","","LeftFoot","","LeftToeBase","","RightUpLeg","",

"RightUpLegRoll","","RightLeg","","RightLegRoll","","RightFoot","","RightToeBase",""};

           };

with that:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> class Merc_Skeleton : Default {

sections[] = {"osobnost", "Head_Injury", "Body_Injury", "l_leg_injury", "l_arm_injury", "r_arm_injury", "r_leg_injury", "clan"};

skeletonName = "OFP2_ManSkeleton";

};

and suddenly it ran much smoother. Binarizing the rvmats was something I did in the process of finding the performance killer...

Quote[/b] ]checked it, lowering the polycount of the 2nd Lod didn't change anything

Well how does your test scenario look like?

Having more working LODs should help the performance in every

case - even if there are other areas that need attention or fixing.

I did some simple fps tests, all I meant was that a 2nd lod with a maybe little too big polycount is not the root of the performance problems.

two tips regarding your current config.cpp

1) you should move cfgModels and cfgSkeletons in a file called

model.cfg. its also a text file yet with cfg as extension.

it will merge that data into the models itself and delete the file

during binarization.

2) you define many values for each model again and again.

either you use defines to define it only once and include the list

of same values

or you use a base class in between the base class you use now

for your models (civilian, SoldierGB)

1.)I checked some cpps of other addons to find out where my error was, and all the configs I looked at (also Jonny´s Marines) had cfg models and cfg skeleton defined in their cpp. So do I really have to move these from my cpp to the model.cfg? What would it change? Does it effect the performance in any way?

2.)I know I could shorten the config easily, but again what would it change other than make it a few KB's smaller?

Thanks for your  help.gif

Share this post


Link to post
Share on other sites

Thanks for the explanation Schnapsdrosel smile_o.gif

Interesting find with the cfgSkeletons.

Quote[/b] ]2.)I know I could shorten the config easily, but again what would it change other than make it a few KB's smaller?

DRY - dont repeat yourself. It is a coding idea.

It helps avoiding mistakes when you need to update your code.

Just change in one point instead of x different. Saves time. smile_o.gif

Quote[/b] ]and all the configs I looked at (also Jonny´s Marines) had cfg models and cfg skeleton defined in their cpp. So do I really have to move these from my cpp to the model.cfg? What would it change? Does it effect the performance in any way?

You don't have to as it works. However performance should be

(slightly) better if the engine had the required info where it

needs it.

Taking other people as example is not always a good idea,

especially most people don't like configs. wink_o.gif

Share this post


Link to post
Share on other sites

As far as I can tell the performance has really improved with the 1.0 BETA.

My method of testing:

Place 10 BIS civs in front of you in the editor, measure FPS

Then place 10 new civs and compare the framerate.

Here are some results:

First version: 30FPS difference

Second version: 20FPS difference

This version: 1FPS difference

However, all test has been done with HD4870. Would appreciate if somebody else could check it out wink_o.gif

Share this post


Link to post
Share on other sites

Hi Schnapsdrossel,

thank you for these great civilians!

Maybe this is a stupid question but...

Since you separated the civilian pack from the mercs pack: Which one is the latest version of the mercenaries for me to download, if I want them? Is it V. 0.5? (because the first post of the thread shows such a information...)

edit: SchnapsdroSel, sorry biggrin_o.gif

Share this post


Link to post
Share on other sites

1) you should move cfgModels and cfgSkeletons in a file called

model.cfg. its also a text file yet with cfg as extension.

it will merge that data into the models itself and delete the file

during binarization.

2) you define many values for each model again and again.

either you use defines to define it only once and include the list

of same values

or you use a base class in between the base class you use now

for your models (civilian, SoldierGB)

1.)I checked some cpps of other addons to find out where my error was, and all the configs I looked at (also Jonny´s Marines) had cfg models and cfg skeleton defined in their cpp. So do I really have to move these from my cpp to the model.cfg? What would it change? Does it effect the performance in any way?

2.)I know I could shorten the config easily, but again what would it change other than make it a few KB's smaller?

Thanks for your  help.gif

Re 1: It's a big no-no to put the cfgModels/-Skeletons in the config.cpp and not in the model.cfg. In your config for example, you overwrite OFP2_ManSkeleton and Head for all other existing addons, which definitely brings some bugs etc with other addons. As these are classes used by BI, you can't even be sure that it doesn't break ArmA content. That's why you should put it in the model.cfg, then it does not change the config classes "globally", but just for the model it is attached to. smile_o.gif

Re 2: It's way easier to maintain then. Whenever you want to change/update/add something, you have less work. Also, it is easier to read. As a last point, you could e.g. put displayName = "Civlian" into the base class and in all public classes you can put accuracy = 1000. This way you have the correct names displayed in editor, but ingam AIs do not report "Civilian 7, 100m", but "Civilian, 100m".

You see? wink_o.gif

Share this post


Link to post
Share on other sites

@ "Q" Thanks for the heads up on the oac replacment for the civs. I just noticed it in the diabled folder of your @oac-optional-unit-replacement folder notworthy.gif However i was thinking about a replacment that would work without the oac mod.

Share this post


Link to post
Share on other sites

It does work without OAC.

As OAC uses the default classes of male civilians.

They were not changed in the naming between OFP and ArmA.

You get one an error message if you haven't loaded the

oac_compatibility addon, but no problem. Just click it away and go on.

Or download the PROPER version with only the OAC requirement

removed. wink_o.gif

proper_bb_civilians_replacement.pbo

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×