Unified Shader Programming in C++

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

Our great sponsors
  • Sonar - Write Clean C++ Code. Always.
  • InfluxDB - Access the most powerful time series database as a service
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • 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

  • Sonar

    Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • 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

    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

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • 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