Skip to content
Marcus Hudritsch edited this page Jul 6, 2022 · 169 revisions

Version 3.300, 06-Jul-2022:

  • New: Particle Systems: The SLParticleSystem class is a mesh in which the vertices are drawn as points. An OpenGL transform feedback buffer is used to update the particle positions on the GPU and a geometry shader is used the create two triangles per particle vertex and orient them as a billboard to the viewer. Geometry shaders are only supported under OpenGL >= 4.0 and OpenGL ES >= 3.2. This is the case on most desktop systems and on Android SDK > 24 but not on iOS which has only OpenGL ES 3.0. See the app-Demo-SLProject under File > Load Test Scene > Particle Systems for various demo scenes: AppDemoGLTF

Version 3.200, 11-Jan-2022:

  • New: Automatic Shader Generation for PBR Materials with Cook Torrance lighting equation. PBR stands for Physically Based Rendering and is the state-of-the-art material definition introduced by Unreal Engine 4. Materials have now either the Blinn Phong or the Cook Torrance light model and both get the GLSL shader code generated automatically depending on the material parameters, the no. of lights, and with or without shadow mapping. See SLGLProgramGenerated for more details.
  • New: glTF File format support with PBR materials (see the app-Demo-SLProject under File > Load Test Scene > glTF Sample Models): AppDemoGLTF
  • New: Cascaded Shadow Mapping with automatic shader generation (see the app-Demo-SLProject under File > Load Test Scene > Benchmarks > Level of Detail): AppDemoCSM1 Colored shadow cascades: AppDemoCSM2
  • New: Level of Detail Node that allows multiple child nodes of different levels. See SLNodeLOD for more detail and the new benchmark scene in app-Demo-SLProject under File > Load Test Scene > Benchmarks.
  • New: Minimal OpenCV demo for YOLO V3 object detection.

