-
Notifications
You must be signed in to change notification settings - Fork 23
SLProject Features
Marcus Hudritsch edited this page Dec 29, 2020
·
56 revisions
- Platform independent real-time 3D rendering with OpenGL ES3 on Windows, Mac OSX, Linux, Android (SDK 24+) and Apple iOS8+.
- Platform 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 and in the cmake build process. This can be either in code form or in prebuilt form. The major dependencies that are included are OpenCV (incl. contributions) for image processing, assimp for model loading, ImGui for UI, ORB-SLAM2 for SLAM, GLFW for desktop OS OpenGL abstraction and OpenSSL for base networking.
-
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 for cardboard
- 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
-
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.
- Minimal OpenGL Apps to demonstrate minimal core profile application in C++, C#, Java and WebGL