It will surely improve z fighting, but I'm hoping it would also be possible to get a significant performance boost out of it. Basically, the idea would be that because players would usually move by foot, so that the camera moves quite slowly relative to the total scale of the environment. So if the far away scenery is not updated every frame, the errors might not be perceivable.
Maybe one frustum split could already remedy the z fighting issue, if I plan on having around 5-10 km view distance. Do you suppose the following would work: Draw, say 1-10 km range to a sort of skybox, with e.g. four sides (top and bottom are probably not needed). Then on top of the skybox, the 0-1 km range would be drawn normally. There would need to be some overlap and maybe dissolving to seamlessly connect the two. The problem would then be, that drawing the skybox would take about four times as much processing time as without it, so some approximations need to be made. Of course there is no point to update the box, unless the camera moves a threshold distance, or something important changes far away (an enemy soldier appears, if you can see him that far away). This probably gives the desired performance boost. But when the time of update arrives, I would expect a noticeable sudden drop in framerate. Maybe the updating could be somehow divided over multiple frames, but I'm not sure yet how to do this cleanly. I might also use a bit low res render target to get rid of pixel processing bottlenecks. Maybe I could also update the box gradually by scissoring out slices, if the rendering is pixel limited rather than vertex limited. Has anyone done these kind of things?
I'm not sure but maybe they did something like this in Operation Flashpoint: Red River. They had quite large view distance and a sort of "waving air" effect for distant ground. My guess is that at least they rendered far away stuff to off screen buffer and applied this filter, but I'm not sure if they did some performance tricks with this also.
Edited by jmakitalo, 12 August 2012 - 12:12 PM.






