-
Notifications
You must be signed in to change notification settings - Fork 23
SLProject Features
Marcus Hudritsch edited this page Feb 18, 2022
·
56 revisions
- Platform independent real-time 3D rendering with OpenGL ES3 on Windows, MacOS (Intel & Arm64), Linux, Android (SDK 24+) and Apple iOS8+.
- Platform & IDE independent Code in C++. Demo projects and exercises are provided as IDE independent CMake projects. There are wiki pages for how to build it for Windows Visual Studio, Qt Creator, CLion, Apple XCode, and Android Studio.
- All dependencies included: All dependent libraries for all platforms are included in this repository or in the cmake build process. This can be either in code form or in prebuilt form. The major dependencies that are included for all platforms (either x86_64 or arm64 architectures) are: OpenCV (incl. contributions) for image processing, assimp for model loading, ImGui for the user interface, ORB-SLAM2 for Simultaneous Localization and Mapping, GLFW for desktop OS OpenGL abstraction and OpenSSL for base networking.
- All features are demonstrated in the app-Demo-SLProject app.
-
Hierarchical Scene Graph with grouping and referencing.
- View Frustum Culling for optimal rendering of large scenes
- Sorted per Material Rendering for optimal few OpenGL state changes.
- Sorted Alpha Blending for transparencies.
- Level of Detail group nodes.
- 3D File Import for many formats (e.g. OBJ, FBX, 3DS, DXF, BLEND)
- Realtime Shadows for all light types (directional, rectangular, point and spotlight) with shadow mapping.
- Automatic GLSL Shader Generation for per-pixel Blinn-Phong or Cook Torrance (PBR) lighting with diffuse texture mapping, normal map bump mapping and ambient occlusion mapping. All these material properties can be combined with shadow mapping.
- Full glTF PBR Material Support
- Node and skeleton animation
- Camera Animations: Turntable, trackball and first-person camera animation. Automatic camera animations for the use with the IMU rotation and GPS location sensors of mobile devices.
- Stereo Rendering with anaglyphs, side-by-side or distorted side-by-side projections for virtual reality applications.
- Simple & powerful GUI: Extensive and easy to be implemented user interface using ImGui. See the following YouTube video on the advantages of ImGui.
- Space Partitioning with axis-aligned bounding volume hierarchy combined with uniform grids
- Object Picking with fast ray casting
- Ray Tracing as an alternative renderer. It is highly optimized and runs 100% parallel on all available cores also on mobile devices.
- Path Tracing as an alternative renderer for fully global illumination simulation.
- Nvidia Optix Support for real-time ray tracing and path tracing with denoising.
- Device Location (GPS) and Orientation (IMU) from Android and iOS are provided in a uniform manner and can be used for augmented or virtual reality applications.
-
Image Processing with OpenCV.
- Live Video Capture on all platforms.
- Camera Calibration
- Chessboard, AruCo-Marker, 2D-Feature and Face tracking for augmented reality applications.
- SLAM - Simultaneous Localization and Mapping using ORB-SLAM-2.
- Platform independent Utility classes for string manipulation, file handling, data compression and networking via FTP and HTTPS.
-
Minimal Educational Apps separate from SLProject in the subfolder apps/exercises:
- Minimal OpenGL Apps for demonstrating a minimal core profile application in C++, C#, Java and WebGL.
- Minimal OpenCV Apps for several minimal image processing tasks.
- Doxygen generated Documentation: Last but not least a Doxygen generated online documentation enhanced with some introductory pages that should eas the introduction to the framework.