Jump to content
Sign in to follow this  
[frl]myke

Dynamic viewdistance XEH by [GLT] Myke

Recommended Posts

Okay, I have Terrain Detail set to Very Low and everything else that might have some bearing on what is experienced using this addon set to Normal.

At 5000 viewdistance, it looked like all objects might disappear at around 1600-1800 meters altitude (I got to about 1500 meters altitude in an MH-6 and then seemed to have "bounced" off of a ceiling, back towards the ground...very weird), so I set Flight Level at 1500, MaxView at 5000, and MinView at 1100. (At about 1100 viewdistance, all objects disappeared at around 850 meters altitude.)

Amazing! Set 3 Shilkas on Sahrani and had a ball just dodging their AA fire.

Share this post


Link to post
Share on other sites

Great. It seems that the BIS should think about V-shaped viewdistance globally smile_o.gif

Share this post


Link to post
Share on other sites

Thanks for posting that link Myke!

Great to see that people are trying to make the game better/ more real! Thank you!

Share this post


Link to post
Share on other sites

I'm currently working on an improved version of it. Mainly i hope i can make it so it doesn't affect overall performance too bad.

What i mainly build in:

You can define a min FPS. This wont guarantee that ArmA always runs with this min FPS but if it goes below this rate, the viewdistance will be lowered, trying to go above the min FPS value. In worst case, you might have min viewdistance all the time but it wont go below it.

Also i introduce a "sea level offset" value which lets you define at which height the raise of viewdistance should start of.

Say you have min viewdistance set to 2000 and offset to 300. Then at sea level you have 2000meters viewdistance, also at 150 meters above sea level. Only if you go above these 300 meters above sea level, viewdistance starts to raise.

And last, there's some sort of "tweaking help", generally a hint which shows you actual FPS and actual set viewdistance. This is meant to find the perfect settings for each machine and should be disabled afterwards as it would interfere with mission-related hints.

I guess i have a working version at start of next week.

Share this post


Link to post
Share on other sites

sounds good, I was just thinking that it should be connected to FPS

now it becomes really sophisticated wink_o.gif

QuietMan

Share this post


Link to post
Share on other sites

FPS fluctuations might produce a visibly wavering viewdistance?

Sometimes I notice that the addon doesn't seem to "kick in", so I wind up flying around in poor visibility. Any idea what is causing that? So far I think it has only happened in helicopters.

Share this post


Link to post
Share on other sites
FPS fluctuations might produce a visibly wavering viewdistance?

Sometimes I notice that the addon doesn't seem to "kick in", so I wind up flying around in poor visibility. Any idea what is causing that? So far I think it has only happened in helicopters.

The fluctuations are currently what gives me headache to avoid this flickering but i'm still researching on it and i think i make good progress.

About the addon not to "kick in" is sometimes related when starting inside a vehicle. This is also an issue i'm researching on to eliminate the cause. As far i could reproduce this issue, it could be avoided if players unit is not set as vehicle with "Player as Driver/Gunner/whatever" but moved into an empty vehicle with "moveindriver" command.

But i know this would only help on self made missions but as said, im about to hunt this bug down.

Thanks for your report.

Myke out

Share this post


Link to post
Share on other sites

Dynamic Viewdistance 2.1

What it does:

==========

Well, basically it extends the VIEWDISTANCE setting you have in the video options to something more flexible. Instead of having one fixed viewdistance, you set a min and max range (where min range should reflect your actual viewdistance setting) and the addon will increase/decrease viewdistance depending of your height above sea level. This is what it did before and this is what it still does.

So whats new in 2.1?

====================

When playing large scale mission with a lot of units and scripts runnin, you could have serious performance hits and increasing viewdistance would it make it even worse. So i included a FPS counter and whenever a lower limit of FPS is reached (can be set by user), the addon tries to reduce viewdistance to come back to playable performance/FPS. But it will never go below the min viewdistance you've set (although i'm thinking about to introduce a allow override function in it).

I've also included a min height level. If the player is below this lower limit, the viewdistance will not raise. Only when you go above this level (in area or in air vehicle, no matter) it will start raising viewdistance. But also here, below this "offset value", viewdistance will not go below your set min limit.

Known problems:

===============

The first time you pass an area in a plane or a chopper, there will be noticable stuttering. This is caused by ArmA since it has more data to load (landscape, textures and objects) than usual. This stuttering only happens on first fly-over, from the second pass on it should be gone and you should have good performance and higher viewdistance. Sadly there's no way to reduce or even eliminate this effect.

<s>Also there are known incompatibility issues with other addons (thx Foxhound to pointing at) that aren't extended Eventhandlers compatible. I'mm affraid you have to choose between the addons that interfere unless the addonmakers releases a fixed version of theyr addons.</s> Should have been fixed now!

Included files:

===============

stm_dyn_vd.pbo

