Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kosua20/herebedragons
A basic 3D scene implemented with various engines, frameworks or APIs.
https://github.com/kosua20/herebedragons
blender computer-graphics cycles dragon gba graphics-programming metal nds opengl ps2 rendering scenekit software-rendering unity webgl
Last synced: about 2 months ago
JSON representation
A basic 3D scene implemented with various engines, frameworks or APIs.
- Host: GitHub
- URL: https://github.com/kosua20/herebedragons
- Owner: kosua20
- License: mit
- Created: 2016-10-14T22:29:21.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-23T12:15:20.000Z (3 months ago)
- Last Synced: 2024-03-23T13:29:33.043Z (3 months ago)
- Topics: blender, computer-graphics, cycles, dragon, gba, graphics-programming, metal, nds, opengl, ps2, rendering, scenekit, software-rendering, unity, webgl
- Language: C
- Homepage: http://simonrodriguez.fr/dragon
- Size: 159 MB
- Stars: 1,711
- Watchers: 45
- Forks: 79
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Lists
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-stars - kosua20/herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. (C)
- fucking-awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. (C)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp-completed - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp-completed - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
- awesome-cpp - herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] [website](http://simonrodriguez.fr/dragon/) (Graphics)
README
# 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)](https://www.youtube.com/watch?v=Bbpu34S2bSI)
![](image.png)
The following versions are currently available:
- [OpenGL](https://github.com/kosua20/herebedragons/tree/master/opengl)
- [WebGL](https://github.com/kosua20/herebedragons/tree/master/webgl)
- [Vulkan](https://github.com/kosua20/herebedragons/tree/master/vulkan)
- [WebGPU](https://github.com/kosua20/herebedragons/tree/master/webgpu)
- [Metal](https://github.com/kosua20/herebedragons/tree/master/metal)
- [SceneKit](https://github.com/kosua20/herebedragons/tree/master/scenekit)
- [Godot](https://github.com/kosua20/herebedragons/tree/master/godot)
- [Unity](https://github.com/kosua20/herebedragons/tree/master/unity)
- [Unreal](https://github.com/kosua20/herebedragons/tree/master/unreal)
- [Blender Cycles](https://github.com/kosua20/herebedragons/tree/master/cycles)
- [Ptah](https://github.com/kosua20/herebedragons/tree/master/ptah) (a custom real-time renderer, see [the Github page](https://github.com/kosua20/PtahRenderer/))
- [Nintendo DS](https://github.com/kosua20/herebedragons/tree/master/nds)
- [Nintendo Game Boy Advance](https://github.com/kosua20/herebedragons/tree/master/gba)
- [PlayStation 2](https://github.com/kosua20/herebedragons/tree/master/ps2)
- [PICO-8](https://github.com/kosua20/herebedragons/tree/master/pico8)
- [Vectrex](https://github.com/kosua20/herebedragons/tree/master/vectrex)
- [Glide](https://github.com/kosua20/herebedragons/tree/master/glide)The following versions are (tentatively) planned:
- DirectX (12, and 9 or 11), OpenGL ES
- other console hardwares
- other engines
- another raytracing approachIn 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.
The initial 3D models and textures are contained in the `opengl/resources` [directory](https://github.com/kosua20/herebedragons/tree/master/opengl/resources).## Other implementations
Here you can find implementations using some of the above APIs combined with other programming languages, submitted by awesome people!- An OpenGL + Python version, by cprogrammer1994: [herebedragons-python](https://github.com/cprogrammer1994/herebedragons-python). (see [#11](https://github.com/kosua20/herebedragons/issues/11))
- A Vulkan version, by vazgriz: [vk_dragons](https://github.com/vazgriz/vk_dragons).