C++ 3d-graphics

Open-source C++ projects categorized as 3d-graphics

Top 23 C++ 3d-graphic Projects

  • tinyrenderer

    A brief computer graphics / rendering course

    Project mention: How to Become a Software Engineer ? | dev.to | 2024-04-23

    C++: How OpenGL works: software rendering in 500 lines of code

  • 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.

    InfluxDB logo
  • filament

    Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

    Project mention: Show HN: 3D rendering toolkit for Flutter and/or Dart | news.ycombinator.com | 2024-06-28

    I'd like to share Thermion, an open source 3D rendering toolkit I made for Flutter and/or Dart.

    This came about when I needed a 3D renderer for a Flutter app I was building (https://polyvox.app). At the time, the only off-the-shelf option was to embed Unity, which wasn't ideal for a few reasons - unstable build process, compositing and transparency issues, and licensing uncertainty, just to name a few. In any event, frankensteining Unity (C#) together with Flutter (Dart) didn't seem like a great solution.

    After browsing for alternative renderers, I discovered Filament (https://github.com/google/filament), an open-source, cross-platform Physically Based Rendering engine from Google. I initially only wrote some simple bindings to embed Filament inside a Flutter Android/iOS app, but have since added more functionality, and have expanded this to cover Windows, MacOS and Web (there was Linux support at one point, too, but I haven't been keeping up with it I'm afraid).

    Last week I published the first Thermion release to pub.dev (https://pub.dev/packages/thermion_dart), and with that milestone it seemed a good time to share with HN. This is also a call for contributors to anyone who is interested in helping! The repository is hosted at https://github.com/nmfisher/thermion).

    Some examples:

    - A live DartPad playground so you can try the Dart-only (i.e. non-Flutter version) of Thermion in browser (Chrome only for now).

  • 3d-game-shaders-for-beginners

    ๐ŸŽฎ A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

    Project mention: The Book of Shaders | news.ycombinator.com | 2024-01-09

    This is a great series if youโ€™re looking for a tutorial. https://lettier.github.io/3d-game-shaders-for-beginners/inde...

  • o3de

    Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.

    Project mention: Ask HN: What is the best code base you ever worked on? | news.ycombinator.com | 2024-06-28
  • openscad

    OpenSCAD - The Programmers Solid 3D CAD Modeller

    Project mention: Show HN: Atopile โ€“ Design circuit boards with code | news.ycombinator.com | 2024-02-05
  • draco

    Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

  • tinyraytracer

    A brief computer graphics / rendering course

    Project mention: But can it raytrace? | /r/termux | 2023-10-16

    Source: https://github.com/ssloy/tinyraytracer

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • yocto-gl

    Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics

  • F3D

    Fast and minimalist 3D viewer.

    Project mention: F3D โ€“ Fast and minimalist 3D viewer | news.ycombinator.com | 2024-07-02
  • tinykaboom

    A brief computer graphics / rendering course

  • MaterialX

    MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.

  • povray

    The Persistence of Vision Raytracer: http://www.povray.org/

    Project mention: DOS game "F-15 Strike Eagle II" reverse engineering/reconstruction war stories | news.ycombinator.com | 2024-05-14

    You may like my https://github.com/pjc50/ancient-3d-for-turboc : a slightly more modern target than the NES, it targets Borland Turbo C for MS-DOS and renders to the standard game 320x200 paletted "mode 13" display.

    Standard techniques of the time; project the 3D to 2D, cull backwards facing polygons, "painter's algorithm" (draw deepest first, in this case by object rather than by individual polygon).

    > I tried to follow a book on writing a ray-tracer from scratch

    The hardware of the time would ray-trace at multiple hours per frame. See https://github.com/POV-Ray/povray

  • mayo

    3D CAD viewer and converter based on Qt + OpenCascade

  • ezEngine

    An open source C++ game engine.

    Project mention: New EzEngine Release | news.ycombinator.com | 2023-11-25
  • HybridRenderingEngine

    Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.

  • MxEngine

    C++ open source 3D game engine

  • SoftGLRender

    Tiny C++ Software Renderer / Rasterizer, and implements OpenGL and Vulkan renderers for comparison

  • MethaneKit

    ๐ŸŽฒ Modern 3D graphics made simple with C++17 cross-platform framework and rendering abstraction API on top of DirectX 12, Metal & Vulkan

  • LinaEngine

    Lina Engine is an open-source , modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.

  • rbfx

    Lightweight Game Engine/Framework in C++17 with WYSIWYG Editor. Experimental C# bindings.

  • liblava

    Modern and easy-to-use library for Vulkan

  • Klein

    P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library

    Project mention: Planes in 3D Space | news.ycombinator.com | 2024-04-27

    For those interested, this appears to be a really high quality library that provides a 3D PGA C++ API:


    I've always wanted to find an excuse to rebuild some projects at work around this.

  • StratusGFX

    Realtime 3D rendering engine

    Project mention: Show HN: Realtime Global Illumination on Older Hardware [video] | news.ycombinator.com | 2023-07-24

    Hi everyone,

    A few months ago I posted here on HN about my open source 3D rendering engine. Since then I've been working on the new version which implements additional modern graphics techniques while still running on older GTX 10 series hardware.

    This includes emission mapping, FXAA+TAA, better mesh LOD generation and selection, but the biggest one was an overhaul of the global illumination system.

    The global illumination overhaul was the biggest aspect of the new release. The goal was better visuals than the previous version while maintaining equal performance. I wanted to outline how it works and what I had to do to make it work.

    = How It Works =

    * Direct lighting: Handled using standard rasterization pipeline with cascaded shadow mapping

    * 2nd bounce of light: Approximated by a set of virtual point lights

    * 3rd bounce of light: Not directly simulated but shadows are tapered to prevent harsh cutoff. VPLs can also be placed in open spaces to help spread light where it wouldn't be able to go without a true 3rd bounce.

    * Adaptive sampling: maximum of 4200 virtual lights per frame are selected. Each pixel computes lighting using between 1 and 10 random samples based on object's distance to camera and whether or not the lighting history was recently discarded for that pixel (recently discarded = temporarily sample more heavily).

    * Spatial resampling: each pixel can look at a few of its neighbors each frame. If the neighbor is a good fit it will merge that neighbor's samples into its own to increase the effective sample count.

    * Denoise and temporal accumulation: 2 level wavelet denoiser combined with temporal accumulation to get rid of most noise and stabilize the image even when in motion.

    = Maintaining Performance =

    There are a few key ways that this version is able to both look better yet have the same performance as the previous version on the same hardware.

    1) Reuse as much data as possible between frames. This is where the temporal accumulation aspect comes into play.

    2) VPLs are updated slowly over many frames to prevent any single frame from halting the system.

    3) With thousands of VPLs per frame, they can't all be factored in for each pixel. It's too much work. The approach was to instead sample from the set of VPLs randomly, reuse as much data spatially as possible, denoise the result and temporally accumulate 1 second worth of frames.

    I'm very happy with the results! Roughly the same performance as the previous version but better visuals.

    GitHub (open sourced under the MPL-2.0 license): https://github.com/KTStephano/StratusGFX

    Image Showreel: https://ktstephano.github.io/portfolio

    High-Level Tech Breakdown: https://ktstephano.github.io/rendering/stratusgfx/frame_anal...

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