stm_dyn_vd.pbo.stm.bisign

stm.bikey

readme.txt

Dta/stm_dyn_vd_cfg.hpp

Extended_Eventhandlers17.zip

Please read the readme.txt (duh) for instructions about installing and configuring the addon (take your time to find best settings for your PC, once it is done, you might forget about it ).

Temporary Download

Share this post


Link to post
Share on other sites

That's a nice tweak. With a minimum FPS setting, combined with the changing VD this gives, we should have some smoother experience.

I've slightly changed the logic according to what has been proposed here, taking into account the actual height above ground as well as above the sea. This gives the best results, for me at least, comparing climbing to flying etc...

I wonder what is the load on CPU/GPU of such a tweak ? Does changing VD have an impact on CPU load, for example by constantly loading and unloading objects, textures and such ?

I really hope something similar will be included/hard coded in ArmA2, to allow better operation of aircraft. I thought of another tweak, based on speed and height, loading the lowest LOD. Would be nice. Well, we'll see !

Malick

Share this post


Link to post
Share on other sites

I'm sorry if this has been addressed but does it lower the terrain detail while increasing VD? Terrain detail is a nice thing to lower when going fast and high in jets as you really don't notice the difference.

Also have you considered a speed-based version? Faster = more VD?

Share this post


Link to post
Share on other sites

@Frederf

I've experimented with lowering terraindetail but it has only downsizes. First, switching detail level freezes arma for 2-3 seconds and second, there was no noticable performance improvements.

Also experimented with speed related settings but then the impact on performance was far too high. Fast moving vehicle and increasing viewdistance was too much for ArmA.

@All

I would like to know what you think about this planned option:

If viewdistance is already on min but FPS are still below the desired FPS, i thought about to introduce an override function that would allow the addon on low FPS to even reduce below the set min viewdistance. Thinking in large combats in CQB, good FPS might be more important than 2000 meters viewdistance.

What do you think about it? Should i implement this?

Share this post


Link to post
Share on other sites

First off, thanks Myke for this great idea.

The new version (2.1) seems to have much more visible jumps in VD than original when climbing in a jet.  Did you increase the test interval?

I presume the FPS test will add a slight load on CPU?  The problem is these small CPU loads of all the scripts that run in many missions along with addons are adding up confused_o.gif

It would be interesting to include height above ground in the equation as some kind of multiplier so that if you are standing on top of a mountain the VD would be slightly lower than in an aircraft.

Personally I would not want VD to drop below min even if FPS is low but I guess it could be ignored by setting min FPS very low like 1.

Share this post


Link to post
Share on other sites
First off, thanks Myke for this great idea.

The new version (2.1) seems to have much more visible jumps in VD than original when climbing in a jet. Did you increase the test interval?

I presume the FPS test will add a slight load on CPU? The problem is these small CPU loads of all the scripts that run in many missions along with addons are adding up confused_o.gif

It would be interesting to include height above ground in the equation as some kind of multiplier so that if you are standing on top of a mountain the VD would be slightly lower than in an aircraft.

Personally I would not want VD to drop below min even if FPS is low but I guess it could be ignored by setting min FPS very low like 1.

@EDcase

Indeed, the interval is 1 second as this time is needed to get accurate results for the FPS counter. I experimented with half the loop time but this decreases the accuracy of the counter to values of the power of 2 (real 31 FPS would be measured as 30 or 32).

Also the viewdistance is not raised the way like "players level = viewdistance x; setviewdistance x" but some kind of "players level should equal viewdistance X; raise by amount of A until x is reached".

Sorry, can't explain it better with my english knowledge, but i hope you get the mechanism behind.

Basically it uses steps (which are dependent on FPS) to raise and lower viewdistance until it reaches the calculated viewdistance that matches players level.

For sure i could make it change faster but i had to keep in mind to keep the whole thing well balanced also for those players with no High-end gaming PC. One thing i might have to overwork from what i've seen now, the reducing steps should be a little bigger, lowering the viewdistance slightly faster than it does now. I also think about to introduce a selectable multiplier which can be set user-side which lets you decide how fast increasing/decreasing should happen.

About players level above ground...well, i thought about it but i couldn't see any benefit in performance. Honestly, most towns/forrests are most likely down in valleys, maybe 200-400 meters above sealevel. When climbing a mountain, the higher you go, the less objects you have. So basically, performance which is needed by viewdistance is saved by objectscount. Not sure if i explained that correctly.

And for last: at first you're concerned about CPU load of one more script runnin alongside missionscripts and at the end you wouldn't VD to drop below min setting. Think again about it, first i think the impact on performance by this addon is relatively pretty low. So if you got pretty low FPS at some missions, i think you wouldn't have better FPS without the VD addon.

On the other hand, if an allowOverride min viewdistance setting is included, this might help to get back to better FPS since less terrain and objects has to be drawn.

