SimpleRenderEngine - Small C++14 render engine

  •        930

The goal of SimpleRenderEngine (sre) is to provide easy way to get started with graphics programming in 2D or 3D without a deep knowledge about the low-level graphics APIs like OpenGL, DirectX and Vulkan. SimpleRenderEngine currently depends on Simple Direct Layer 2.x (SDL2), SDL2-image, OpenGL Mathematics (GLM), and OpenGL 3.3 (or higher), Dear ImGui and runs on both Windows, macOS and Linux.

https://github.com/mortennobel/SimpleRenderEngine

Tags
Implementation
License
Platform

   




Related Projects

tinyrenderer - A brief computer graphics / rendering course

  •    C++

Check the wiki for the detailed lessons. My source code is irrelevant. Read the wiki and implement your own renderer. Only when you suffer through all the tiny details you will learn what is going on. I do want to get emails for feedback (dmitry.sokolov@univ-lorraine.fr); do not hesitate to contact me if you have any questions.

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

  •    C++

Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. http://airmech.com/ AirMech is a free-to-play futuristic action real-time strategy video game developed and published by Carbon Games.

DiligentEngine - Master repository for Diligent Engine project

  •    C++

Diligent Engine is a lightweight cross-platform abstraction layer between the application and the platform-specific graphics API designed to take advantages of next-generation APIs such as Direct3D12 and Vulkan, while providing support for older platforms via Direct3D11, OpenGL and OpenGLES. Diligent Engine exposes common front-end for all supported platforms and provides interoperability with underlying native API. Shader source code converter allows HLSL shaders to be used on all supported platforms and rendering backends. The engine is intended to be used as a graphics subsystem in a game engine or any other 3D application, and supports integration with Unity. Diligent Engine is distributed under Apache 2.0 license and is free to use. Alternatively, you can get master repository fisrt, and then individually clone all submodules into the engine's root folder.

datoviz - ⚡ High-performance GPU interactive scientific data visualization with Vulkan

  •    C