C++ 3d-graphics discussion

Log in or Post with

C++ 3d-graphics related posts

  • Show HN: 3D rendering toolkit for Flutter and/or Dart

    4 projects | news.ycombinator.com | 28 Jun 2024
  • Filament โ€“ A Language for Fearless Hardware Design

    3 projects | news.ycombinator.com | 4 Mar 2024
  • OpenSCAD Survey - what programming language do you want to be added to app?

    12 projects | /r/openscad | 6 Dec 2023
  • OpenSCAD Survey - What should be improved ?

    4 projects | /r/openscad | 6 Dec 2023
  • remove fastcsg option

    1 project | /r/openscad | 4 Dec 2023
  • New EzEngine Release

    1 project | news.ycombinator.com | 25 Nov 2023
  • Amazon Lays Off 180 Employees in Its Games Division

    1 project | news.ycombinator.com | 13 Nov 2023
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 14 Jul 2024
    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. Learn more โ†’


What are some of the best open-source 3d-graphic projects in C++? This list will help you:

Project Stars
1 tinyrenderer 19,856
2 filament 17,363
3 3d-game-shaders-for-beginners 17,313
4 o3de 7,540
5 openscad 6,625
6 draco 6,370
7 tinyraytracer 4,940
8 yocto-gl 2,782
9 F3D 2,572
10 tinykaboom 2,322
11 MaterialX 1,779
12 povray 1,334
13 mayo 1,293
14 ezEngine 1,267
15 HybridRenderingEngine 1,106
16 MxEngine 1,088
17 SoftGLRender 951
18 MethaneKit 810
19 LinaEngine 789
20 rbfx 772
21 liblava 762
22 Klein 735
23 StratusGFX 636

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.

Did you konow that C++ is
the 6th most popular programming language
based on number of metions?