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}$