Datoviz is an open-source high-performance interactive scientific data visualization library leveraging the graphics processing unit (GPU) for speed, visual quality, and scalability. It supports both 2D and 3D rendering, as well as minimal graphical user interfaces (using the Dear ImGUI library). Written in C, Datoviz has been designed from the ground up for performance. It provides native Python bindings (based on Cython). Bindings to other languages could be developed thanks to community efforts (Julia, R, MATLAB, Rust, C#, and so on). Datoviz uses the Vulkan graphics API created by the Khronos consortium, successor of OpenGL. Supporting other modern graphics API, such as WebGPU, would constitute interesting developments.

herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs.

  •    C

Hic sunt dracones. This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on various platforms. The goal is to provide a comparison between multiple rendering methods. This is inherently biased due to the variety of algorithms used and available CPU/GPU configurations, but can hopefully still provide interesting insights on 3D rendering.


panda3d - Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

  •    C++

Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ program. It featues include Exposes Full Power of Graphics API, Powerful interface between shaders and engine, Support for tessellation and compute shaders, Fullscreen filters such as Bloom, Cartoon Inking, Volumetric Lightning, Blur/Sharpen and Ambient Occlusion, as well as the ability to use your own, Get models from your 3d modeller to Panda3D easily, Several options for adding sounds, physics simulation to your game.

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

  •    C++

Filament is a real-time physically based rendering engine for Android, Linux, macOS and Windows. This rendering engine was designed to be as small as possible and as efficient as possible on Android. Filament is currently used in the Sceneform library both at runtime on Android devices and as the renderer inside the Android Studio plugin.

pixi

  •    Javascript

The aim of this project is to provide a fast lightweight 2D library that works across all devices. The PixiJS renderer allows everyone to enjoy the power of hardware acceleration without prior knowledge of WebGL. Also, it's fast. Really fast. PixiJS is a rendering library that will allow you to create rich, interactive graphics, cross platform applications, and games without having to dive into the WebGL API or deal with browser and device compatibility.

vtk-js - Visualization Toolkit for the Web

  •    Javascript

VTK is an open-source software system for image processing, 3D graphics, volume rendering and visualization. VTK includes many advanced algorithms (e.g., surface reconstruction, implicit modelling, decimation) and rendering techniques (e.g., hardware-accelerated volume rendering, LOD control). The JavaScript implementation remain a subset of the actual C++ library but efforts will be made to easily port or compile native VTK code into WebAssembly to better blend both world. The origin of VTK is with the textbook "The Visualization Toolkit, an Object-Oriented Approach to 3D Graphics" originally published by Prentice Hall and now published by Kitware, Inc. (Third Edition ISBN 1-930934-07-6). VTK has grown (since its initial release in 1994) to a world-wide user base in the commercial, academic, and research communities.

engine - Go 3D Game Engine

  •    Go

G3N (pronounced "gen") is an OpenGL 3D Game Engine written in Go. It can be used to write cross-platform Go applications that show rich and dynamic 3D representations - not just games. A basic integrated GUI framework is provided, and 3D spatial audio is supported through OpenAL. Go 1.8+ is required. The engine also requires the system to have an OpenGL driver and a GCC-compatible C compiler.

ImGui.NET - An ImGui wrapper for .NET.

  •    CSharp

This is a .NET wrapper for the immediate mode GUI library, Dear ImGui (https://github.com/ocornut/imgui). ImGui.NET lets you build graphical interfaces using a simple immediate-mode style. ImGui.NET is a .NET Standard library, and can be used on all major .NET runtimes and operating systems. Included is a basic sample program that shows how to use the library, and renders the UI using Veldrid, a portable graphics library for .NET. By itself, Dear ImGui does not care what technology you use for rendering; it simply outputs textured triangles. Example renderers also exist for MonoGame and OpenTK (OpenGL).

Horde3D - Horde3D is a small 3D rendering and animation engine

  •    C++

Horde3D is a 3D rendering engine written in C++ with an effort being as lightweight and conceptually clean as possible. Horde3D requires a fully OpenGL 2.0 compatible graphics card. In terms of DirectX that means a card supporting at least Shader Model 2.0 or higher.

pyrender - Easy-to-use glTF 2.0-compliant OpenGL renderer for visualization of 3D scenes.

  •    Python

Pyrender is a pure Python (2.7, 3.4, 3.5, 3.6) library for physically-based rendering and visualization. It is designed to meet the glTF 2.0 specification from Khronos. Pyrender is lightweight, easy to install, and simple to use. It comes packaged with both an intuitive scene viewer and a headache-free offscreen renderer with support for GPU-accelerated rendering on headless servers, which makes it perfect for machine learning applications.

webglstudio

  •    Javascript

WebGLStudio.js is an open-source, browser-based 3D graphics suite. You can edit scenes and materials, design effects and shaders, code behaviours, and share your work - all within a browser using standard web technologies. To install WebGLStudio.js, copy the editor files to your server, then install LiteFileSystem.js into a fileserver/ folder within the editor/ directory. LiteFileSystem is a library that handles remote file storage. For more information, see the /INSTALL.md file and the LiteFileSystem.js documentation.

fauxgl - Software-only 3D renderer written in Go.

  •    Go

3D software rendering in pure Go. No OpenGL, no C extensions, no nothin'.It's like OpenGL, but it's not. It's FauxGL.

rpt - A physically-based path tracer

  •    Rust

This is a physically based, CPU-only rendering engine written in Rust. It uses path tracing to generate realistic images of 3D scenes. Here's a simple scene that demonstrates the basics of the API.

Axiom 3D Rendering Engine

  •    DotNet

The Axiom 3D Engine is an open-source, cross-platform 3D graphics rendering engine for .NET and Mono.

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

  •    C++

Yocto/GL is a collection of small C++17 libraries for building physically-based graphics algorithms released under the MIT license. Yocto/GL is written in a deliberatly data-oriented style for ease of development and use. Yocto/GL is split into two small libraries to make code navigation easier. See each header file for documentation. Here are some test images rendered with the path tracer. More images are included in the project site.

Crystal Space 3D SDK

  •    Java

Crystal Space is an Open Source 3D SDK for Unix, Windows, and MacOS/X. It renders with OpenGL and features GLSL shaders, CG shaders, deferred rendering, dynamic shadows, bullet based physics library, terrain engine, skeleton based animation meshes, exporter for Blender, portals, etc...






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.