Back to CGAL Project
GSoC 2026

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

Contributor

Rajdeep Singh Kushwaha

Mentors

Not available

Technologies

Not listed in the archive