Texture Mapping and Image Processing
Domain scope
Texture Mapping and Image Processing tests UV parameterization, sampling and reconstruction, mipmaps, filtering, color-space handling, and common image operations such as convolution and resampling.
Core rules
- Texel centers are at half-integer coordinates; bilinear filtering blends four neighboring texels using fractional offsets.
- Mipmaps prefilter the image by powers of two; the level is log2 of the texel-to-pixel footprint.
- Magnification needs reconstruction filtering; minification needs prefiltering to avoid aliasing.
- sRGB textures store encoded values; decode to linear before lighting and encode after tone mapping.
- Normal maps store tangent-space vectors, usually in [0,1] encoding of [-1,1].
Worked example
A 1024×1024 texture is mapped so that one screen pixel covers a 4×4 texel footprint. The mip level is log2(4)=2, so the base level 1024×1024 becomes 256×256. Each level halves each dimension; level 2 has 1024/2^2=256 texels per side. If the footprint is anisotropic, say 8×1, a single isotropic level loses detail; anisotropic filtering samples multiple positions along the longer axis and blends them.
Traps that cost marks
- Sampling with wrapping enabled without considering border seams on atlases.
- Treating sRGB values as linear, which makes blends and lighting too dark.
- Generating mipmaps for normal maps without renormalizing the filtered vectors.
- Confusing screen-space derivatives used for footprint with the actual texture resolution.