Releases: gecko0307/dagon
Releases · gecko0307/dagon
Dagon 0.17.1
Dagon 0.17.0
- Core
- New methods
Application.setWindowSize
,Application.setFullscreen
,Application.centerWindow
- Arbitrary cadencer frequency support (
Cadencer.setFrequency
). Now you can adapt application update frequency to display refresh rate usingApplication.frequencyToRefreshRate
- New methods
- Game
- Basic scene management in
Game
class:Game.scenes
andGame.setCurrentScene
that can be used to set current scene by name
- Basic scene management in
- Rendering
- Wayland support under Linux
- Material opacity support in HUD shader
- Assets
- Fixed a bug with incomplete GLTF scene deletion
- Extensions
- Fix jumping for character controller in
dagon:newton
- Fix jumping for character controller in
- Misc
- Dagon and extensions now use bindbc-loader 1.1, bindbc-opengl 1.1, bindbc-sdl 1.4, bindbc-freetype 1.2, bindbc-newton 0.3.
Dagon 0.16.0
- Core
- New method
Application.takeScreenshot
- New method
- Rendering
- Approximated subsurface scattering support
- Environment light probes support
- AgX tonemapping support:
Tonemapper.AgX_Base
andTonemapper.AgX_Punchy
- For background objects such as a skybox it is now necessary to manually disable G-buffer writes:
skyEntity.gbufferMask = 0.0f;
- Assets
EntityManager
is nowWorld
EntityGroup*
accessor classes moved todagon.graphics.world
- New material property,
subsurfaceScattering
- Post-processing
- Fix sampler conflict in LUT shader
- Extensions
dagon:imgui
extension now uses bindbc-imgui 0.7.0dagon:newton
anddagon:imgui
extensions now include prebuilt libraries for Linux- Extensions now don't provide x86 libraries.
- Misc
- Dagon now uses dlib 1.3.0.
Dagon 0.15.0
- Core
- Relative mouse mode support (
EventManager.setRelativeMouseMode
) dagon.core.locale
: fix deprecations in Windows locale API signatures
- Relative mouse mode support (
- Assets
- 1D and 3D textures support
- Embedded images support in glTF loader
dagon.graphics.texture
: New methodsTexture.setFaceImage
,Texture.setFaceBit
, new functioncubeFaceBit
dagon.graphics.cubemap
module is deprecated, usedagon.graphics.texture
instead- Deprecated material properties have been removed
- Post-processing
- Hald CLUT support in LUT shader +
Texture.createFromImage3D
method. When you use a 3D texture as a lookup table, the shader will automatically switch to the Hald mode - Manual mode parameters for DoF filter:
dofManual
,dofNearStart
,dofNearDistance
,dofFarStart
,dofFarDistance
- Hald CLUT support in LUT shader +
- UI
FirstPersonViewComponent
uses relative mode by default, and it can be switched withuseRelativeMouseMode
property
- Extensions
- Updated Newton binding
NewtonUserJointSetRowSpringDamperAcceleration
was removed in favor ofNewtonUserJointSetRowMassDependentSpringDamperAcceleration
andNewtonUserJointSetRowMassIndependentSpringDamperAcceleration
- New method
NewtonRigidBody.localPointVelocity
- Misc
- Dagon now uses dlib 1.2.1.
Dagon 0.14.1
- Update init-exec template code
Dagon 0.14.0
- Core
- Custom event dispatcher (
EventManager.onProcessEvent
) that provides access to raw SDL events
- Custom event dispatcher (
- Rendering
dagon.render.deferred
package is nowdagon.render.passes
- Unreal and Reinhard2 tonemapping operators (
Tonemapper.Unreal
andTonemapper.Reinhard2
, respectively)
- Assets
Material
now provides a new set of explicit properties for direct compatibility with glTF (texture properties always take precedence over factor properties):diffuse
is nowbaseColorTexture
andbaseColorFactor
roughnessMetallic
is nowroughnessMetallicTexture
roughness
is nowroughnessFactor
metallic
is nowmetallicFactor
emission
is nowemissionTexture
andemissionFactor
energy
is nowemissionEnergy
normal
is nownormalTexture
andnormalFactor
height
is nowheightTexture
andheightFactor
transparency
is nowopacity
clipThreshold
is nowalphaTestThreshold
blending
is nowblendMode
parallax
is nowparallaxMode
shadowsEnabled
is nowuseShadows
fogEnabled
is nowuseFog
culling
is nowuseCulling
- Old material properties are still supported, but deprecated and write-only.
Material.roughness
andMaterial.metallic
now don't support textures - Texture system redesign.
Texture
class now can be created from raw pixel data without intermediateSuperImage
, hense DDS textures are now loaded directly toTexture
object without additional layers of abstraction. AlsoTexture
now supports cubemaps in addition to 2D textures - Added support for ASTC texture compression format
- New module
dagon.graphics.texproc
withcombineTextures
function alphaMode
support for glTF materials
- Game
- New methods:
Game.resize
,Game.frameTexture
- New methods:
- Extensions
- Experimental Dear ImGui extension,
dagon.ext.imgui
. It is based on bindbc-imgui binding. It will not replace Nuklear, both toolkits will coexist in future - New constraint
NewtonUserJointConstraint
in Newton extension - Fix raycast in Newton extension
libnewton.so
andlibnuklear.so
are now loaded from/usr/local/lib
under Posix- Fix CMake configuraiton for installing Nuklear in
/usr/local/lib
under Posix.
- Experimental Dear ImGui extension,
Dagon 0.13.0
- Core
- State for joystick buttons in
EventManager
(joystickButtonPressed
,joystickButtonUp
,joystickButtonDown
)
- State for joystick buttons in
- Rendering
- Fixed state validation failure on AMD (different sampler types for same sample texture unit). Cubemap and equirectangular environment map now use different texture units
- Assets
- Images are now loaded using callback mechanism in
AssetManager
. You can register your own loader function withAssetManager.registerImageLoader
method - Dagon now uses dlib.image to load images by default. stb_image is available through
dagon:stbi
extension. Importdagon.ext.stbi
module and register the loader withstbiRegister
function in your scene constructor:stbiRegister(assetManager);
- OBJ loader now supports quads
emissiveFactor
support for glTF materialsEntity.setRotation
- Images are now loaded using callback mechanism in
- Post-processing
- Motion blur shader now supports static radial blur - enable it with
PostProcRenderer.radialBlurAmount
. FixedEntity.blurMask
for objects rendered via forward pipeline. Mask is now used to smoothly decrease motion blur in a processed fragment, which allows to fully avoid undesirable blur leaks inside entities withblurMask
property set to0
- New properties to control lens distortion effect:
PostProcRenderer.lensDistortionDispersion
,PostProcRenderer.lensDistortionScale
- Motion blur shader now supports static radial blur - enable it with
- Extensions
dagon.ext.physics
was removed in favour ofdagon.ext.newton
NewtonRigidBody.addForceAtPos
now works correctly. AddedNewtonRigidBody.centerOfMass
NewtonConvexHullShape
is now created fromTriangleSet
instead ofMesh
- Fixed compilation of
dagon.ext.iqm
. AddedActor.blendSpeed
property. SwitchingActor
animation to the same frame range as the current one now doesn't cause loop reset
- Debugging tools
- Shader programs are now validated against current OpenGL state in debug mode. Invalid shader causes application exit
- Debug output messages are now more informative, they include textual definitions of message source, type and severity instead of numeric constants. Issues with high severity cause application exit.
- Misc
- Dagon now uses dlib 1.0.0.
Dagon 0.12.1
- Fixed a bug with wrong rendering in
SkyShader
.
Dagon 0.12.0-beta2
Changes since 0.12.0-beta1:
- Rendering
- Background color is now used correctly
- Any entity can use terrain shader
Entity.gbufferMask
to store the value that should be written to alpha channel of color buffer in G-buffer- Support
light.diffuse
,light.specular
in sun light shader
- Newton extension
FirstPersonViewComponent.baseOrientation
NewtonRigidBody.addImpulse
NewtonRigidBody.createUpVectorConstraint
now returnsNewtonJoint
pointer.
- Misc
- Dagon now uses dlib 0.23.0.
Dagon 0.12.0
No changes since 0.12.0-beta2.