Project: Improve OpenGL rendering
The current rendering infrastructure is scattered around with various bits partially belonging to external packages (CGAL, OpenCSG). Also, we're currently using immediate-mode OpenGL in some places. This is suspected to degrade rendering performance of large models.
The existing code should be refactored and rewritten, preferably by implementing or using an existing rendering/scenegraph framework. In addition to better OpenGL support and performance, care should be taken to use modern OpenGL so that the new code code be ported to GLES2 in the future. Supporting GLES2 opens up much more possibilities like WebGL and native support for ARM Linux platforms that usually only provide GLES2 implementation.
- Cleaner rendering code
- Better support and better responsiveness for bigger models
- Optional: Support for ARM platforms using GLES2 (e.g. Raspberry Pi)
- Programming language is C++
- Knowledge of OpenGL and GLES v2
- Ability to read and readiness to refactor existing code
Medium to High
See https://github.com/openscad/openscad/wiki/Information-About-Other-Frameworks
- Speed up OpenGL 3d mesh drawing significantly by batching whole polyheda #675
- Improve GUI responsiveness for complex objects in preview mode #418
- Display of 2-dim objects #362
- build problems with libgles2 #292
- Progressive display of rendered components #64
- Provide antialias / multisampling settings for the 3d view #1769
- GUI object inspection (e.g. highlight bbox, size of imported STLs)
- Pick object in 3D window and highlighting in the code
- Pick object in the code and highlight in the 3D window