Skip to content

Releases: gecko0307/dagon

Dagon 0.16.0

25 Feb 16:32
Compare
Choose a tag to compare
  • Core
    • New method Application.takeScreenshot
  • Rendering
    • Approximated subsurface scattering support
    • Environment light probes support
    • AgX tonemapping support: Tonemapper.AgX_Base and Tonemapper.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 now World
    • EntityGroup* accessor classes moved to dagon.graphics.world
    • New material property, subsurfaceScattering
  • Post-processing
    • Fix sampler conflict in LUT shader
  • Extensions
    • dagon:imgui extension now uses bindbc-imgui 0.7.0
    • dagon:newton and dagon: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

30 Aug 21:10
Compare
Choose a tag to compare
  • Core
    • Relative mouse mode support (EventManager.setRelativeMouseMode)
    • dagon.core.locale: fix deprecations in Windows locale API signatures
  • Assets
    • 1D and 3D textures support
    • Embedded images support in glTF loader
    • dagon.graphics.texture: New methods Texture.setFaceImage, Texture.setFaceBit, new function cubeFaceBit
    • dagon.graphics.cubemap module is deprecated, use dagon.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
  • UI
    • FirstPersonViewComponent uses relative mode by default, and it can be switched with useRelativeMouseMode property
  • Extensions
    • Updated Newton binding
    • NewtonUserJointSetRowSpringDamperAcceleration was removed in favor of NewtonUserJointSetRowMassDependentSpringDamperAcceleration and NewtonUserJointSetRowMassIndependentSpringDamperAcceleration
    • New method NewtonRigidBody.localPointVelocity
  • Misc
    • Dagon now uses dlib 1.2.1.

Dagon 0.14.1

09 Sep 14:32
Compare
Choose a tag to compare
  • Update init-exec template code

Dagon 0.14.0

27 Aug 09:01
Compare
Choose a tag to compare
  • Core
    • Custom event dispatcher (EventManager.onProcessEvent) that provides access to raw SDL events
  • Rendering
    • dagon.render.deferred package is now dagon.render.passes
    • Unreal and Reinhard2 tonemapping operators (Tonemapper.Unreal and Tonemapper.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 now baseColorTexture and baseColorFactor
      • roughnessMetallic is now roughnessMetallicTexture
      • roughness is now roughnessFactor
      • metallic is now metallicFactor
      • emission is now emissionTexture and emissionFactor
      • energy is now emissionEnergy
      • normal is now normalTexture and normalFactor
      • height is now heightTexture and heightFactor
      • transparency is now opacity
      • clipThreshold is now alphaTestThreshold
      • blending is now blendMode
      • parallax is now parallaxMode
      • shadowsEnabled is now useShadows
      • fogEnabled is now useFog
      • culling is now useCulling
    • Old material properties are still supported, but deprecated and write-only. Material.roughness and Material.metallic now don't support textures
    • Texture system redesign. Texture class now can be created from raw pixel data without intermediate SuperImage, hense DDS textures are now loaded directly to Texture object without additional layers of abstraction. Also Texture now supports cubemaps in addition to 2D textures
    • Added support for ASTC texture compression format
    • New module dagon.graphics.texproc with combineTextures function
    • alphaMode support for glTF materials
  • Game
    • New methods: Game.resize, Game.frameTexture
  • 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 and libnuklear.so are now loaded from /usr/local/lib under Posix
    • Fix CMake configuraiton for installing Nuklear in /usr/local/lib under Posix.

Dagon 0.13.0

02 Mar 07:40
Compare
Choose a tag to compare
  • Core
    • State for joystick buttons in EventManager (joystickButtonPressed, joystickButtonUp, joystickButtonDown)
  • 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 with AssetManager.registerImageLoader method
    • Dagon now uses dlib.image to load images by default. stb_image is available through dagon:stbi extension. Import dagon.ext.stbi module and register the loader with stbiRegister function in your scene constructor:
      stbiRegister(assetManager);
      
    • OBJ loader now supports quads
    • emissiveFactor support for glTF materials
    • Entity.setRotation
  • Post-processing
    • Motion blur shader now supports static radial blur - enable it with PostProcRenderer.radialBlurAmount. Fixed Entity.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 with blurMask property set to 0
    • New properties to control lens distortion effect: PostProcRenderer.lensDistortionDispersion, PostProcRenderer.lensDistortionScale
  • Extensions
    • dagon.ext.physics was removed in favour of dagon.ext.newton
    • NewtonRigidBody.addForceAtPos now works correctly. Added NewtonRigidBody.centerOfMass
    • NewtonConvexHullShape is now created from TriangleSet instead of Mesh
    • Fixed compilation of dagon.ext.iqm. Added Actor.blendSpeed property. Switching Actor 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

29 Oct 10:00
Compare
Choose a tag to compare
  • Fixed a bug with wrong rendering in SkyShader.

Dagon 0.12.0-beta2

11 Oct 06:34
Compare
Choose a tag to compare

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 returns NewtonJoint pointer.
  • Misc
    • Dagon now uses dlib 0.23.0.

Dagon 0.12.0

26 Oct 10:29
Compare
Choose a tag to compare

No changes since 0.12.0-beta2.

Dagon 0.12.0-beta1

13 Sep 08:17
Compare
Choose a tag to compare
  • Rendering
    • Light.diffuse and Light.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 inFirstPersonViewComponent (pitchLimitMax and pitchLimitMin 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 supports roughnessMetallic 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
  • 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; in settings.conf.

Dagon 0.11.0

20 Oct 21:24
Compare
Choose a tag to compare

Changes since 0.11.0-beta2:

  • Misc
    • Dagon now uses dlib 0.20.0.