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,
could be too many collisions, you could make the visual rocks nocollision, and then make a lower poly object around them as invisiblestatic.
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.
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.
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.
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.
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.