May 23, 2012, 02:11:13 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Please report any bugs or issues that you might be encountering with the Beta in the Support System so that we can better keep track of any oustanding issues that may come up.

GameCore Support System
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: List of things to do for speed optimization  (Read 1101 times)
acocq
Full Member
***
Posts: 164



View Profile
« on: July 20, 2009, 05:16:59 AM »


Just thought I'd start a thread with some tips / ideas on how to get the most "speed" out of GC (some will be obvious basic stuff, some may not be ...)

How about adding your experiences to this list ?

1.) Keep an eye on the object polycount (yup ... motherhood statement  Wink)
2.) Use LODs
3.) Use "simple" collision objects (either Bounding Box etc. or a simplified mesh)
4.) Use Occluder functionality
5.) Set up your terrain so it "hides" unneeded objects (e.g. curvy hillside paths) in combination with Clip Plane
6.) Use environment FOG

Cheers,
Andreas
Logged

__________________________
Easy to use ... is easy to say ! Wink
Squat
Hero Member
*****
Posts: 592


View Profile
« Reply #1 on: July 20, 2009, 01:27:13 PM »

Good list, covers most of it. I only have some minor tips that are mostly obvious. However, your #1 isn't that big of a deal and it's getting more so as we travel through time.

1) Texture your LOD's with a single layer, minus as many textures as you can get away with...ie., lose the spec and normal maps and reflections. You can trim the surface complexity down through the entire range of LOD's. So the 2nd level may contain some surface details, but level 3 should probably be a diffuse map alone.

1b) Shoot for 6 LOD's on all objects and use fading on ALL of it.

2) Take advantage of object distance fading in addition to occlusion and LOD's. An object around a bend that can't be seen has no business trying to draw until you're around the bend. Manually check these distances by placing your camera at the apex of the blocking corner and trim the setting from there. Dont' allow your final LOD to have infinite draw. The engine will cull it at the minimum size, that's most likely later than necessary.

3) Bake as much of your lighting into lightmaps as you possibly can and avoid using area lights as much as possible. Also avoid too many spotlights, even though they're truly awesome looking and fun to play with, they drop the FPS significantly...shadow casting ones are ten fold.

4) Don't go nuts with the physics settings unless it's a strict environment, like a physics game. 60/10 is a good starting point and going over 60 is dangerous in a full-scale game. For a larger game that's suffering FPS, 30/5 seems to be close to the minimum for any kind of reliable movement and collision. Best bet is to lessen the amount of physics objects or trim the environment.

5) For collisions, I've found a viable method to be building them out of the regular editable boxes. Being sure to name the very first one so that convention carries through, (or you will go nuts trying to select them later) you'll end up with a large groupable mass of very light on the CPU boxes. That can be exported to .obj so it can be added to moving objects like vehicles or just kept as separate boxes for static objects. Commenting out everything in the .opr except the collision info effectively makes them invisible, walkable surfaces.

6) I can no longer find the performance tracking and scene filtering by surface count, render time...etc. That was helpful and may be only in the pro version now? Or I just missed it. I used to find it where you sort for lights, physics objects, hidden objects...etc. I thought. Anyway, I gave it a good hunt in 2.0.5 and didn't find it.

7) Remember the exported game is more optimized than the editor testing environment, so final performance still has some room for hope. If you wanna smash that hope, export the game and see how it "really" runs.
Logged
BigDaz
Sr. Member
****
Posts: 345


HardCore


View Profile
« Reply #2 on: July 20, 2009, 02:34:20 PM »

I think using 'instances' of objects as much as possible is a good tip. I.e. It's preferable to import 1 house and 'instance' it 10 times, as opposed to importing a street of 10 houses as one model.

For sounds you can often get away with using mono instead of stereo sound effects which can cut their file size in half. Although I'm not sure this is really relevant anymore with modern hardware.
Logged
grubert
Full Member
***
Posts: 183


Everybody is very nice, but my jacket disappeared.


View Profile WWW
« Reply #3 on: July 21, 2009, 08:18:57 PM »

Great tips!
Most of mine were mentioned above. Other:

1- keep the number of surfaces, materials in your 3d app, to the minimum possible before exporting your 3d asset.

2- keep an eye at the number of textures, resolution of textures and bit format of textures. I'm not keeping that much tracking of gamecore's way of handling bit depth formats etc, but I believe it still makes a difference if you put your textures to a lighter bit format (color, alpha etc) wherever you can. Gekido or anybody else correct me if I'm wrong here, please.
For what I remember looking at the render times profiler, what took more memory was textures: number of textures, ammount of surfaces, mb they were taking from the graphics card etc. Jonathan once replied a post of mine with a kind of table for memory usage by textures. Very useful. I'll try to find it and post it here.

3 - post shaders: these seem to drop the fps considerably also. Try to use it wisely, with "economy". Unfortunately this is true, because I personally need in general some 3 to 4 post fullscreen shaders to achieve the look I conceived for my projects. And some of them, like a color correction shader and HDR levels are great for setting a specific tone/mood/color scheme.

4 - poly planes + alpha-ed textured always it is possible. Like for instance, if you're modeling an old ship and need lots of ropes for the sails rig. Don't give up on putting lots of them: use ropes made of texture (color + alpha). At the distance, they'll look almost as great as a polygonal mesh made of cylinders.
Examples are endless:
- facade's details and handrail metal frames
- handrails
- ceiling structures
etc etc
« Last Edit: July 21, 2009, 08:24:44 PM by grubert » Logged

my portfolio and weekly posting:
http://athossampaio.blogspot.com
gekido
Guest
« Reply #4 on: January 06, 2010, 03:39:07 PM »

Quote
1b) Shoot for 6 LOD's on all objects and use fading on ALL of it.

Quick note:  If you have fading set up between LOD levels, you end up actually adding more poly's to the scene for the period that they are fading - this is because you have the model that is fading out visible AND the model that is fading in visible for the duration of the fade.  Just something to be aware of.

GameCore wil automatically adjust the LOD fade distances based on the detail settings that you have for objects as well as the far clip, so if you have LOD objects setup, you can definitely improve performance while still allowing people with higher-end computers to have the 'full' experience.

Quote
2- keep an eye at the number of textures, resolution of textures and bit format of textures. I'm not keeping that much tracking of gamecore's way of handling bit depth formats etc, but I believe it still makes a difference if you put your textures to a lighter bit format (color, alpha etc) wherever you can. Gekido or anybody else correct me if I'm wrong here, please.
Quote

This is probably the biggest thing that you can do to speed up scenes.  GameCore can handle millions of poly's in a scene - and most modern engines can handle a LOT of poly's because for the most part the vertex shaders for a typical scene are fairly simple.  Texture memory, once it starts to get near the limit for the video card, can easily start to cause slow downs as memory is paged in and out.  GameCore does have a memory management system for adjusting what is stored in memory at a specific time, but this is dependent on how you setup your detail settings (on the launcher or game editor's options menu), not the actual amount of memory that is present on the video card.
Logged
Pages: [1]
  Print  
 
Jump to:  

 
Powered by MySQL Powered by PHP bluBlur Skin © 2006, hbSkins
Powered by SMF 1.1.14 | SMF © 2006-2011, Simple Machines LLC
Valid XHTML 1.0! Valid CSS!