Author Topic: Exposing user adjustable performance settings  (Read 8906 times)

jjzazuet

  • Jr. Member
  • **
  • Posts: 16
    • Unsung Stories
Exposing user adjustable performance settings
« on: October 23, 2012, 06:24:56 AM »
Hi. Jesús Zazueta again.

A few more questions :P.

If in my application I would like to expose performace adjustable parameters to the user, i'm guessing that in code terms, most of such adjustments would have to go into the DisplayCapabilities instance that is created during the application's startup. With this in mind:

1) Is it correct to assume that DisplayCapabilities is the main class where performance related adjustments would go into?

2) Would it be necessary to restart the engine after a certain performance parameter change?

3) Which parameters would make sense to expose to the user? From the top of my head I'm thinking anitaliasing number of samples, texture filtering quality, Vertical Sync, etc. Are these parameters adjustable in the engine? (I know that at least antialiasing can indeed be adjusted).

Thanks again for your time!

JZM

jerome_j

  • Administrator
  • *****
  • Posts: 116
    • Bonzai Engine
Re: Exposing user adjustable performance settings
« Reply #1 on: October 23, 2012, 12:26:46 PM »
Performance wise, you can only adjust antialiasing and vsync in DisplayCapabilities. It's not the place where you'll adjust your scene quality (texture quality, shader quality and so).
If you wish to change DisplayCapabilities on the fly, you'll currently have to destroy and re-create the 3d canvas (this can possibly be change).

You can adjust default texture quality (mipmap, filtering, anisotropi) with TextureList.setDefaultTextureParam and default shader quality in ShaderGenerator if you're using it.
Those parameters are used at load time, so if you wish to change them after, you'll have to reload the textures and shaders.

You can also adjust some other parameters:
Model.setLodDistance
Theme.setUseSdFont (Sd font have higher quality font but a more complexe shader, only if you're using UI class)
alphaToCoverage
« Last Edit: October 23, 2012, 12:29:34 PM by jerome_j »