A bilineáris szűrés az a folyamat, amikor az eredeti textúra több pixelét kinyerjük , majd az értékeket átlagoljuk, hogy megkapjuk a végső pixelértéket. A "bilineáris szűrés" fogalma, akárcsak a " trilineáris szűrés " hasonló fogalma, csak kétdimenziós textúrákra alkalmazható. Háromdimenziós textúrák esetén ez a koncepció nem alkalmazható. , és a trilineáris szűrés fogalmának más jelentése van.
Az [1] kód feltételezi, hogy a textúra négyzet alakú (a legáltalánosabb eset), és csak egy adatcsatorna van.
double getBilinearFilteredPixelColor ( Texture tex , double u , double v ) { u *= tex . méret ; * = tex . méret ; int x = emelet ( u ); int y = padló ( v ); dupla u_arány = u - x ; double v_arány = v - y ; double u_offposite = 1 - u_arány ; double v_offposite = 1 - v_arány ; dupla eredmény = ( tex [ x ][ y ] * u_ellentétes + tex [ x + 1 ][ y ] * u_arány ) * v_szemközti + ( tex [ x ][ y + 1 ] * u_ellentétes + tex [ x + 1 ][ y ) + 1 ] * u_ratio ) * v_ratio ; eredmény visszaadása ; }Ugyanez a példa HLSL shader nyelven
float4 Bilineáris ( sampler2D tex , float2 texCoord , int texSize ) { float2 trTexCoord = texCoord * texSize ; float2 texf = padló ( trTexCoord ); float2 arány = trTexCoord - texf ; float2 ellentétes = 1,0 - arány ; float4 eredmény = ( tex2D ( tex , texf / texSize ) * ellentétes . x + tex2D ( tex , ( texf + float2 ( 1 , 0 )) / texMéret ) * arány . x ) * ellentétes . y + ( tex2D ( tex , ( texf + float2 ( 0 , 1 )) / texSize ) * ellentétes . x + tex2D ( tex , ( texf + float2 ( 1 , 1 )) / texSize ) * arány . x ) * arány . y ; eredmény visszaadása ; }