To clarify, i wasn't talking about a switch to aloowOverride turning on or off. I thought more about it as a value how much it is allowed to go below.

Say you have min VD at 2000 meters and you set allowoverride to -750 meters, this would mean, as long FPS aren't below your set min FPS setting, VD addon will only reduce to 2000 meters. Now if FPS still stay below the min FPS setting, it will start to reduce another 750 meters (but stops reducing when FPS are around min FPS), so in worst case you would end up with a real viewdistance of 1250 meters but hopefully with playable FPS.

As said, this would be a setting for users. If you wont allow it, just set it to 0.

Share this post


Link to post
Share on other sites

at the Extended Eventhandler examples they have following code at the Init sqf:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">waitUntil {time>0};

I think this makes the routine wait until the game is really running. I suggest you add this also as first line to your stm_check routine, as it could be that youre check for the player unit sometimes fails as the unit is not fully initialized.

QuietMan

Share this post


Link to post
Share on other sites

Hi, first of all thanks for all of your work on this very useful addon; much appreciated.

Quote[/b] ]

@All

I would like to know what you think about this planned option:

If viewdistance is already on min but FPS are still below the desired FPS, i thought about to introduce an override function that would allow the addon on low FPS to even reduce below the set min viewdistance. Thinking in large combats in CQB, good FPS might be more important than 2000 meters viewdistance.

What do you think about it? Should i implement this?

I've discovered that you can effectivley already do this by setting the STM_groundOffset value to a negative figure. For example I've set it to -500, with a min. view distance of 1000 and max. of 3000. At sea level you get a view distance of around 2000 which drops down to 1000 when there's a lot going on (I've got a lot of cpu-hungry mods running). It works very well indeed and the last thing that you think about in the middle of a firefight is how far you can see! I usually have a practical view distance of 50cm to the wall that I'm hiding behind. The only improvement would be a slightly quicker adjustment to the lowering FPS, as you sometimes get around 30 seconds of 10 FPS or so before the view distance fully drops.

I have to say that this mod has made the final difference for me to making Arma both highly immersive and fairly smooth to run, so many thanks again.

Share this post


Link to post
Share on other sites
I've discovered that you can effectivley already do this by setting the STM_groundOffset value to a negative figure. For example I've set it to -500, with a min. view distance of 1000 and max. of 3000. At sea level you get a view distance of around 2000 which drops down to 1000 when there's a lot going on (I've got a lot of cpu-hungry mods running). It works very well indeed and the last thing that you think about in the middle of a firefight is how far you can see! I usually have a practical view distance of 50cm to the wall that I'm hiding behind. The only improvement would be a slightly quicker adjustment to the lowering FPS, as you sometimes get around 30 seconds of 10 FPS or so before the view distance fully drops.

@Evil Weasel

lol, you've found out what i've even wasn't thinking about. Never tried it with negative values. Indeed, this should (or does as you say) work well. Although a own setting would be better since maybe someone would like to have a positive ground offset value. I guess i'll built it in, can't stay disabled if people don't want to use it.

And you're right, i have to rework the routine for lowering the viewdistance. Right now the stepqidth is same for lowering cause of player descending or lowering cause low FPS. Will rip it apart and give low FPS lowering much bigger stepwidth.

Thanks for your comment, helps me a lot to tweak it to the max possible.

Share this post


Link to post
Share on other sites

i'm trying to set up this well.

now, i 'm face to another pb. it doesnt start with ECS mod , on a dedicated server. only client load it. from the replacement mod folder.

in local hosting , it works. i can start a local warfar, and dynamic VD initialize itself . i haven't more addons on the server than on my client side. the only things could be ECS in facT.

Someone could test it ?

Share this post


Link to post
Share on other sites

@gl33k

ECS comes with it's own dynamic viewdistance and i suggest you use this build-in feature as it is surely optimized to work together with the rest of ECS features.

Honestly, i didn't tried it with the ECS mod, although i got the idea from there. I would have the viewdistance alone as i got problems with ECS (not because of ECS) thats why i made it.

Quote[/b] ]

it doesnt start with ECS mod , on a dedicated server

Don't understand exactly what you mean. Do you have the addon installed on a dedi server? If yes, there it shouldn't run at all since it's a pure clientside addon.

Or did i get you wrong?

However, since i can't test it on a Server with ECS, i would appreciate if someone could jump in to help solve this prob.

Share this post


Link to post
Share on other sites

your addons run only on client. the server doesn't read the mod folder who containt it.

when i host a warfar with my client, your addons works.

when i join a dedicated warfar , it doesnt works.

edit: i tried without ECS at all . doesn't work in MP .

Share this post


Link to post
Share on other sites

hmm...i never had problems with my addon active to koin a server, i mean, it ever worked as intended.

Share this post


Link to post
Share on other sites

Just what I was looking for... but since it got removed from ArmAholic, the addon got abandoned?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×