-
Notifications
You must be signed in to change notification settings - Fork 23
SLProject Features
Marcus Hudritsch edited this page Jan 2, 2021
·
56 revisions
- Platform independent real-time 3D rendering with OpenGL ES3 on Windows, Mac OSX, 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.
- 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 lighting with diffuse texture mapping, normal map bump mapping and ambient occlusion mapping. All these material properties can be combined with shadow mapping.
- Custom GLSL Shaders for Cook-Torrance lighting, parallax mapping, water and glass shading.
- 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.
- Extensive and easy to be implemented user interface using 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.
- 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.