Releases: gecko0307/dagon
Releases · gecko0307/dagon
Dagon 0.12.0
No changes since 0.12.0-beta2.
Dagon 0.12.0-beta1
- Rendering
Light.diffuse
andLight.specular
parameters that control brightness of diffuse and specular portions of a light- New parameters for particle system objects:
ForceField.active
,BlackHole.threshold
- Ability to limit camera pitch angle in
FirstPersonViewComponent
(pitchLimitMax
andpitchLimitMin
parameters) - Fixed a bug in Sky shader that didn't write proper data to albedo buffer
- Fixed a bug in HUD shader with invalid
va_Texcoord
uniform location - Fixed "black dots" bug with area lights
- Assets
- Initial glTF format support (without animation)
- DDS cubemaps support, in 32 and 16-bit RGBA floating-point formats and with pre-baked mipmaps
- Decoding of generic image formats such as PNG and JPEG now relies on stb_image, resulting in substantial loading speedup for large images. Also PSD and GIF formats are now supported
Material
now supportsroughnessMetallic
parameter to pass combined PBR texture. Following glTF convention, G channel stores roughness and B stores metallic- Cubemaps now can be created from any image (equirectangular HDR or DDS with mipmaps) using
fromImage
method - Built-in disk shape (
dagon.graphics.shapes.ShapeDisk
)
- Post-processing
- Depth of Field effect (
dagon.postproc.shader.dof
) DeferredRenderer.occlusionBufferDetail
parameter that controls resolution coefficient of SSAO buffer
- Depth of Field effect (
- Extensions
dagon:newton
extension that integrates Newton Dynamics real-time physics engine. Newton provides better performance and stability compared to dmech, as well as new features such as convex hulls for dynamic bodies and heightmap collision shapes for terrains
- Misc
- Dagon now uses SDL 2.0.14, dlib 0.22.0, bindbc-loader 1.0.0, bindbc-sdl 1.0.0, bindbc-opengl 1.0.0
- Dagon now recognizes a configuration file (
settings.conf
) in project folder. Configuration overrides some of the hardcoded application settings, such as window width and height, fullscreen and window title - Under Windows now it is possible to hide console window by specifying
hideConsole: 1;
insettings.conf
.
Dagon 0.11.0
Changes since 0.11.0-beta2:
- Misc
- Dagon now uses dlib 0.20.0.
Dagon 0.10.4
- Use dlib 0.19.2.
Dagon 0.11.0-beta2
Changes since 0.11.0-beta1:
- Rendering
- Filmic tonemapper support
- Emission texture is now sampled correctly, with gamma to linear conversion
- Misc
- Dagon now uses dlib 0.20.0-beta1.
Dagon 0.11.0-beta1
Important: This release features major redesign of almost every component in the engine and breaks compatibility with old code.
Changes:
- Overall
- Source tree structure was changed to reduce coupling. Now all modules strictly depend only on modules in the same or lower-level package. See #54 for details.
dagon.logics
is gone, its modules were moved todagon.graphics
- New extension infrastructure based on DUB subpackages to keep core Dagon more lightweight and easier to install. Currently there are four extensions - Nuklear integration, Freetype font loader, IQM model loader, and a physics engine, which are no more available from
dagon
package. You should explicitly add them to your DUB dependencies asdagon:nuklear
,dagon:ftfont
,dagon:iqm
,dagon:physics
. They are importable asdagon.ext.nuklear
,dagon.ext.ftfont
,dagon.ext.iqm
,dagon.ext.physics
. To create font assets, useaddFontAsset
which is now a free function, not a scene method. The same is for IQM assets (addIQMAsset
) - Added new package
dagon.game
- a template application with typical game-oriented rendering setup and a fixed-step update timer
- Source tree structure was changed to reduce coupling. Now all modules strictly depend only on modules in the same or lower-level package. See #54 for details.
- Core
- New module
dagon.core.time
which containsTime
helper structure andCadencer
class
- New module
- Rendering
- Renderer was entirely rewritten from scratch based on a new concept of pipelines (see
dagon.render
package). A pipeline is a sequence of draw call groups - passes. Each pass traverses a subset of scene objects and renders them to a given buffer using a given shader. For example, a deferred pipeline contains geometry pass that fills G-buffer, environment pass and lighting pass - Volumetric scattering (aka 'God rays') for sun light
- Improved PBR - new roughness to lod mapping for environment maps, better looking metals and shiny dielectrics
- Multiple optimizations across the renderer, including less shader switches and data copying, timer fixes, etc. 25-30% performance boost on some systems
- Render viewports can now be resized in runtime
- Standard shaders moved to
dagon.render.shaders
- Discrete LOD drawables (
dagon.graphics.lod
). They render different user-specified drawables based on distance from the camera - Now there's no
Scene.mainSun
- fallback light source should be set for each transparent material usingMaterial.sun
property
- Renderer was entirely rewritten from scratch based on a new concept of pipelines (see
- Materials
specularity
property for materials. It specifies a luminance coefficient for the specular radiance component. It doesn't have a physical meaning, but is useful for material tweaking, for example to eliminate burnt highlights.- Improved water shader, animated waves support
- Assets
- DDS format support for textures. Supported compression types are S3TC (DXT1/BC1, DXT3/BC2, DXT5/BC3), RGTC (BC4, BC5), BPTC (BC6H, BC7)
- Environment
Environment
object was simplified. Now there's no default environment map, onlyenvironment.ambientColor
andenvironment.ambientMap
.
- Post-processing
- Post-processing engine was also reimplemented and now exists as a separate render pipeline. See
dagon.postproc
anddagon.game.postprocrenderer
- Denoise filter for SSAO. A lot less samples are now needed to achieve smooth ambient occlusion. Also SSAO is now rendered into a separate buffer, so that its resolution can be lowered for better performance, and occlusion data can be used at several stages of the pipeline
- Post-processing engine was also reimplemented and now exists as a separate render pipeline. See
- UI
- File drag-and-drop event
- Misc
dagon:ftfont
uses official BindBC Freetype binding instead of custom one.
Dagon 0.11.0-alpha3
- IQM and animated models extension
- Project initialization for Dub:
dub init --type=dagon
.
Dagon 0.11.0-alpha2
- Colorspace fix in decal shader
LoadingScreen
now usesApplication
instead ofGame
Dagon 0.11.0-alpha1
Preview release of 0.11 branch. See CHANGELOG.md
for details.
Dagon 0.10.3
- Fixed
ShapeQuad
andHUDShader
- #66