07.01.2013 Views

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Bidirectional texture function 13<br />

Bidirectional texture function<br />

Bidirectional texture function (BTF) [1] is a 7-dimensional function depending on planar texture coordinates (x,y)<br />

as well as on view and illumination spherical angles. In practice this function is obtained as a set of several<br />

thousands color images of material sample taken during different camera and light positions.<br />

To cope with a massive BTF data with high redundancy, many compression method were proposed [1] [2] .<br />

Its main application is a photorealistic material rendering of objects in virtual reality systems.<br />

References<br />

[1] Jiří Filip; Michal Haindl (2009). "Bidirectional Texture Function Modeling: A State of the Art Survey" (http:/ / www. computer. org/ portal/<br />

web/ csdl/ doi/ 10. 1109/ TPAMI. 2008. 246). IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, no. 11. pp.<br />

1921–1940. .<br />

[2] Vlastimil Havran; Jiří Filip, Karol Myszkowski (2009). "Bidirectional Texture Function Compression based on Multi-Level Vector<br />

Quantization" (http:/ / www3. interscience. wiley. com/ journal/ 123233573/ abstract). Computer Graphics Forum, vol. 29, no. 1. pp.<br />

175–190. .<br />

Bilinear filtering<br />

Bilinear filtering is a texture filtering method used to smooth textures<br />

when displayed larger or smaller than they actually are.<br />

Most of the time, when drawing a textured shape on the screen, the<br />

texture is not displayed exactly as it is stored, without any distortion.<br />

Because of this, most pixels will end up needing to use a point on the<br />

texture that's 'between' texels, assuming the texels are points (as<br />

opposed to, say, squares) in the middle (or on the upper left corner, or<br />

anywhere else; it doesn't matter, as long as it's consistent) of their<br />

A zoomed small portion of a bitmap, using<br />

nearest-neighbor filtering (left), bilinear filtering<br />

(center), and bicubic filtering (right).<br />

respective 'cells'. Bilinear filtering uses these points to perform bilinear interpolation between the four texels nearest<br />

to the point that the pixel represents (in the middle or upper left of the pixel, usually).<br />

The formula<br />

In these equations, u k and v k are the texture coordinates and y k is the color value at point k. Values without a<br />

subscript refer to the pixel point; values with subscripts 0, 1, 2, and 3 refer to the texel points, starting at the top left,<br />

reading right then down, that immediately surround the pixel point. So y 0 is the color of the texel at texture<br />

coordinate (u 0 , v 0 ). These are linear interpolation equations. We'd start with the bilinear equation, but since this is a<br />

special case with some elegant results, it is easier to start from linear interpolation.<br />

Assuming that the texture is a square bitmap,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!