×
Menu

Texture Pixel Filtering (EN)

 
Из справки к Нифскопу.
FILTER_NEAREST Simply uses the nearest pixel.  Very grainy.
FILTER_BILERP Uses bilinear filtering.
FILTER_TRILERP Uses trilinear filtering.
FILTER_NEAREST_MIPNEAREST Uses the nearest pixel from the mipmap that is closest to the display size
FILTER_NEAREST_MIPLERP Blends the two mipmaps closest to the display size linearly, and then uses the nearest pixel from the result.
FILTER_BILERP_MIPNEAREST Uses the closest mipmap to the display size and then uses bilinear filtering on the pixels.
 
 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
Texture Filter Modes
Gamebryo supports the following texture filter modes, although specific renderers may or may not be able to support all of them in all texture modes. See the Texturing document for details.
Note that all filter modes are declared in the scope of NiTexturingProperty, and the names must be qualified as such.
Filter Mode
Description
FILTER_NEAREST
Uses nearest texel, with no mipmapping.
FILTER_BILERP
Uses linear interpolation with no mipmapping.
FILTER_TRILERP
Linearly interpolates between the eight texels (the 4 closest texels on each of the two closest mipmap levels).
FILTER_NEAREST_MIPNEAREST
Selects nearest mipmap level, then uses nearest texel on that level.
FILTER_NEAREST_MIPLERP
Selects nearest texel on each of the two nearest mipmap levels and linearly interpolates between them.
FILTER_BILERP_MIPNEAREST
Selects nearest mipmap level, then linearly interpolates on it.
 

 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
The third texturing issue is that pyramidal filtering (also known as "mipmapping" or "trilinear interpolation" in Gamebryo) increases the VRAM size of a texture by 1.3 times its original VRAM size. When pyramidal filtering (as opposed to summed area or none) is enabled a texture must be stored along with its filter levels where each level is a quarter the size of the prior level. Pyramidal filtering will improve texture aliasing but you should be aware that it comes at the cost of some space in VRAM. In other words, pyramidal filtering improves visual quality in the scene and should be used in almost all cases, but you should be aware that pyramidal filtered textures increase storage requirements by a factor of 1.3.
 
Texture Pixel Interpolation and Filtering
 
The second step in the computation of the color contribution of a texture map (once the exact texture coordinate is established) is to determine what method is used to pull a color from the texture map — otherwise known as "filtering". Gamebryo applications (and NIF files) can set the filtering mode used for a given texture. Gamebryo supplies six possible filter modes, but one can think of these as being broken down into two independent categories; there are two methods of filtering across a given mipmap level, and there are three methods of filtering between mipmap levels.
The two methods of filtering within a mipmap level are "nearest neighbor" and "bilinear interpolation". "Nearest neighbor" simply picks the color of the closest texture pixel (texel) and uses it. "Bilinear interpolation" linearly interpolates between the four texels that enclose the texture coordinate. All current hardware and most software renderers support both methods now, and there are only two reasons to select "Nearest neighbor" over "Bilinear interpolation". The most common reason to use "nearest neighbor" filtering is to achieve a "blocky" effect. "Bilinear interpolation" causes a texture to look "blurry", which may not be the desire of the artist for a given texture.
There are three methods of selecting the correct mipmap level upon which to interpolate. The simplest is to avoid mipmapping altogether and use the fully detailed version of the texture for interpolation — this is equivalent to turning off mipmapping. The next level is the simplest form of mipmapping, in which the mipmap level that is the closest to fitting the level of detail of the pixel — this is called "nearest level mipmapping". The final mipmapping selection system selects two mipmap levels that "enclose" the desired level of detail — one that is too detailed, and one that is not detailed enough. It then linearly interpolates between those two levels. This is called "linear mipmap interpolation". As such, the given order defines increasing rendering quality among the three modes. Note also that the order of increasing cost is the same. All hardware can support disabling mipmapping. Almost all of the current hardware cards support "nearest level mipmapping". Most hardware cards support "linear mipmap interpolation", but some older cards do so at considerable cost, with restrictions, and/or by emulating the effect using dithering. See below under "Specific Renderers" for notes on the restrictions of "linear mipmap interpolation"-based filtering modes.
 
Put together, this 3x2 set of options leaves six possible modes:
Filter Mode Name
Filter Computation
FILTER_NEAREST
Uses "nearest neighbor", with no mipmapping
FILTER_BILERP
Uses "bilinear interpolation" with no mipmapping
FILTER_NEAREST_MIPNEAREST
Uses "nearest level mipmapping", then uses "nearest neighbor" on the result
FILTER_BILERP_MIPNEAREST
Uses "nearest level mipmapping", then uses "bilinear interpolation" on the result
FILTER_NEAREST_MIPLERP
Uses "nearest neighbor" on each of the two nearest mipmap levels and then performs "linear mipmap interpolation" between the results
FILTERP_TRILERP
Uses "bilinear interpolation" on each of the two nearest mipmap levels, then performs "linear mipmap interpolation" between the results
Gamebryo applications may set the texture filtering-mode of a given Map by calling NiTexturingProperty::Map::SetFilterMode upon it.
 
 Note that the default filtering-mode is FILTER_NEAREST.
Собственно это и объясняет отчего нифскоп норовит засунуть текстуру в слот текстур в таком режиме.