Unified Shader Programming in C++

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • DiligentEngine

    A modern cross-platform low-level graphics library and rendering framework

    If you have relatively new GL, this one is good: https://diligentgraphics.com/diligent-engine/

  • magnum

    Lightweight and modular C++11 graphics middleware for games and data visualization

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • processing

    Source code for the Processing Core and Development Environment (PDE)

    There's https://openframeworks.cc/. It's basically the C++ equivalent to https://processing.org/. Unfortunately, it's not really a library but rather a complete app framework, but it shows how a C++ wrapper API could look like. It definitely makes OpenGL programming easier and more fun.

  • OpenFrameworks

    openFrameworks is a community-developed cross platform toolkit for creative coding in C++.

    There's https://openframeworks.cc/. It's basically the C++ equivalent to https://processing.org/. Unfortunately, it's not really a library but rather a complete app framework, but it shows how a C++ wrapper API could look like. It definitely makes OpenGL programming easier and more fun.

  • framework

    > Unfortunately, it's not really a library

    I made it a library with a single header: https://github.com/redgpu/framework

  • Ion

    Discontinued Ion (by google)

  • rust-gpu

    🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

    Rust also has this, from what I understand:

      https://github.com/EmbarkStudios/rust-gpu

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • globjects

    C++ library strictly wrapping OpenGL objects.

  • bgfx

    Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

  • dcompute

    DCompute: Native execution of D on GPUs and other Accelerators

  • makepad

    Makepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl

    Makepad does something simular with its universal shading language: https://makepad.dev/

  • shaders

    Circle C++ shaders

    I think shader specialisation is handled pretty well in circle. Since you can essentially run arbitrary C++ code at compile time, selection and specialisation of a shader can even depend on hardware specific benchmarks. There is an extensive repo with examples here: https://github.com/seanbaxter/shaders. One example decodes a sprite sheet stored as a png at compile time and creates a specialised compute shader for it. You can also easily implement a control UI based on reflection of uniform shader parameters.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts