Performance Issue w/ Small Scene

So I basically have just 2 rooms, a small one and a big one, and I seem to have a performance drop, I tried to keep the poly count as low as possible and as efficient as possible while I modeled it in 3DS.

With my gun in hand, and my player right in the corner facing both rooms, this is that stats I get:

I’m not familiar with what Draw Calls and Tris are, I just know what Verts are.

I also noticed that the more lights I add to my scene, the lower the performance goes (by unusually a lot).

The lowest FPS I’m getting is 15, but when I walk to the center of the scene, the fps shoots up to a good 45 FPS.

I also noticed that playing my game in the actual game engine runs slow (15 fps at lowest), then when I build it and run it through the exe, it runs quite smooth (30 fps at lowest).

As a side note, I have a fps counter on my GUI just to test the fps, and there are times where I get this error when during when I play, I’m not sure what it is but it doesn’t happen all the time. This is the error:

OverflowException: Number overflow.
FPSCounter.Update ()   (at Assets\Misc Scripts\FPSCounter.js:5)

As a final note, I see that the fps counter(the one I made on the GUI) fluctuates wildly at certain times during my game.

Right now this isn’t a huge issue, but as I progress on my game, there will be a lot more rooms and such, and I don’t want my fps to be dropping to 2.

Thanks,

Only using Barack Obama budget math can you consider 650k triangles as a ‘small low poly scene!’

Each material you use, each pixel light on a mesh will cause your scene to slow down. Think of a draw call as the slow interaction between your computer and the video card. This is the number you really want to keep low.

Watch the following video for detailed information on graphics performance issues and ways to address them.

http://unity3d.com/support/resources/unite-presentations/performance-optimization

Hah, I like your sense of humor :stuck_out_tongue:

Good news was that I took a look at the package of optimizing performance, and I took a script from that, and put it into my game, and it doubled my fps, (30 on average). It was the combine children script, and it saved me.

Bad news is that the video to the link you sent me doesn’t load so I couldn’t get a chance to watch it:(

This is the updated Stats:

I noticed that the draw call went a good 66% down which is great, So my last question is that are these stats reasonable for the amount of verts I have in my scene? Should I be getting much more FPS or is this fine?

I also get an abundance of errors, almost all of these I don’t understand…

Not at all. From draw calls to verts and Vram usage, if you viewed that scene on a GMA950 or other intergraded video card it would burst into flames. It looks like you have way too much geometry, way too many lights and doing something funky with massive textures for a small two room scene.

You need to think about baking geometry into normal maps, baking lightmaps to remove pixel lights, etc.

The video is in quicktime format and loads fine for me. Perhaps you can save it to disk and try viewing it that way. It’s valuable enough information for you that I’d suggest jumping through hoops trying to resolve your issue with it.

Okay so how do I bake geometry into normal maps, and bake lightmaps to increase my fps?

Thanks for helping me through this

geometry → normalmaps: through tools like melody from ati and the nvidia counterpart where you have highpoly and lowpoly versions and generate a NM from the difference

For normal maps you’re going to have to use an external tool. Most modern 3d apps have tools to bake normal maps from high resolution geometry onto lower resolution geometry.

For lightmaps I’d wait until Unity 3 and use Beast :wink:

So when I export my level into FBX format (From 3DS Max) theres no baking geometry option, however I did see this option…

Geometry:
Split per-vertex normals
Convert geometry used as bones

As a default, the first one was unchecked, the second was checked. So what do those mean? Would it help in my optimization?

Edit: Well I tried both, with split per-vertex normals and without, there wasn’t much of a difference, but im still not sure where and how to bake my geometry…