Tips To Make Ns Look Good
juho
Join Date: 2003-02-01 Member: 12965Members
<div class="IPBDescription">Got new computer and I'd like to tune ns</div> Hi. This is propably discussed in the past, but I couldn't find anything usefull from search.
I just got new computer, and I'd like to tune ns to look as good as possible. I started with turning on aa, but are there any other ideas, ways and tricks to make ns look as good as possible?
- juho
I just got new computer, and I'd like to tune ns to look as good as possible. I started with turning on aa, but are there any other ideas, ways and tricks to make ns look as good as possible?
- juho
Comments
EDIT: here is the link...
<a href='http://www.unknownworlds.com/forums/index.php?showtopic=62384' target='_blank'>http://www.unknownworlds.com/forums/in...showtopic=62384</a>
EDIT2: this thread is a mess with 31 pages...
Here is the download link (from Soylent green's sig)
<a href='http://hem.bredband.net/congal/temp/DetTex_pack.zip' target='_blank'>http://hem.bredband.net/congal/temp/DetTex_pack.zip</a>
The instructions are in the readme.txt
Have fun...
- juho
You can set <b>gl_texturemode "GL_LINEAR_MIPMAP_LINEAR"</b>
Additionally, You can search for high poly model packs in NS customization forums (there will be problems in some servers that forces default models; I havent seen much servers with mp_consistency on though)...
Im sure there are some other options but thats all I can remember...
HTH...
If you wan't the game to look sharper at the risk of making moiré patterns and aliasing worse, change the LOD bias to slightly negative, if slight moiré bothers you but slight bluriness doesn't set the LOD bias slightly positive, if you don't care either way just leave it. Not all drivers let you change LOD bias without special tools.
Set gl_texturemode gl_linear_mipmap_linear for trilinear filtering(bilinear is default)
Set gl_maxsize 512 (allows 512x512 textures) and gl_round_down 0 (round up textures to nearest power of 2 if they need rounding)
edit: Set vsync to allways on, your refresh rate to something descent and fps_max to your refresh rate.
Please post any additional video tweaks!
^brain exploded
I see "vsync on this or vsync off that" written all over the place...what exactly i s it and what does it do and if you want is on or off a decision between quality vs performance or something else?
If your computer cannot render frames as quickly as the refresh rate of the monitor, however, it will halve the rate at which frames are displayed. So if you have your monitor set at 100Hz, and your computer cannot render 100fps, it will effectively display 50fps due to vsync being on. Because of this, vsync is great to turn on so long as your computer can run a game engine well enough to take advantage of the smoother appearance, but if vsync is on and you cannot render frames as quickly as the monitor's refresh rate, the game will seem to have a drop in performance.
When in doubt, turn it on... if your fps suffers too much, turn it off and deal with the image tearing.
<!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
I think that it's gl_max_size and not gl_maxsize. Byt anyway, those did some good, ns looks like an eyecandy now, compared to the previous state <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
Still looking for more adjustments =)
- juho
Lets try that again with better explanations.
Texture aliasing is when a texture appears to shimmer, display moiré patterns or other similar effects.
A mip map is a minified version of the original texture, usually a series of these are calculated for each texture upon loading. Half-life(and most games) demand that textures have dimensions that coincide with powers of two, if you choose something like 192x192 it is going to end up as either 128x128 or 256x256 when in actual use depending on what your settings are. This is done simply because it's faster hardware wise. Each successive mip map is half the width and height of the previous one. A 256x256 texture would have 128x128, 64x64, 32x32, 16x16... sized mip maps.
The reason why mip-mapping is usefull is that at a certain distance one pixel on your screen could represent a large area on a texture, many pixels. Averaging over so many texels(a pixel on a texture) would be very bad for performance, and taking to few samples would give you texture aliasing, the colour of the pixels would flicker at seemingly random(to see this in half-life, turn off AF and set gl_texturemode gl_linear (bilinear filtering without mipmaps), everything looks OK up until a certain distance, things beyond that distance seem to shimmer) So instead you precompute a smaller texture, a mip map and use it instead of the original texture. If you select the appropiate mip map for each pixel rendered you have to do very little work for the result to look good.
texture filtering:
Nearest sample is when you pick the closest texels as the colour of the pixel that is being drawn. To see this in half-life use gl_texturemode gl_nearest(without mipmaps) or gl_nearest_mipmap_nearest(with mipmaps).
Bilinear filtering is when you do a sort of average between the adjacent texels(four) encompassing the texture coordinates of the pixel. Without bilinear filtering or better things would look pixelated up close instead of appearing blurred. With bilinear you simply choose the most appropiate mip map and use it. When the mipmap is too large the texture looks too sharp and has a slight tendancy for shimmering, on other distances where the mipmap is too small textures appear blurred. This gives the sort of banding you see when you turn off AF and use the default filtering in half-life, gl_texturemode gl_linear_mipmap_nearest.
You might want to avoid the banding phenomenon with bilinear, to do this you can choose the two best mip-maps, take a bilinear sample from each and do a linear interpolation between these, assigning the most appropiate one a bigger weight. This is called trilinear filtering, to see this in action use gl_texturemode gl_linear_mipmap_linear.
When a surface that you are looking at is tilting at a bad angle or the texture has been badly stretched one pixel on your screen would correspond to a rectangular region in the original texture, to avoid texture shimmering a tiny mip map has to be chosen to acount for this. This has the effect of making badly stretched or tilting polygons look blurry(the ground especially). To combat this a new filtering method named anisotropic filtering was invented. You know which way the polygon is tilting, so you can choose a better quality mipmap and do many more samples in one direction(either bilinear or trilinear samples). iso means same, tropic means direction , and an- negates it, so what we have here is direction dependent filtering.
Anti aliasing removes the jagged edges of polygons. This can be done in a number of ways, the most expensive and easiest to explain simply renders the picture, say 4 times as large and then shrinks it back to screen size. (Super Sampling Anti Aliasing) SSAA. SSAA isn't used often anymore, it was often used in conjunction with a blur filter. As it took more samples SSAA also worked like AF and removed some of the bluring. Today AA is usually only applied to the edges of polygons, where it is needed the most.
Lets try that again with better explanations.
Texture aliasing is when a texture appears to shimmer, display moiré patterns or other similar effects.
A mip map is a minified version of the original texture, usually a series of these are calculated for each texture upon loading. Half-life(and most games) demand that textures have dimensions that coincide with powers of two, if you choose something like 192x192 it is going to end up as either 128x128 or 256x256 when in actual use depending on what your settings are. This is done simply because it's faster hardware wise. Each successive mip map is half the width and height of the previous one. A 256x256 texture would have 128x128, 64x64, 32x32, 16x16... sized mip maps.
The reason why mip-mapping is usefull is that at a certain distance one pixel on your screen could represent a large area on a texture, many pixels. Averaging over so many texels(a pixel on a texture) would be very bad for performance, and taking to few samples would give you texture aliasing, the colour of the pixels would flicker at seemingly random(to see this in half-life, turn off AF and set gl_texturemode gl_linear (bilinear filtering without mipmaps), everything looks OK up until a certain distance, things beyond that distance seem to shimmer) So instead you precompute a smaller texture, a mip map and use it instead of the original texture. If you select the appropiate mip map for each pixel rendered you have to do very little work for the result to look good.
texture filtering:
Nearest sample is when you pick the closest texels as the colour of the pixel that is being drawn. To see this in half-life use gl_texturemode gl_nearest(without mipmaps) or gl_nearest_mipmap_nearest(with mipmaps).
Bilinear filtering is when you do a sort of average between the adjacent texels(four) encompassing the texture coordinates of the pixel. Without bilinear filtering or better things would look pixelated up close instead of appearing blurred. With bilinear you simply choose the most appropiate mip map and use it. When the mipmap is too large the texture looks too sharp and has a slight tendancy for shimmering, on other distances where the mipmap is too small textures appear blurred. This gives the sort of banding you see when you turn off AF and use the default filtering in half-life, gl_texturemode gl_linear_mipmap_nearest.
You might want to avoid the banding phenomenon with bilinear, to do this you can choose the two best mip-maps, take a bilinear sample from each and do a linear interpolation between these, assigning the most appropiate one a bigger weight. This is called trilinear filtering, to see this in action use gl_texturemode gl_linear_mipmap_linear.
When a surface that you are looking at is tilting at a bad angle or the texture has been badly stretched one pixel on your screen would correspond to a rectangular region in the original texture, to avoid texture shimmering a tiny mip map has to be chosen to acount for this. This has the effect of making badly stretched or tilting polygons look blurry(the ground especially). To combat this a new filtering method named anisotropic filtering was invented. You know which way the polygon is tilting, so you can choose a better quality mipmap and do many more samples in one direction(either bilinear or trilinear samples). iso means same, tropic means direction , and an- negates it, so what we have here is direction dependent filtering.
Anti aliasing removes the jagged edges of polygons. This can be done in a number of ways, the most expensive and easiest to explain simply renders the picture, say 4 times as large and then shrinks it back to screen size. (Super Sampling Anti Aliasing) SSAA. SSAA isn't used often anymore, it was often used in conjunction with a blur filter. As it took more samples SSAA also worked like AF and removed some of the bluring. Today AA is usually only applied to the edges of polygons, where it is needed the most. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
<!--emo&???--><img src='http://www.natural-selection.org/forums/html//emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif' /><!--endemo--> <!--emo&???--><img src='http://www.natural-selection.org/forums/html//emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif' /><!--endemo--> <!--emo&???--><img src='http://www.natural-selection.org/forums/html//emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif' /><!--endemo-->
AF off: you will see several distance thresholds where the texture becomes a magnitude blurrier, especially in a large room or long hallway.
AF on: those thresholds are not only better blended into each other, but also the distance before the texture quality starts dropping is much further away.
AF on: those thresholds are not only better blended into each other, but also the distance before the texture quality starts dropping is much further away.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Not quite. With trilinear filtering(gl_texturemode gl_linear_mipmap_linear) and no AF it will just be blurrier on surfaces such as floors. if all surfaces faced the user, then AF wouldn't be needed nor applied(AF is only applied on surfaces that need it, surfaces that face you don't). Bilinear AF will still have "distance treshholds", you just push them further away from you.
Texture quality doesn't drop off with distance, it's cyclical. When you are using bilinear you will see sharp edges where it switches mipmaps, beyond this textures look blured and then become better as distance increases and then finally become too sharp(aliasing) before you run into another mipmap and they become too blurry again etc. Trilinear blends two bilinear samples from adjacent mipmaps so you won't have this problem. However when you are looking into a polygon at a steep angle(with respect to the normal) it will start appearing blurred without AF, this is what AF corrects.
When using AF texture quality may appear to drop off with distance on for example the ground, but this is from another effect. Lets say you are standing in a very long hallway, crouching down and looking towards the other end of the room. Without AF the floor will be all blured. With AF the floor will appear slighly blurrier the further away you look because the angle changes. If you look straight down you look straight into the floor and need no AF at all, if you look at a distant piece of the floor you see it a very steep angle with respect to it's normal. It's the angle that matters.
Soylent explained it perfectly (I think) if you want to really know how it works. Otherwise, all you need to know is that it makes things look way better.
*welds brain up* <!--emo&::marine::--><img src='http://www.unknownworlds.com/forums/html//emoticons/marine.gif' border='0' style='vertical-align:middle' alt='marine.gif' /><!--endemo-->
Well, that's been possible with about every single graphics card since what? 5 years back? <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->. Just hasn't been very useable until recently.
Well, that's been possible with about every single graphics card since what? 5 years back? <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->. Just hasn't been very useable until recently. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Well thank you very much Mister Gates
I can think of 2 things that are much more likely to be the cause.
Algorithms have become much more efficient(only edges of polygons are anti-aliased, AF is only applied on surfaces that really need it. 4x SSAA means four times as many texture samples and four times as much fillrate).
As games become more and more mainstream game developers are under pretty big pressure to make their games work on mediocre machines and allowing people to customize the games appearance more fully. E.G. you could make a sacrifice in shadow details, view distance or whatever to afford AA or AF even on a mediocre card if you prefer one over the other.
BTW, I run NS in 1280x1024, with Full AA, Temporal AA enabled, and full Ainsotropic Filtering, with developer 1 i get about 150 fps and a VERY nice looking game... with the detail textures its even better... I have vsync off (but at a refresh of 120 who needs it)
Im only running a Radeon 9600pro (256mb) but its really surprised me <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
antything else i can do as i think i have done everything i can?
(BTW, another way is change your playing resolution, but be careful.. a higher resolution makes it look nicer and smoother (less blocky) but then its harder to see enemies as they are smaller... so find a nice balance.. im lucky caus eim on a 21" monitor so even in the high, enemies look big <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->)
You FOV is the same. Increase resolution => enemies occupy more pixels on your screen but the same area. Sprites such as your crosshair and HUD may get smaller if the NS devs are being lazy.
edit: "you're crosshair", what was I thinking <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Um... with a refresh rate of 120, you should turn vsync on, dude.
vsync off = image tearing
The primary reason NOT to turn on vsync is if your monitor can't handle high refresh rates, as that will end up limiting the fps being displayed by the monitor. If you have a high refresh rate, you can turn on vsync, which will eliminate image tearing, but not be a limiting factor in your effective fps.