Version 3.120, 29-Jun-2021:

  • New: Image-based lighting test scene (see the app-Demo-SLProject under File > Load Test Scene > Shader > Image Based Lighting. Increasing roughness with environment reflection from left to right. Increasing metalness from bottom to top: ImageBasedLighing

Version 3.110, 19-Mar-2021:

  • Native builds for Apple Silicon ARM-based processors: All projects and dependent libraries are now built for the new Mac M1 processor in ARM64 architecture.

Version 3.100, 01-Feb-2021:

  • Realtime shadows with shadow mapping for all light types: Directional, rectangular, spot, and point lights: ShadowMappingLightTypes
  • New node transform edit mode with gizmos for translation, rotation, and scale correction. See menu Edit. TransformGizmos_TRS
  • New cmake project for iOS builds. All platforms use now cmake a build system.
  • Performance improvement with rendering by the material. See new Benchmark scenes.
  • New baked ambient occlusion with secondary UV coordinates in SLMesh. See the next image to the left without ambient occlusion and to the right with ambient occlusion: Suzanne_withAndWithout_AO
  • New automatic shader generation for Blinn-Phong materials with texture maps, normal maps, ambient occlusion (AO) maps with or without shadow-mapping. See Suzanne Lighting scenes and class SLGLProgramGenerated for all combinations of texture-, normal-, AO- and shadow-mapping.
  • New utilities: ZipUtils, FtpUtils and HttpUtils for file download.
  • Video background shader for augmented reality apps.
  • New drawing flags: WITH_EDGES and ONLY_EDGES
  • New Vulkan test project
  • New geoTiff file support used in SLDeviceLocation.
  • New OpenCV library version 4.5 (prebuilt for all platforms)
  • New assimp library version 5.0 (prebuilt for all platforms)
  • New glfw library version 5.0 (prebuilt for all platforms)
  • New ImGui library version 1.76 with dock widgets

Version 2.400, 23-OCT-2019 (master branch):

  • New library WAI that stands for Where Am I. It uses the ORB-SLAM2 for Simultaneous Localisation and Mapping. All dependencies are included and prebuilt for Windows, macOS, Linux, and Android. New app-Demo-WAI for 3D point cloud creation with ORB-SLAM.
  • New Video Resolutions: You can set now the video resolution on mobile devices over the menu Video Sensor > Resolutions.
  • New Viewport Setting: A scene view can now define a specific viewport that allows specific aspect ratios. You can test this in the app-Demo-SLProject over the menu Preferences > Viewport Aspect.
  • Improved Camera Calibration: If available, we use now the device information from Android about the focal length to improve the guessed calibration.
  • New Library structure into subparts:
    • All classes with SL (SceneLibrary) contain the scenegraph functionality.
    • All classes with CV (ComputerVision) contain the image processing using OpenCV.
    • A Utils class contains utility functions.
  • New File Down- and Upload in the Utils library.
  • New Parallel Job Feature that allows non-OpenGL tasks to run in parallel while a progress bar is visualized.
  • New Gamma Correction for OpenGL, Ray Tracing and Path Tracing.
  • Upgraded OpenCV Version 4.1.1 for all platforms except Linux.
  • Added Bresenham line drawing example in the apps/examples folder.

Version 2.30, 1-NOV-2018:

  • New build configuration in CMake: All project definitions for Visual Studio, Qt Creator, XCode and Android Studio got replaced by IDE independent CMakeLists files. The wiki pages for the various IDEs and platforms got adapted.
  • No more large submodules for prebuilt libraries: The prebuilt libraries such as OpenCV get downloaded and installed automatically by the new cmake scripts.
  • New consistent code format with Clang-Format: See the Code-Style wiki page for detailed information on how to integrate clang-format into various IDEs.
  • New vertex selection mode: Besides selecting a single object with double-clicking it, you can now also select multiple vertices by rectangle select with CTRL-LMB.
  • New minimal OpenCV apps:
    Many apps are inspired by the OpenCV Tutorials at LearnOpenCV.com from Satja Malick:

Version 2.20, 1-FEB-2018:

  • New Skybox background: A sceneview can now have a skybox with a cube map as background that is automatically moved with the active camera. Try the Scene under Shader > Skybox. Skybox Shader

  • New video textures from file: Videos from a file can be played on textures on any object or background on all platforms incl. iOS and Android.

  • New XCode Project for MacOS and iOS:: A new XCode Workspace file with all projects has been added. Besides the demo app for iOS and the MacOS with GLFW you also have all exercise and OpenCV projects in this workspace. On MacOS this is the fastest build and development environment.

  • Cleaner separation of the application from library code:: All scene and UI definition code have been moved into the demo application. For a new application, you just can copy the demo project of your platform and remove the demo stuff that you don't need.

  • New mobile device rotation and location events:: For iOS and Android applications, the rotation from the IMU and the location from GPS are now read and converted to the same interpretation and passed to the framework. See SLDeviceRotation and SLDeviceLocation for more information. See also the new video scene named Sensor AR and the new info dialog with the sensor information.

  • New camera animation:: New camera animation have been added for Trackball interaction and for an IMU rotated or IMU rotated and GPS located camera when used on a mobile device. See the Animations menu under the Camera menu.

  • Update OpenCV library to version 3.4: The library with all contribution modules comes prebuilt for all platforms except Linux.

Version 2.10, 2-SEP-2017:

  • New class for feature tracking:
    SLTrackedFeatures implemented by the students Timo Tschanz and Pascal Zingg offers video feature tracking with any feature detectors and descriptors that OpenCV includes. In addition, an enhanced ORB implementation developed by Raul Mur is provided and used as default detector/descriptor. This enhancement is especially suitable for the outdoor AR project Christoffel Tower developed at BFH where good feature needs to be spread over the entire video frame. See the demos in Load Test Scene > Using Video > Track Features. This will be the base for markerless augmented reality apps in the future. Thanks a lot to the students! New Feature Tracking
  • New User Interface built with the very easy to use ImGui Library. ImGui renders the UI with OpenGL and offers a very simple interface for many classic UI widgets such as windows, buttons, sliders, tree-views and much more. The entire UI is built once per frame from scratch in SLDemoGui. No more slots & signal pain! The new UI works on all OS including iOS and Android without changing a single line of code. New UI with ImGUI
  • New Volume Ray Casting Demo Scene: New volume rendering shader in GLSL that implements ray cast volume rendering. See the demos scenes in Load Test Scene > Volume Rendering > Head MRI ray casting and Head MRI ray casting lighted. Lighted Volume Ray Casting
  • New Cook-Torrance Physically Based Shading: Added new GLSL shaders PerPixCookTorrance and PerPixCookTorranceTex for Cook-Torrance physically based lighting calculation. See the demo scene Load Test Scene > Shader > Per Pixel Cook Torrance Lighting. This will be the base for a modern real-time physically based lighting that will replace the old Phong model. Based on the PBR Tutorial at learnopengl.com. New Cook-Torrance Lighting
  • Change: No more Qt project maintenance: All Qt projects (app-Viewer-Qt, app-Demo-Qt) were moved to the _old folder and are not anymore maintained. The use of Qt with SLProject is of course still possible. The maintenance of the UI is far more complicated compared to the ease of use of ImGUI. The SLProject project build files are provided for:
    • Qt Creator (SLProject.pro) on any desctop OS
    • Visual Studio 2015 or newer (SLProject.sln)
    • XCode 8.33 or newer (folder app-Demo-iOS)
    • Android Studio (folder app-Demo-Android)

Version 2.00, 15-FEB-2017:

  • New: Include of the OpenCV library for integrated image processing. OpenCV 3.2 for Windows, MacOS, iOS and Android are included in a submodule. The framework can now process the images from attached live video cameras. This works via OpenCV on desktop OS as well as on iOS and Android. The live video image is constantly fed into any OpenGL texture or a background texture. Used as background texture you can create augmented reality applications. Examples can be found in the demo application under Load Scene > Using Video > Track Chessboard or Track Aruco. See Introduction Page for more information.
  • New: Platform independent Android build environment with Android Studio.
  • New: Updated BFH-SLProject-Android-App-Store-App.
  • New: SLLightDirect for a direct light source with or without an arrow representation.
  • New: All lights can be attached to any other node including the camera in the scenegraph.

Version 1.30, 10-JAN-2016:

  • New: OpenGL forward compatibility: Shader remains unchanged and are still backward compatible to GLSL 110. For forwarding compatible contexts 3.0 and higher shaders are parsed and upgraded. See SLGLShader in the documentation.
  • New: The class SLGLVertexArray replaces the class SLGLBuffer and simplifies the OpenGL rendering massively.
  • New: Implemented Travis and AppVeyor Build Tests
  • New: Over all test of all scenes with startup parameter testScene=0 with the app-demo-GLFW and app-demo-Qt.

Version 1.20, 05-AUG-2015:

  • New: SLBackground class for gradient or textured OpenGL background
  • New: Massive reduction to 20% of the previous memory consumption for the uniform grids that accelerate ray tracing.
  • New: SLDisk and SLLens 3D object based on the revolution object SLRevolver.
  • New: Animation Skeleton visualization
  • New: Inclusion of the OpenCV library for live camera stream into a texture or the background image. See app-Demo-GLFW in the source file glfwMain.cpp.

Version 1.11, 31-MAR-2015:

  • New: Volume rendering test application
  • New: 3D-texture mapping

Version 1.10, 7-FEB-2015:

  • New: Skeleton animation (see the new set of example applications)
  • New: Re-designed node animations
  • New: LeapMotion device interface

Version 1.00, 1-OCT-2014: This major release is not anymore backwards compatible:

  • The SLProject library is now separated as a library from the applications.
  • Simplified SLNode class: There is no more SLGroup and SLShape class needed.
  • New transform methods relative to local, parent and world space.
  • Improved and simplified update traversal.
  • The use of the ASSIMP library allows now to load many different 3D file formats.
  • New viewer application with extended Qt user interface and multiple sceneview display.
  • New Oculus Rift library included. New Binding compatible with DK1 & DK2
  • New distorted stereo projection for Oculus Rift rendering.
  • New GitHub repository.

Version 0.92, 4-APR-2014: New BFH Logo, Bug fixes, some improvements by student works (thanks).

Version 0.91, 19-FEB-2013: Google Code Repository, Minimal OpenGL ES projects in C++, C#, Java & WebGL added.

Version 0.90, 23-JAN-2012: Initial release.

Clone this wiki locally