DGL is a minimalistic 3D and 2D real-time graphics engine written in D language and built on top of OpenGL and SDL. This is an experimental version of the project with manual memory management. When finished, it probably will replace DGL master.
To see what DGL is capable to, check out Atrium, a work-in-progress sci-fi first person puzzle based on physics simulation.
- Fully GC-free
- Supports Windows, Linux, OSX and FreeBSD
- Event system with user-defined events and Unicode keyboard input
- Resource manager with threaded loading
- Own scene file format (DGL3) with Blender exporter
- Loading textures from PNG
- Loading materials from text files with simple human-editable markup
- Dynamic soft shadows
- Unlimited number of dynamic light sources
- GLSL shaders
- Normal mapping and parallax mapping
- Image-based lighting
- Physically based rendering (PBR)
- Unlimited number of render passes, 2D or 3D
- Render to texture
- Antialiasing
- Built-in trackball camera
- 3D geometric shapes
- 2D sprites, including animated ones
- 2D text rendering with TTF fonts and Unicode support
- VFS
- Configuration system
TODO:
- Billboards
- Actors, IQM format loading
- Particle system
- I8n
- Terrain rendering
- Water rendering
DGL comes with a number of usage examples. To build one, run dub build --config=demoname
, where demoname
can be minimal
, pbr
, textio
.
- minimal.d - 'Hello, World' application, demonstrates how to create a window and print text with TrueType font
- pbr.d - physically-based rendering demo (also demonstrates how to use shadows)
- textio.d - text input demo, with support for international keyboard layouts.
Warning: documentation can be outdated!
Copyright (c) 2013-2016 Timur Gafarov. Distributed under the Boost Software License, Version 1.0 (see accompanying file COPYING or at http://www.boost.org/LICENSE_1_0.txt).