Given a pixel $p=(u,v)$ in [[Texture Coordinates#Mapping *to* Bitmap Image|Fractional Bitmap Coordinates]], the [[Color]] $\kappa_{I}$ with Bilinear Interpolation is the interpolated value between the 4 nearest pixels [[Bitmap Image]] (using [[Rectangular Barycentric Coordinates]]). Assuming $w(x) : \R \to \R$ is the [[Texture Wrapping|Wrapping Function]]. $\huge \begin{align} i &= \op{w}(u) \\ j &= \op{w}(v) \\ \end{align}$ $\huge \begin{align} A &= (i, j)\\ B &= (i+1, j)\\ C &= (i+1, j+1)\\ D &= (i, j+1)\\ \end{align}$ ![[../../00 Excalidraw/Bilinear Interpolation .excalidraw.dark.svg]] %%[[../../00 Excalidraw/Bilinear Interpolation .excalidraw.md|🖋 Edit in Excalidraw]], and the [[../../00 Excalidraw/Bilinear Interpolation .excalidraw.light.svg|light exported image]]%% You can then get the [[Interpolate|Interpolated]] value of $\kappa_{I}$ by computing the [[../Math/Dot Product|Dot Product]] between $I$ in [[Rectangular Barycentric Coordinates]] and the $\vec \kappa$ $\huge \begin{align} I_{\square ABCD} &= \mat{ (1-s)(1-t) \\ s(1-t)\\ st\\ (1-s)t}\\ \kappa_{I} &= I_{\square ABCD} \cdot \mat{\kappa_{A}\\ \kappa_{B} \\ \kappa_{C} \\ \kappa_{D}} \\ \end{align}$ $\huge \begin{align} \end{align}$