[WF-General] GSoC 2010 --- Automatic adjustment of graphical detail based on framerate
erik.hjortsberg at gmail.com
Sat Mar 27 14:19:50 PDT 2010
Hi, there current exists a system whereby the materials used in the
world can change "schemes". The current schemes are "low", "medium" and
"high". The schemes mainly determines how much shader effects should be
used by the materials (normal mapping, specular and shadows), and also
determines how the terrain is rendered.
However, this is just one of many factors affecting the frame rate. Some
of the other things which affects it are:
* texture sizes
* view distance
* mesh vertex counts
* use of imposters
* batched geometry
View distance in turn can then be further refined to deal with the
terrain or specific objects.
Work on this task will therefore touch on many different parts of the
engine. There are three major subtasks basically:
* Create a framework which reacts to the fps and performs actions.
* Identify the actions possible to take to bring up the framerate, and
write code for altering the needed values.
* Tweak, tweak, tweak until we know what values needs to be changed at
There's no silver bullet either. A scene with huge number of entities of
the same type would benefit from imposters, whereas a scene with a huge
number of entities of different types wouldn't (as the texture memory
needed for the imposters might require thrashing).
The level adjustment should also be smooth, so there's no lock ups when
adjusting something (within bounds; changing material scheme will make
it stagger a little, which is why there needs to be functionality in
place to make sure that only happens when absolutely needed).
This will require some rewriting of parts of the system.
Except for C++ you will probably also need to do a little shader
programming in glsl.
For the gui Lua is used, but depending on time restraints C++ can also
The idea is that it shouldn't be necessary for the user to manually
alter the graphics settings once this system is in place. But as the
second task is to write code which can alter the values used for
affecting the fps it should be possible for any hard core user to
disable the system and alter the values manually.
It will span from the fixed function pipeline all the way up to advanced
shaders. Ogre however requires OpenGL 2.0+ hardware.
Ogre already has a system for distance LOD, but this project would then
almost sure involve a part where the settings for those distances are
2010-03-25 23:54, Kyle Messner skrev:
> Hello WorldForge!
> Let me cut to the chase by stating I am very much interested in
> contributing to this open source project. Computer gaming has been a
> passion of mind for a very long time, they're what led me to pursue a
> degree in computer science in the first place! Currently I'm finishing
> up my sophomore year attempting to get a bachelor's degree in Computer
> Science (plan to move on to my master's after). I have moderate skill
> with C++, though most of my programming experience lies with Visual
> Basic, Visual C#, and Java (also had 5 semesters of Pascal in High
> School). This would be my first endeavor at contributing to an
> open-source project, but one I meet with much enthusiasm. An
> open-source MMO engine is something I've been dreaming of since I was
> in High School, and I'm quite excited to see a project is already
> So, what specifically would I like to contribute to the project this
> summer? I'd like to implement a system that dynamically changes the
> graphical detail to maintain a consistently smooth frame rate. There
> is very little else that irritates a gamer more than to have spotty
> frame rates while playing, and any way to minimize this lag is going
> to make the game feel a lot more polished in the long run. I very much
> look forward to becoming familiar with all the various systems that
> exist within ember, as I would probably use this game engine for any
> MMOs I'd plan to develop anyway. This project is something I'm
> interested in contributing long after the summer is over, and I think
> this would be a great way to get me started with WorldForge. I
> couldn't ask for a better job over the summer :)
> I haven't had much chance to actually look at the source itself yet. I
> noticed in the discussion it stated that systems exist to manually
> adjust detail already, does this mean the code that needs to be
> developed will focus mainly on deciding how to use these systems based
> on the frame rate? Or will it likely include major rewriting of those
> detail-modifying systems? Will this detail adjusting system likely
> replace the use of manual "graphics settings" or will it just be an
> additional feature? Will it span from reverting detail back to
> doom-like (ha, an exaggeration) graphics to full power or will it
> mostly be minor tweaking? Are there any other languages besides C++
> that may benefit me with this project? Would this project include
> adjusting LODs based on factors such as distance and focus on the screen?
> Sorry for all the questions, just curious!
> General mailing list
> General at mail.worldforge.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the General