This project renders a 3rd-degree Bezier surface by interpolating it as a triangular mesh. Users can manipulate surface orientation, lighting, and surface type.
The Bezier surface is loaded from a 16-line text file, where each line provides a control point in 3D (x, y, z) as:
X00 Y00 Z00
X01 Y01 Z01
...
X33 Y33 Z33
Where X0i is the first row of control points for Bezier's plain
The surface is generated by traingle-interpolation. Users can rotate each mesh around the z-axis and x-axis by user-specified angles (α: -45° to 45°; β: 0° to 10°). One can choose interpolation's accuracy (via slider) and whether the traingle-grid is visible or not.
Program implements Lambertian shading with optional specular reflection. All the parameters can by adjusted via sliders.
Program supports two object color modes: Solid color chosen from a menu. Texture-mapped surface, where a texture image is loaded by user Optionally user can modify surface by providing a normal map.
Light source follows a elliptic path on a fixed z-plane which can be stopped and resumed