Cross
Task
Implement a shading effect on the cube object based on the cosine of the angle between the normal vector N of each object fragment and the direction vector L from the fragment to the light source, which is located at coordinates (0.0, 1.0, 3.0).

To calculate the fragment normal N, use the dFdx and dFdy functions that you learned in the previous task, along with the new cross function.
Note: The fragment world position is stored in the vWorldPos in GLSL and input.worldPos in HLSL.
Theory
The cross product is a mathematical operation that takes two vectors as input and produces a new vector that is perpendicular to the plane formed by the original two vectors.
Calculating the Cross Product in 3D Space
In 3D space, if you have two vectors $\mathbf{A} = (a_x, a_y, a_z)$ and $\mathbf{B} = (b_x, b_y, b_z)$, the cross product $\mathbf{A} \times \mathbf{B}$ is calculated as:
$ \mathbf{A} \times \mathbf{B} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \ a_x & a_y & a_z \ b_x & b_y & b_z \end{vmatrix} $
$ \mathbf{A} \times \mathbf{B} = \mathbf{i} (a_y b_z - a_z b_y)
- \mathbf{j} (a_z b_x - a_x b_z)
- \mathbf{k} (a_x b_y - a_y b_x) $
The resulting vector is orthogonal to both $\mathbf{A}$ and $\mathbf{B}$.
Determining the Direction
The direction of the resulting vector can be determined using the right-hand rule: if you put the index of your right hand on $\mathbf{A}$ and the middle finger on $\mathbf{B}$ , then the thumb points in the direction of $\mathbf{A} \times \mathbf{B}$.
