• Stars
    star
    1,704
  • Rank 26,265 (Top 0.6 %)
  • Language
    C
  • License
    MIT License
  • Created over 7 years ago
  • Updated 9 months ago

Reviews

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

Repository Details

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

Here be dragons

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. You can check a video of most versions runnning here (Youtube)

The following versions are currently available:

The following versions are (tentatively) planned:

  • OpenGL ES
  • other console hardwares
  • other engines
  • another raytracing approach

In the directory of each version, you can find the source code, the corresponding resources (as each method has its own format/quality constraints), along with a readme describing the method and a few examples.

Resources

The scene is composed of four main elements:

  • a plane representing the ground, with a pavement texture.
  • a dragon (the Stanford dragon).
  • a monkey head ('Suzanne') rotating around its vertical axis.
  • a skybox surrounding the scene, textured with a cloudy sky.

Additionally, the sun is simulated by using a directional light, and the camera should be able to rotate around the scene. Note that some versions might provide additional effects, such as soft shadow maps, parallax mapping or screen space ambient occlusion. The initial 3D models and textures are contained in the opengl/resources directory.

Other implementations

Here you can find implementations using some of the above APIs combined with other programming languages, submitted by awesome people!

More Repositories

1

MIDIVisualizer

A small MIDI visualizer tool, using OpenGL
C++
923
star
2

Rendu

A simple realtime graphics playground for experimentations.
C++
518
star
3

PtahRenderer

A small software graphics renderer
Swift
86
star
4

sr_graph

A simple, one-file, header-only, C++ utility for graphs, curves and histograms.
C
72
star
5

Technique-iOS

A simple implementation of SCNTechnique
Swift
68
star
6

opengl-skydome

A fragment-shader skydome implementation
GLSL
45
star
7

PRPViewer

Real-time viewer for Uru and Myst V level assets, based on libHSPlasma.
C++
11
star
8

LazyBrush-implementation

A study and implementation of 'LazyBrush: Flexible Painting Tool for Hand-drawn Cartoons '
MATLAB
9
star
9

BacteriaGeneration

My submission for the Monthly Challenge #22 (Sep, 2017) - Procedural Bacteria, on r/proceduralgeneration
C++
7
star
10

Thoth

A simple static blog generator
Swift
6
star
11

sr_webcam

A C library providing basic access to webcams on Windows, macOS and Linux.
C++
3
star
12

Rendu-resources

Additional resources for the Rendu graphics experimentation engine (https://github.com/kosua20/Rendu).
3
star
13

TheQuantizer

The Quantizer - A Swift-based reimplementation of ImageAlpha
C
3
star
14

PirateMap

My submission for the Monthly Challenge #1 (Dec, 2015) - Procedural Pirate Map, on r/proceduralgeneration
Java
2
star
15

VFS

Our VFS assignement
Java
1
star
16

sr_keychain

A C library providing basic access to keychain/credential managing utilities on Windows, macOS and Linux.
C
1
star
17

quanto

An image quantizer, in C++
C
1
star
18

CGLFW3Linux

Linux GLFW3 bindings for Swift
C
1
star
19

ProceduralCastle

My submission for the Monthly Challenge #2 (Jan, 2016) - Procedural Castle, on r/proceduralgeneration
Processing
1
star
20

calco

A calculator with a syntax close to GLSL
C++
1
star
21

GL_Dragons

A draconic point-clouds renderer.
C++
1
star
22

MIDIVisualizer-dependencies

Binary dependencies for MIDIVisualizer deployement (https://github.com/kosua20/MIDIVisualizer)
CMake
1
star
23

sr_gui

A C library providing access to basic GUI elements on Windows, macOS and Linux.
C
1
star