Given the definition of the bicubic Bezier Surface Patch function: $$f(u,v) = \begin{bmatrix} u^3 & u^2 & u & 1 \end{bmatrix} \begin{bmatrix} -1 & 3 & -3 & 1 \\ 3 & -6 & 3 & 0 \\ -3 & 3 & 0 & 0 \\ 1 & 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} P_{00} & P_{01} & P_{02} & P_{03} \\ P_{10} & P_{11} & P_{12} & P_{13} \\ P_{20} & P_{21} & P_{22} & P_{23} \\ P_{30} & P_{31} & P_{32} & P_{33} \end{bmatrix} \begin{bmatrix} -1 & 3 & -3 & 1 \\ 3 & -6 & 3 & 0 \\ -3 & 3 & 0 & 0 \\ 1 & 0 & 0 & 0 \end{bmatrix}^T \begin{bmatrix} v^3 \\ v^2 \\ v \\ 1 \end{bmatrix},$$ is it possible to compute the second partial derivatives $f_{uu}$ and $f_{vv}$ knowing the values for $f$, $f_{u}$, $f_{v}$ and $f_{uv}$ for each of the 4 corners?
I have reasons to believe that it is indeed possible, but I do not know how.
Thank you!
So here is the solution I managed to deduce. We note (C style) the 16 control points of the bicubic Bezier patch as: $$\begin{bmatrix} p1\_1 & p1\_2 & p1\_3 & p1\_4 \\ p2\_1 & p2\_2 & p2\_3 & p2\_4 \\ p3\_1 & p3\_2 & p3\_3 & p3\_4 \\ p4\_1 & p4\_2 & p4\_3 & p4\_4 \end{bmatrix}$$ In a similar manner we note the values for the 4 corners starting with $w$ and using $x$ and $y$ for the two directions. For example the following are the first partial derivatives on $x$ for the 4 corners: $$\begin{bmatrix} wx1\_1 & wx1\_2 \\ wx2\_1 & wx2\_2 \\ \end{bmatrix}$$ The following are the formulas for computing the control points given the value, first partial derivatives and the mixed derivative for each of the 4 corners:
And the following are the formulas for computing the second partial derivatives given the value, first partial derivatives and the mixed derivative for each of the 4 corners:
One can observe that the second partial derivatives for a corner depend not only on the values for that corner but also on the values of the two neighbor corners (which is logic, but unfortunate for my optimization).