Shaders for Basic Viewer
CGAL's Basic Viewer provides one-call visualization of any CGAL data structure via draw(), but its OpenGL shader system has concrete user-facing bugs: edges disappear at certain zoom levels due to a numerically unstable inverse(u_Mvp) call in the geometry shader (#9292); edge width and vertex size are computed from the bounding box diagonal, producing hair-thin or geometry-obscuring results depending on object scale (#9327); 2D/3D camera transitions miscompute orthoCoef, breaking orthographic display (#5334); and the OpenGL < 4.3 compatibility path renders solid black (#6754, already fixed in my PR #9399). I will redesign the edge rendering pipeline to operate entirely in clip/NDC space, replace the bounding-box-based sizing with a viewport-relative pixel metric, fix camera transitions, add optional fragment-shader anti-aliasing, and produce a comparison report analyzing how MeshLab (VCGlib) and ParaView (VTK) solve wide-line rendering. I have already shipped three PRs into the Basic Viewer shader system and have 16 PRs on CGAL overall. Deliverables: robust clip-space edge shader, correct initial sizing, depth-correct edges, anti-aliased edges, updated OpenGL < 4.0 fallback path, MeshLab/ParaView comparison report, and regression tests. All changes backward-compatible with the existing draw() API.
Project details
Technologies
Not listed in the archive