Download

Latest release (v1.0.0 BETA)
Release date: 21.5.2018

Binaries

Platform Files
Windows 64-bit bsf_v1.0.0b_win64.zip
Linux (Ubuntu) bsf_v1.0.0b_linux.tar.gz
macOS bsf_v1.0.0b_osx.tar.gz

Source

Platform Files
All platforms bsf_v1.0.0b_source.zip

Notes

Release notes

Initial release of the framework.

Features

  • Platforms
    • Windows
    • Linux
    • macOS
  • Renderer
    • Vulkan, DX11 and OpenGL 4.5 render backends
    • Multi-threaded rendering
    • Node based compositor
    • Modern high fidelity graphics
      • Fast hybrid tiled deferred / clustered forward renderer
      • Physically based shading
      • Area light sources
      • Reflection probes with geometry proxies
      • Indirect illumination via irradiance maps
      • Screen space reflections
      • HDR rendering
        • Automatic eye adaptation
        • Tonemapping with adjustable curve
        • White balance
        • Color grading
      • Gamma correct rendering
      • MSAA (both forward and deferred)
      • Shadows
        • Percentage closer shadows
        • Cascaded shadow maps
    • Post processing effects
      • Screen space ambient occlusion (SSAO)
      • Depth of field
      • Fast approximate anti-aliasing (FXAA)
    • Extensive material & shader system
      • Custom high level shading language (BSL)
      • Low level shader parsing and reflection for HLSL and GLSL
      • Shader bytecode caching
    • Low-level rendering API
      • Fully featured, backend agnostic wrapper for Vulkan/DX/OpenGL
      • Geometry, tesselation and compute shaders
      • Instanced rendering
      • Texture arrays and GPU buffers
      • Unordered access textures and buffers
      • Pipeline state objects
      • Command lists
      • GPU queues (async compute and upload)
      • Explicit multi-GPU support
  • Asset pipeline
    • Built-in support for third party formats:
      • FBX, OBJ, DAE meshes
      • PNG, PSD, BMP, JPG, etc. images
      • OTF, TTF fonts
      • OGG, FLAC, WAV, MP3 sounds
      • HLSL, GLSL shaders
    • Asynchronous resource loading
    • Asynchronous resource import
    • Resource compression
    • Extensible importer system
  • GUI system
    • All common GUI controls
      • Text
      • Image
      • Button
      • Input box
      • Drop down
      • Slider
      • Checkbox
      • Scroll area
      • And support for custom controls
    • Unicode text rendering and input
    • Easy to use layout based system
    • Fully skinnable
    • Automatic batching for fast rendering
    • Supports texture atlases
    • Supports arbitrary 3D transformations
    • Localization support (string tables)
  • Animation
    • Skeletal animation with skinning
      • 1D and 2D animation blending
      • Additive animation support
      • Animation events
      • Root bone animation
      • Animation sockets for animating in-game objects
      • Post-processing hooks for IK support
    • Blend shape animation
    • Multi-threaded and GPU accelerated
  • Input
    • Mouse/keyboard/gamepad support
    • Provides both raw and OS input
    • Virtual input with built-in key mapping
    • Virtual axes for analog input devices
  • Physics
    • Implemented using NVIDIA PhysX
    • Multi-threaded for best performance
    • Abstract plugin interface extensible for other physics implementations (e.g. Havok, Bullet)
    • Supported features
      • Colliders (Box, Sphere, Capsule, Mesh)
      • Triggers
      • Rigidbody
      • Character controller
      • Joints (Fixed, Distance, Hinge, Spherical, Slider, D6)
      • Scene queries
      • Collision filtering
      • Discrete or continuous collision detection
  • Audio
    • 3D sounds (panning, attenuation, doppler effect) and 2D sounds (music, narration)
    • On-the-fly streaming and decompression
    • Multi-channel support up to 7.1 sound
    • Multiple listener support for split-screen
    • Multiple backends
      • OpenAL
      • FMOD
  • Other
    • CPU & GPU profiler
    • Advanced run-time type information for C++ code
    • Vector (SIMD) instruction API
      • SSE4.1, AVX, AVX2, AVX512 NEON, NEONv2 and others
    • Utility library
      • Math
      • File system
      • Events
      • Thread pool
      • Task scheduler
      • Logging
      • Debug drawing
      • Crash reporting
      • Unit testing
      • Custom memory allocators
Known issues

This is a BETA release, meaning parts of the framework are possibly still unstable. Non-commonly used functionality might cause crashes, and untested hardware combinations might as well.

The following are known issues with the current release:

  • Mesa drivers on Linux do not work at the moment. Please use proprietary nVidia or AMD drivers, if possible. This is partly due to bugs in Mesa, and partly due to an issue in the framework.
  • Nightly builds
    Builds of the most recent (potentially unstable) version, updated nightly: http://nightly.bsframework.io