A basic 3D scene implemented with various engines, frameworks or APIs.
  • C 58.8%
  • C++ 30.6%
  • JavaScript 7.6%
  • Objective-C 1.1%
  • GLSL 0.5%
  • Other 1.2%
Find a file
2025-07-12 00:46:54 +02:00
cycles Fix README typo 2017-08-01 15:09:20 +02:00
dreamcast Dreamcast: add missing tools. 2025-07-12 00:46:54 +02:00
dx9 DX9: fix light matrix placement. 2024-02-20 13:40:22 +01:00
dx11 DX11: update README. 2024-02-20 23:18:46 +01:00
dx12 DX12: update README and images. 2024-02-27 13:29:23 +01:00
gba Add small detail to GBA readme. 2017-06-03 13:06:02 +02:00
glide Add Glide version. 2021-06-06 16:55:50 +02:00
glsl Update README.md 2018-12-08 01:03:38 +01:00
godot Godot: update README. 2023-07-17 22:37:59 +02:00
metal Minor Metal Xcode project fix. 2018-07-20 00:06:06 +02:00
nds Update all READMEs 2017-03-16 14:20:36 +01:00
opengl Various: minor project updates. 2020-08-05 22:15:10 +02:00
pico8 Update README.md 2018-01-06 17:28:43 +01:00
ps2 PS2: update binary and readme. 2024-03-23 13:15:15 +01:00
ptah Update software rasterizer submodule. 2017-10-22 12:18:33 +02:00
scenekit Various: minor project updates. 2020-08-05 22:15:10 +02:00
unity Unity: fix README typo. 2023-07-21 22:46:52 +02:00
unreal Unreal version: minor adjustments. 2023-07-27 12:48:09 +02:00
vectrex Update README.md 2021-05-15 20:17:37 +02:00
vulkan Vulkan: update project. 2020-08-05 23:40:42 +02:00
webgl WebGL version: cleaning and refactoring 2017-08-01 15:09:20 +02:00
webgpu WebGPU: fix Windows compilation. 2023-07-17 09:25:57 +02:00
.gitignore Dreamcast: add missing tools. 2025-07-12 00:46:54 +02:00
.gitmodules Added OpenGL version 2019-07-19 23:22:44 +02:00
CONTRIBUTING.md Added Contributing guide 2017-08-01 15:09:20 +02:00
GALLERY.md README: udpate links and gallery. 2025-07-12 00:45:18 +02:00
image.png Updated READMEs. 2019-07-19 23:34:35 +02:00
LICENSE.md Added Contributing guide 2017-08-01 15:09:20 +02:00
README.md README: udpate links and gallery. 2025-07-12 00:45:18 +02:00

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!