Group of rocks decrease FPS from 150 to 90-100FPS this is normal?

Hi there.After optimize my game reducing point lights to just 1 in level 2 got 150-170FPS but when i put a rocks see pictures the FPS reduce dramaticaly to 90-100FPS. The object with all rocks have a 2400 faces. This is normal.Can i make anythong to improve performance with this rocks? Its 6 rocks with 384 faces its lowpoly,




thanks

could be too many collisions, you could make the visual rocks nocollision, and then make a lower poly object around them as invisible static.
another problem could be that the rocks are rigid body? in that case, they should not be. if you need them to fall as part of a trigger event, parent them to an armature and run an animation. if they are static make it a static object, and if you need them to be part of the gameplay, parent them as nocollision to a lower poly rigid body. reduce the collisions as much as posible.
could be something else, activate show framerate to see what is using more resources, if it’s rasterizer (video), physics, etc.

what does the material look like? texture size?

orien-nayar diffuse is the slowest, only use under extreme conditions.

specular is a costly calculation. setting black or intensity zero disables it and saves power. same with lamps, unchecking glossy on select lamps where not needed helps greatly.

not a rigid body you tell no collision is better to performance of static?

dont understand what do you mean.
i use a cyclers render material and BAKE just that the texture is a 1024x1024 and image have just 400kb texture not problem.Specular is 0.0 and i just checked normal map in texture set 0.15.But and faces? 2400 faces i think this is a problem?

no it does not. turning specular to 0 does not stop the pipeline from calculating specular reflection, it just multiplies by zero instead of other value.

so it’s a static? ok, imagine that you have a rock with details, the physics do not need to take every detail into consideration, just the aproximate shape of the rock. so you set those rocks to nocollision, they are there to be seen, the high quality model is just visual, and then add a simpler object, something with 20, 40 or 100 polys with the APROXIMATE shape of the rocks, that will be there to stop objects from going thru and getting impacts, and you make it invisible and static. that will reduce the physics calculation.

But and faces? 2400 faces i think this is a problem?

you can have as many polygons as the computer is able to handle, in my 10 year old computer that’s around 100000 polygons per scene. that is, the objects that will be visible to the camera at the same time. you can put more polygons in the level and they will be hidden by scene culling and behind other objects. that will use video.
but physics must be as simple as posible because it’s hadled by the processor, the more physics objects you add, the more proccesing power is needed.
it all depends on what computer you are using, but 10000 polys should be fine in all computers (that are capable of running blender)

FPS is fine as long as it’s over 30, some people like playing at 60, but the human eye can’t see more than that so all those fotograms are wasted.

to really see what the problem is, you have to go to the game menu and toggle show framerate and profile and run the game. that will show you what part of your game is using more resources so you can optimize it properly.

TY bingo! change to no collision incredible back FPS to 150-170 using now 6 cubes invisible like static same effect.
Thanks in advance

peoples are crazy playing doom 4 in 4 k with 200 fps beleive. machine cost estimate U$5000

in a small room with 100 point lights, setting the spec to black boosted the fps. will create a sample blend if needed.

lol 100 lamps never in bge its crazy i used udk3 and we never uses more of 20 lamps and there we can add remove all the time lamp is a object to C++.

if you never know how far you can push your limits, you will never know your limits.

i love pushing things to the breaking point. when working in extremes, small things make big differences.

yeap 2400 faces collission processing and now 24 just thats animal.performance is my favorite variable to FPS.

Can I pass all the trees to the no collision physcs and make a static only on the trunk with cube invisible because it will only have the right collision there?

yes. also you can use any shape (not just cubes) as long as it is low poly. if it’s a really simple shape you might wanna use one of the default collision shapes (cube, cilinder, sphere, convex) because they are more efficient than a mesh of the same shape.

your video card could have some built-in feature in the architecture that detects zeroes, or it’s a bug with too many lights and it’s just the pipeline collapsing and discarding calculations, or something else.
the math and the bge pipeline are clear, it is receiving a 0.0 and doing the same calculations as if it was 0.1 or 0.001, it’s like hiding the trash under the carpet, performace should be the same.

thats is a pandora box to trees and vegetation on bge and in any game engine.no collision and level of details.
thanks.

i proved with the attached file that the calculations are per-material. each face sends its material to the render, and the render displays the result.

System:

  • i7-3770 @ 4.1 ghz
  • gtx 970 4gb - single 1920x1080 DP
  • 16gb 1600mhz

100 point lights - 6 quads - 12 faces - lambert/cooktor

1 material - 1 mesh

  • 6 quads with specular 108 fps
  • specular black in material A - 235 fps
  • specular unchecked in lamp - 235 fps
  • shaders unchecked in GLSL - 235 fps

2 materials (4 quads A, 2 quads B) - 1 mesh

  • 6 quads with specular - 104 fps
  • material A black specular - 137 fps*
  • material B black specular - 145 fps*
  • no specular A or B - 230 fps

notice how the test with 2 unique materials decreased fps. this concludes each added material has a performance hit.

*(this seems to indicate screen area the material is taking up affects performance. suggesting a per-pixel calculation)

lights.blend (630.8 KB)