Hank Ramos
Lifetime Scripter
Join date: 15 Nov 2003
Posts: 2,328
|
03-25-2004 06:48
With all of the talk about raising and reducing draw distance to reduce lag, I had an idea...
How about adding an option for a "desired framerate". Then, the client would automatically adjust various settings to achieve that desired framerate (if possible), such as raising or reducing the draw distance, turning on and off detail settings, etc.
For example, there would be a slider with three options...
No AutoAdjustment Moderate AutoAdjustment Aggressive AutoAdjustment
The client would attempt to follow your wishes by lowering settings (I would say, start with draw distance) dynamically, depending on the local conditons around you. It would always attempt to satisfy your manual settings (seen as a maximum), but would lower them to get an acceptable framerate if posible.
Edit: Or maybe just say, I want 30fps at all costs, just turn off features if my fps is lower than that, and turn on features if we are over 30fps.
|
Kex Godel
Master Slacker
Join date: 14 Nov 2003
Posts: 869
|
03-25-2004 08:07
I strongly support this feature =D
I am probably changing my draw distance about 3-4 times a day...
|
Cybin Monde
Resident Moderator (?)
Join date: 27 Jan 2004
Posts: 2,468
|
agreed!
03-25-2004 08:34
i endorse this feature too!
(would work wonders for my girlfriends laptop!)
_____________________
"We, as developers, are doing the easy part – building the scaffolding for a new world. You, as the engines of creation, must breathe life into it." - Philip Linden
"There is no life I know to compare with pure imagination. Living there, you'll be free if you truly wish to be." - Willy Wonka (circa 1971)
SecondSpace (http://groups.myspace.com/secondspace) : MySpace group for SLers.
|
eltee Statosky
Luskie
Join date: 23 Sep 2003
Posts: 1,258
|
wouldn't necessarily be that hard...
03-25-2004 09:55
all you need is a performance counter called at the start of the draw code.. then a second one at the end... compare the time difference (usually with an averaging over the last say 10 frames) and if its above a certain time (aka below a certain fps) drop the settings by a certain degree (such as avatar/tree/object details and the draw distance) automatically...
If you set 50fps as your desired target that translates to 20ms per frame render time... if the average time for the last 10 frames comes in under a threshold of that (say below 15ms aka ~65fps) you can increase the detail/draw accordingly. If the time comes in above a threshold of that (say 25ms ala 40fps) then ya drop the active detail sliders/draw distance abit hopefully boosting the fps back up.
Generally when doing this you want to set things up so that the basic user settings of the sliders set the overall range of allowable changes (aka if the user sets max everything and 128m draw no matter what the frame rate its prolly best to keep things at 75% detail and 96m draw or within about 1/4 of what they pick)
also you generally want to add in some wait/skip states to the overall dynamic process so its not *CONSTANTLY* flickering up and down (aka keep track of the time of the last detail change and skip the entire detail branch of the code if its less than a minute from the last time) (sacrifice is a great example of a game that tried dynamic LOD but *DIDN'T* do this and suffered greatly in the graphical department from having everything 'wiggle' around as the detail levels constantly changed
_____________________
wash, rinse, repeat
|
Oz Spade
ReadsNoPostLongerThanHand
Join date: 23 Sep 2003
Posts: 2,708
|
03-25-2004 15:19
I endorse this feature/idea.
_____________________
"Don't anticipate outcome," the man said. "Await the unfolding of events. Remain in the moment." - Konrad
|
Essence Lumin
.
Join date: 24 Oct 2003
Posts: 806
|
03-27-2004 18:28
I think it would be a cool feature. Currently I set my draw distance at 512 when I'm taking world tours and looking in the distance. Then back down to 200 for the usual where I'm not looking very far. It would be fun if the fps were there and I'm just flying from one place to another to get a view of the whole sim I'm over.
|