SaaSHub helps you find the best software and product alternatives Learn more โ
Top 23 C++ Graphic Projects
-
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.
-
filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
-
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.
-
bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
-
DearPyGui
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
-
OpenFrameworks
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
-
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.
-
Atomic Game Engine
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript
-
DirectXTK
The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Backdoor in upstream xz/liblzma leading to SSH server compromise | news.ycombinator.com | 2024-03-29
C++: How OpenGL works: software rendering in 500 lines of code
Project mention: Filament โ A Language for Fearless Hardware Design | news.ycombinator.com | 2024-03-04Also: Filament is a real-time physically-based renderer written in C++. It is mobile-first, but also multi-platform.
https://google.github.io/filament/
This is a great series if youโre looking for a tutorial. https://lettier.github.io/3d-game-shaders-for-beginners/inde...
Project mention: WebKit Switching to Skia for 2D Graphics Rendering | news.ycombinator.com | 2024-02-20
For native GUI, DearPyGui[0] as modern as you can.
For browser web-based GUI, you can use nicegui[1]
[0] -- https://github.com/hoffstadt/DearPyGui
[1] -- https://github.com/zauberzeug/nicegui
Not exactly VJ, but could be used for it. https://openframeworks.cc
Take a look at SFML. Very easy to get started, and quite capable.
https://www.sfml-dev.org/
Project mention: Building the DirectX shader compiler better than Microsoft? | news.ycombinator.com | 2024-02-10
Source: https://github.com/ssloy/tinyraytracer
We're thrilled to announce that LibreSprite is finally available for macOS! ๐ท๐ท A big shoutout to u/Booga y u/FManga for making this possible! Download LibreSprite for macOS
cmake_minimum_required(VERSION 3.5) project(knn_cpp CXX) # Set up C++ version and properties include(CheckIncludeFileCXX) check_include_file_cxx(any HAS_ANY) check_include_file_cxx(string_view HAS_STRING_VIEW) check_include_file_cxx(coroutine HAS_COROUTINE) set(CMAKE_CXX_STANDARD 20) set(CMAKE_BUILD_TYPE Debug) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Copy data file to build directory file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/iris.data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # Download library usinng FetchContent include(FetchContent) FetchContent_Declare(matplotplusplus GIT_REPOSITORY https://github.com/alandefreitas/matplotplusplus GIT_TAG origin/master) FetchContent_GetProperties(matplotplusplus) if(NOT matplotplusplus_POPULATED) FetchContent_Populate(matplotplusplus) add_subdirectory(${matplotplusplus_SOURCE_DIR} ${matplotplusplus_BINARY_DIR} EXCLUDE_FROM_ALL) endif() FetchContent_Declare( fmt GIT_REPOSITORY https://github.com/fmtlib/fmt.git GIT_TAG 7.1.3 # Adjust the version as needed ) FetchContent_MakeAvailable(fmt) # Add executable and link project libraries and folders add_executable(${PROJECT_NAME} main.cc) target_link_libraries(${PROJECT_NAME} PUBLIC matplot fmt::fmt) aux_source_directory(lib LIB_SRC) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_sources(${PROJECT_NAME} PRIVATE ${LIB_SRC}) add_subdirectory(tests)
Project mention: Google's First Tensor Processing Unit: Architecture | news.ycombinator.com | 2024-03-31Vulcan is a driver-level API. It competes with DirectX and OpenGL.
CUDA is a language you write kernels. It competes with OpenAI's Triton language.
Here's what CUDA looks like: https://github.com/tspeterkim/flash-attention-minimal/blob/m...
This is what Triton looks like: https://triton-lang.org/main/getting-started/tutorials/06-fu...
By contrast Vulcan looks like this: https://github.com/KhronosGroup/Vulkan-Samples/blob/main/sam...
(It's true to some extent that maybe you could use Vulcan shaders to write deep learning kernels, maybe? I'm not aware of anyone doing it though)
OGRE (MIT/C++) https://github.com/OGRECave/ogre
It might be useful to maybe look at the Vulkan.hpp examples since you can do the same in about 200 lines of code. https://github.com/KhronosGroup/Vulkan-Hpp/blob/main/samples/15_DrawCube/15_DrawCube.cpp
LoadScreenAllow= LoadScreenBlock=All Note: In cases where only loadscreens with conditions are allowed, it is possible that none will show even if no others are available. LoadScreenFilter=false LoadScreenAllow= LoadScreenBlock=All Remove all lens flare from weather records. This is done in-memory and is not persistent. DisableWeatherLensFlare=false Disable actor fade when camera intersects the body. DisableActorFade=false Disable player fade when camera intersects the body. DisablePlayerFade=false [OSD] Enable the on-screen display. Enable=false InitiallyOn=true Comma separated list of displayed stats. fps - Framerate bare_fps - Just the framerate, no formatting frametime - Frametime bare_frametime - Just the frametime, no formatting counter - Frame counter vram - Video ram usage (used / budget) * all - Everything * Note that this line does not show total amount of memory available but rather the OS allocated budget which can vary based on how much is consumed by other applications. If usage exceeds the budget, you'll likely experience stuttering. Requires DXGI 1.4. Stats related to specific drivers are configured in their respective sections. Show=fps,vram How often the OSD updates (in seconds). UpdateInterval=0.3 Keys used used to toggle the OSD. ComboKey uses built-in constants, ToggleKey is a DX scan code (https://www.creationkit.com/index.php?title=Input\_Script) ComboKey: 1 - Left Shift 2 - Right Shift 3 - Left Control 4 - Right Control 5 - Left Alt 6 - Right Alt 7 - Left Win 8 - Right Win ComboKey=1 and ToggleKey=0xD2 is Left Shift + Insert ComboKey=1 ToggleKey=0xD2 Align the OSD. 1 - Top Left 2 - Top Right 3 - Bottom Left 4 - Bottom Right Align=1 OSD position offset (X Y). Offset=4 4 Font scale (X Y) Omit Y for uniform scaling Scale=1.0 0.9 Adjust font scale based on amount of lines drawn. AutoScale=true Scale font size based on window size. Size remains constant when resolution to window size ratio != 1, for example when playing at non-native resolutions. ScaleToWindow=true Set a custom font. You can generate bitmaps from fonts installed on your system with MakeSpriteFont. https://github.com/microsoft/DirectXTK/wiki/MakeSpriteFont Run the tool with /NoPremultiply and place files in Data\SKSE\Plugins\SDTFonts FontFile= Font and outline color (RGBA). Color=255 255 255 255 OutlineColor=0 0 0 255 Outline offset. OutlineOffset=1 "
C++ Graphics related posts
- PicoGK is a compact and robust geometry kernel for Computational Engineering
- Google's First Tensor Processing Unit: Architecture
- From scratch OpenGL and shaders with raw Xlib
- Filament โ A Language for Fearless Hardware Design
- VVVV โ A Hybrid Visual/Textual Development Environment
- WebKit Switching to Skia for 2D Graphics Rendering
- Building the DirectX shader compiler better than Microsoft?
-
A note from our sponsor - SaaSHub
www.saashub.com | 26 Apr 2024
Index
What are some of the best open-source Graphic projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | aseprite | 26,483 |
2 | tinyrenderer | 19,346 |
3 | filament | 17,083 |
4 | 3d-game-shaders-for-beginners | 17,019 |
5 | bgfx | 14,306 |
6 | DearPyGui | 12,218 |
7 | OpenFrameworks | 9,775 |
8 | SFML | 9,600 |
9 | Skia | 8,641 |
10 | renderdoc | 8,408 |
11 | tinyraytracer | 4,887 |
12 | magnum | 4,649 |
13 | glslViewer | 4,462 |
14 | LibreSprite | 4,350 |
15 | matplotplusplus | 3,925 |
16 | Vulkan-Samples | 3,918 |
17 | Ogre 3D | 3,730 |
18 | Atomic Game Engine | 3,143 |
19 | OpenSceneGraph | 3,080 |
20 | Open-Source Vulkan C++ API | 2,911 |
21 | OpenSubdiv | 2,826 |
22 | yocto-gl | 2,766 |
23 | DirectXTK | 2,485 |
Sponsored