dongle said:
Hang on, I wonder if only a certain -number- of texture tiles are shown fully, and the rest are blurred?
The ground textures are prolly a .dds file 256, 512, or whatever, square. It's definitely not just the ones outside a certain radius of the player that get blurred. What if only, say, 1024 of these squares get fully rendered and the rest blurred or not even loaded? The engine would pick the 1024 closest to the player and load them. Now, all the screenshots that look really weird feature water, the ones with only terrain look normal, only far away hills get blurred. The water looks completely opaque in every shot I've seen. So, standing next to a lake throws the engine a curveball because an expanse of ground doesn't need texturing. The first 1024 squares of hills get textures, and ones right next to them get the blurry blobs. That may explain nVidia's comment about varying aspects of terrain.
Just a half-formed thought that popped up. . . .
Hey thats a pretty good grasp of mipmapping you got there Dongle. :D
Yea this blurryness is a biproduct of 3 things:
- Mipmapping, as you sorta described
- Low contrast terrain textures
- Dominant 'guide texture' that also needs to be resident in memory
Mipmapping simply is the use of prefiltered textures of increasingly smaller resolution to be used as surfaces recede further away from the camera. This saves processing as the computer wont need to spend time filtering larger textures of inconsequential detail on objects that are far away.
Low contrast textures are ideal for terrains to help avoid 'patterning'(even though its painfully obvious if you look at the grass tiling) and to help blend nicely with adjacent textures(sand to grass to rock to etc). Downside to low contrast textures is that you lose detail almost immediately when you mipmap them. The filtering begins to muddy the textures as the algorithm does its best to retain pixel information from the source texture.
The guide texture is the largish texture(alpha map...and not large in pixel size, but rather in unit scale size) that tells the engine where the grass goes, and where the sand and rocks go. This is also loaded in vram, mipmapped etc. Dongle I believe you said you edited in Unreal? If you look at the terrain system, you can add 'layers' that allow you to designate a 'detail' texture that will be displayed wherever the layer shows white, and blend out as the levels go to black.
This 'issue' is evident in FarCry believe it or not, yet Crytek did a better job of keeping the foliage dense enough at distance that it was less noticeable.
The one anomoly that puzzles me though is the abrupt change in the texture in the german screens 1 and 2 (begining of this thread) to the right of the view. Mipmapping occurs on a gradient, and there are usually several iterations so that there is a nice graduation of the mips as they recede from the camera. The only thing I can think of is that that patch of land is in a "cell" that will be loaded as you approach the load point.
Bottom line though, I dont see it impacting gameplay as much as its being made to sound here. Yea its sucks its not perfect and yea there are ways to improve this (personally I would've sacrificed using speedtree for improved terrain rendering). I'm not using a terrain algorithm myself, so each 'cell' if you will has the underlying geometry that play occurs on, and distant objects and terrain are LOD'd (level of detail) to look good from the distance they will be viewed. The downside is that I have to do it by hand where in a terrain system all of this is automated, but the upside is control for the final look of the image. Anyway, the massive draw distance and the parallax effect as you move through the world is going to be far cooler than people realise. Not a bad trade IMHO, as I rather get vistas than claustrophobia.
Oh and Rendelius, the 360 uses adaptive anisotropic filtering, but it doesn't appear that either version of the game is using it. AF is already expensive as it is when you consider the amount of textures they're already pumping, but at least in the 360's case, you get a reduction in the bandwidth hit a PC would take simply because of the shared memory architecture. Anyway, AF would improve the issues you get with mips, but I dont think they valued that trade off in processing. Again guessing here, but that level of muddiness would tell me they are not using AF, and if they are its a waste of processing power.
Sorry to butt in...carry on.