Releases: turanszkij/WickedEngine
Releases · turanszkij/WickedEngine
v0.60.61
0.60.14:
- hierarchy update system was rewritten to use multiple threads (instead of top-down update, now a bottom-up traversal is used)
- vulkan: added support for dynamic uniform buffers
- added motion blur shutter speed to remove dependency from frame rate
- light shaft fix when camera is far from origin
- water ripples are rendered in lower resolution
- added restitution property for emitters
- emitters will be distance-sorted with 16-bit float precision instead of integer precision
- graphics API: command lists count is no longer hard coded, so infinite number of command lists can be used
- RenderQueue refactors, improvements in wi::renderer, no longer using fixed allocator sizes
- wi::font and wi::image SetCanvas() function no longer requires a CommandList
- wi::image::SetBackground() function no longer requires a CommandList
0.60.19:
- added Dynamic Diffuse Global Illumination (DDGI)
0.60.31:
- Screen space reflection improvements by @Kliaxe : optimizations, quality improvements. Some improvements also included for ray traced reflections.
- Added missing SetPointer implementation for Linux/SDL by @flipdp
- Updated Vulkan Memory Allocator library by @amerkoleci
- The Visual Studio build now uses Visual Studio 2022 by default
- GraphicsDevice improvements:
- new function: ClearUAV: fully clears unordered access view resources to value
- new function: GetMinOffsetAlignment: queries the precise offset alignment needed for a GPU buffer's subresources
- CreateSubresource: added optional parameter to request a specific format for only a single subresource
- other improvements, fixes
- MeshComponent: merged index, vertex and subset buffers into combined resources, reduced allocations
- CPU performance improvements when updating the Scene
- Entity_Serialize improvements
- Editor: lots of fixes for undo/redo functionality
0.60.32:
- MIP mapping implemented in raytracing effects with ray cones technique
- improved visibility resolve pass
- depth is now computed purely from primitive ID and camera projection, depth buffer is never converted to shader resource
- fast path for when minimal amount of surface params are needed for the frame
- it will compute surface params only when certain post processes request them
- ShaderMesh and ShaderMeshSubset are now combined into ShaderGeometry to reduce GPU buffer loads
- Mesh UV Set 0 and 1 vertex buffers are interleaved, improves performance of depth passes
- render queue will no longer be sorted for RENDERPASS_MAIN - Opaque
- dx12, vulkan: draw-indirect-count implementations
- performance improvements, fixes, refactors
0.60.48:
- improvements for materials with additive blend mode in raytracing
- added better random generator in shaders
- path tracing performance improvements:
- ray termination chance based on expected ray contribution
- anyhit traces will be disabled after set amount of bounces ( ANYTHIT_CUTOFF_AFTER_BOUNCE_COUNT value )
- ocean updates:
- ocean mesh uses indexed draw (performance improvement)
- gradient tiling pattern fix
- added underwater effect
- transparency range (distance fade) improvement
- raytracing shaders use sampler that is configurable by user like the in object shaders
- added support for Linux package files (by @MolassesLover )
- added support for system-wise install by CMake (by @portaloffreedom )
- Linux file dialog fix (by @megumumpkin )
- other fixes
0.60.50:
- Added procedural terrain generator (for now this is Editor only preview version)
- Added LOD (Level Of Detail) support
- Added LOD Generator to Editor (Mesh Window -> LOD Gen), uses the meshoptimizer library
- Editor can merge multiple objects now into one mesh (Mesh window -> Merge Selected)
- Ocean: added occlusion culling support to detect when ocean is occluded
- can skip planar reflection render for ocean
- can skip ocean simulation
- can skip ocean rendering
- CPU ray tracing optimization: TMin and TMax parameter
- can improve Ray-AABB and Ray-Triangle tests
- improves performance of third person character controller script
- other fixes
0.60.61:
- added cloud shadows
- improved wind effect
- added stars to sky (realistic sky type)
- added custom scaling to canvas (it is an optional scaling on top of display DPI scaling)
- hierarchy system: transform components existing are no longer assumed
- Linux file dialog filtering fix
- other fixes and improvements
v0.60.4
Major updates since the last release:
0.59.6:
- big shader refactors:
- removed resource and sampler binding macros, so the native HLSL resource types will be used in shader code
- naming convention refactors in various places, for example the global frame and camera constant buffers, and helper functions in globals.hlsli
0.59.10:
- Editor (Linux): proper handling of application focus and shader hot reload (by @portaloffreedom )
- wiArchive improvements:
- added ability to save archive to c++ header file as byte array
- added ability to open archive from memory mapped pointer as read only
- optimizations
- Editor: added ability to select a subset and subset material from Mesh window
- refactors, fixes
0.59.11:
- std container replacements for vector, unordered_map, unordered_set
- unordered_map and unordered_set replaced with ska::flat_hash_map
- vector is still from std::, but now there is an interface to replace it
- wiBackLog improvements
- wiArchive improvements
- editor: added option to dump scene to C++ header file
- tests: unordered_map performance test (std:: vs ska::)
- common improvements, refactors
0.60.0:
- namespace refactor (example: wiGraphics:: -> wi::graphics)
- provided namespace compatibility macro for old user code: WICKEDENGINE_BACKWARDS_COMPATIBILITY_0_59. Include this beforeincluding WickedEngin.h to keep using the old namespaces and types in your application.
- resource manager will return Resource instead of shared_ptr objects
- MAD shader optimizations
- implemented alpha to coverage with alpha tested materials when MSAA is enabled
- alpha testing fix with transparent shadow maps
- TLAS and scene buffers will be recreated less frequently when things get added/removed from the scene
0.60.3:
- DX12 updates:
- removed dependency on shader reflection, so dxcompiler.dll is no longer necessary to have
- added support for using custom root signatures in shaders
- if not using custom root signature, a default root signature will be used instead when the #define WICKED_ENGINE_DEFAULT_ROOTSIGNATURE is available
- other graphics API updates
- added support for depth bounds test in new function: BindDepthBounds() (by @amerkoleci )
- PushConstants will now immediately set the shader constants, and it has stricter requirements now. PushConstants function must only be used after a pipeline was already set on a command list (either graphics pipeline, compute shader or raytracing pipeline)
- PushConstants will now also handle offsets (optional)
- removed the SetCommonSampler() API. The static samplers are not configurable in a grphics API independent way now.
- removed the auto_sampler functionality from shader creation for same reason as SetCommonSampler() API.
- other updates:
- atmospheric sky update will now run on async compute, in parallel with depth prepass
- profiler can now make use of Superluminal performance API if the library is available (check wiProfiler.cpp for more details)
- new command line argument: alwaysactive which will make the application be always active, even when it is in the background
- the HLSL 5.0 compiler is available again, the dll library will be loaded on demand only, so it's not necessary to have.
v0.59.3
Major updates since the [last release (0.56.34)](https://github.com/turanszkij/WickedEngine/releases/tag/0.56.34):
version 0.56.38:
- volumetric clouds are now part of the weather system instead of the post processes
- volumetric cloud parameters exposed in the weather component
- volumetric cloud parameters are now serialized
- editor: added some volumetric cloud parameters to weather window
- added multiply blendmode to image renderer and mesh rendering
version 0.56.55:
- volumetric clouds rendered in planar reflections
- volumetric clouds occlude lens flares and light shafts
- alpha tested materials will use stochastic transparency when Temporal AA is enabled
- ocean lighting fixes
- lens flares no longer use geometry shader
- lens flares for directional light will disappear below horizon
version 0.57.0:
- DX11 removed, DX12 is default now on Windows
- dx11-backup branch: https://github.com/turanszkij/WickedEngine/tree/dx11-backup
- graphics interfaces improved:
- Bindless descriptor support is now assumed
- GPU Buffers with USAGE_UPLOAD and USAGE_READBACK will be persistently mapped after creation
- Removed Map/Unmap
- added BindDynamicConstantBuffer helper function
- improved AllocateGPU helper function
- GPU Queries resolving can be done directly into GPUBuffer
- UpdateBuffer now doesn't synchronize internally, this allows batching updates
- removed support for bindless constant buffers (uniform buffers)
- BindConstantBuffer will accept offset
- RESOURCE_STATES refactor, they can be combined now in the barriers
- many other refactors
- gbuffer normals removed, implemented visibility buffer
- bindless decals, bindless lightmaps, bindless hair particles, bindless software path tracing
- hair particles path tracing support
- path tracing eye adaption supported
- Surfel GI (experimental)
version 0.57.18:
- added Basis Universal library
- added support for BASIS, KTX2 texture files (encode and transcode supported)
- GLTF extension added:
KHR_texture_basisu
version 0.57.22:
- eye adaption is now histogram-based
- bloom affected by expose and eye adaption
- bloom is no longer in post process chain, it's applied in tonemap shader instead
- path tracing bloom enabled
- linux: audio implementation (by @megumumpkin )
0.57.27:
- gpu predication support
- shadow occlusion culling with gpu predication
0.57.37:
- SDL controller support for Linux (by @megumumpkin )
- Surfel GI updates: surfel recycling, quality improvements
0.58.0:
- removed resource bindings from RenderPath3D, now it uses bindless resources. Bindless resources from RenderPath3D can be accessed from any shader from the Camera constant buffer
- moved resolution dependent parameters to from Frame constant buffer to Camera constant buffer: Canvas, InternalResolution, tilecount...
- refactor: Camera constant buffer can be accessed easily with GetCamera() in shaders
- refactor: shader side Scene structure and Weather parameters were heavily refactored. Shaders can easily get access to the scene by calling GetScene() now
- refactor: wiRenderer::UpdateCameraCB() was changed to wiRenderer::BindCameraCB()
- vulkan, dx12: fixed incorrect tracking of PSO dirty state which resulted in a lot more PSO switches than necessary
- vulkan: fixed bindless access of acceleration structures
0.58.2:
- emitted particles are now supported in raytracing effects: path tracing, raytraced shadows, raytraced AO, raytraced reflections
- fixes
0.58.8:
- added vulkan pipeline state cache, this will significantly improve driver side shader compile times on vulkan (by @amerkoleci )
0.58.16:
- linux: now using the unified shader compiler interface (by @Matteo )
- linux: implemented network interface (by @megumumpkin )
- Dear ImGui integration sample (by @amerkoleci )
- improvements, fixes
0.58.17:
- added HDR display support
- Linux improvements
0.59.0:
- big refactor in wiGraphics (by @jdswebb) (this can result in code breaking changes):
- naming convention is snake_case for all graphics descriptor structures
- enums were changed to enum class for more type safety, this will require enums to be obtained from their respective type's scope, they are not available straight from wiGraphics scope
0.56.34
- raytraced effects updated: raytraced reflections, shadows, ambient occlusion, path tracing, lightmap baking
- dx12, vulkan perf improvements: bindless, async compute
- many improvements and fixes
0.51.18
- performance optimizations for CPU and GPU
- dx12 and vulkan improvements
- raytracing effects updated
- updated planar reflections with correct lighting, decals, probes
- voxel GI improvement
- many fixes
v0.49.1
- removed forward, tiled forward, deferred, tiled deferred render paths, now there is just RenderPath3D and RenderPath3D_PathTracing. The new RenderPath3D supports everything now more consistently.
- custom shaders improved
- new material shaders: anisotropic, cartoon, unlit
- added subsurface profiles for materials: skin, snow
- raytraced shadows denoising
- lots of fixes and improvements
v0.48.0
WIP: Initial linux support using SDL (#136) * Initial linux support using SDL * fixed link error and gitignore * fix in working directory initialization (windows side) * Added README_Linux and fixed a few compilation issues in ubuntu * Rename main to main_Windows in Tests * Better default renderering backend selector * Added backlog terminal output on linux * added asserts on all missing vulkan function call results * added portable file dialogs also small tests update and cleanup * Added Editor compile target * linux ci * linux ci * cmake update * cmake update? * cmake * Editor_Windows fix * build test * make * build tools? * update * ubuntu 20.04 * fix? * cmake * build * build? * package linux build * updates, bump version * backslash to forward slash, eof newlines, add portable-file-dialogs license * xcopy needs backslash duh; update readme; * copy fix * updated readme * readme update * updated readme * updated readme * fix incorrect file encoding linux * paint tool fix * linux: add missing shaders * packaging update Co-authored-by: Turánszki János <[email protected]> Co-authored-by: Turanszki Janos <[email protected]>
v0.42.2
lua fix