• Stars
    star
    339
  • Rank 120,352 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Small C++14 render engine

GitHub license Build Status Codacy Badge

SimpleRenderEngine

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.

sre provides:

  • Virtual camera (perspective and orthographic)
  • Texture support (JPEG, PNG)
  • Cube map support
  • Mesh support (with custom vertex attributes)
  • Shaders (PBR, Blinn-Phong, unlit, alpha blending, and custom shaders)
  • Enforces efficient use of OpenGL
  • Forward rendering
  • Full C++14 support
  • Support for 2D or 3D rendering
  • GUI rendering (using Dear ImGui)
  • Emscripten support (allows cross compiling to HTML 5 + WebGL)
  • VR support (OpenVR)
  • Bump mapping
  • Shadowmap

To keep sre as simple and flexible as possible the following features are not a part of sre:

  • Scenegraphs
  • Deferred rendering
  • Dynamic particle systems

Getting started

First clone the library (git clone --recurse-submodules https://github.com/mortennobel/SimpleRenderEngine.git). You can use of the examples as starting point.

If you want to create new projects using SimpleRenderEngine you can use SimpleRenderEngineTemplate as a simple project template.

Also look into SimpleRenderEngineProject as starting point, which bundles all/most dependencies for Windows and macOS.

Examples

Example usage can be found in the examples folder.

MatcapPickingSkyboxRender to textureCloth_SimulationShadowsGLSL EditorPlatformerParticle systemImGUI integration

Documentation

API documentation is defined in header files.

Other resources

More Repositories

1

cpp-cheatsheet

Modern C++ Cheatsheet
C++
2,676
star
2

KickJS

A WebGL game engine for modern web-browsers.
JavaScript
191
star
3

ProceduralMesh

Simple procedural mesh generation for the Unity game engine
C#
134
star
4

java-image-scaling

Automatically exported from code.google.com/p/java-image-scaling
Java
124
star
5

CMake-Cheatsheet

Short introduction to CMake with some examples.
TeX
103
star
6

UnityUtils

A library of C# utility classes for Unity
C#
88
star
7

RenderE

Simple render engine for OpenGL
C++
61
star
8

kick

Simple game engine for C++ 11 / OpenGL 3.x +
C++
49
star
9

SimpleRenderEngineProject

Small C++14 render engine with dependencies
C++
43
star
10

CameraLib4U

A third person camera system for Unity using Chase Camera
C#
36
star
11

OpenGL_ClothSimulation

OpenGL cloth simulation based on Jesper Mosegaards tutorial
C++
32
star
12

TopologyOptimization

A simple Topology Optimization (based on the 99-line Matlab code by Ole Sigmund)
C++
14
star
13

QtOpenGL3.2Core

An example of creating an OpenGL 3.2 core profile context using Qt 4.8 crossplatform
C++
12
star
14

OpenGL_3.2_VS_2010_freeglut

A simple OpenGL 3.2 example using MSVS 2010 and freeglut
Objective-C
12
star
15

OpenGL_3_2_Utils

Extension to the Angel library (from the book Interactive Computer Graphics 6th ed)
C++
12
star
16

A-Study-in-Composition

C#
9
star
17

WebGLForOpenGLProgrammers

JavaScript
8
star
18

emscripten-cubes

A small demo of cross-compiling an OpenGL project into WebGL using Emscripten
C++
8
star
19

DepthBake

GLSL
7
star
20

SoftimageWebGLExport

A WebGL export plugin for SoftImage 2011
C++
6
star
21

OpenGLVoxelizer

C++
5
star
22

SimpleWebServer

A simple GUI-based web-server used for testing scripts running on localhost.
Java
5
star
23

SuiteSparse_Apple

Fork of SuiteSparse with scripts for building universal libraries for iOS and OSX
C
4
star
24

UnitySplineLibrary

C#
4
star
25

GridTraversal

Implementation of ray traversal of uniform 3d grid for Unity
C#
4
star
26

sre_glsl_editor

A simple glsl shader editor
C++
4
star
27

SimpleVRCpp

Simple example of using the OculusVR SDK and SDL
C++
3
star
28

KICK_OBJ_Loader

A small library parsing and saving Wavefront OBJ 3D models
C++
3
star
29

glMatrix-vs-GLM-Benchmark

A benchmark between glMatrix (JavaScript) vs. GLM (C++)
C++
3
star
30

QtOpenGLChapter

C
3
star
31

SimpleRenderEngineTemplate

Small C++14 render engine - project template
CMake
3
star
32

rendering-with-distancefunctions

Raymarching signed distance fields
JavaScript
3
star
33

OpenGL_4.3_VS_2010_freeglut

A simple OpenGL 3.2 example using MSVS 2010 and freeglut
Objective-C
3
star
34

OOCholmod

An object oriented C++ header-only wrapper for Timothy A. Davis' Cholmod library (part of SuiteSparse)
C++
3
star
35

ParallelComputingPlayground

Shows different programming techniques for parallel computing on CPU and GPU
C++
2
star
36

KickJS_editor

JavaScript
2
star
37

KickJS_website

GAE Server code for the KickJS.org website
JavaScript
2
star
38

PolyPlane

Simple interactive plane visualization using kick
C++
2
star
39

SDL2andCMake

CMake
1
star
40

SimpleHMesh

A simple implementation of the halfedge mesh data structure
C++
1
star