Commit Graph

61 Commits

Author SHA1 Message Date
Turánszki János f277a00596 GUI updates (#490) 2022-07-28 20:59:25 +02:00
Turánszki János 5a0c423ddd Updates:
- editor: quicksave, multiple scenes support, gui changes, additional shortcuts
- physics: improvements for handling multiple scenes, and removal of physics objects
- scripting: ability to override global scene and camera with custom scene and camera from cpp side
2022-07-14 15:21:28 +02:00
Turánszki János f7d28b1127 GUI scrollbar updates (#447) 2022-05-19 22:42:49 +02:00
Turánszki János 74cb74d3c9 version 0.60 (#367)
- namespace refactor (example: wiGraphics:: -> wi::graphics)
  - provided namespace compatibility macro for old user code: WICKEDENGINE_BACKWARDS_COMPATIBILITY_0_59
- resource manager will return `Resource` instead of `shared_ptr<Resource>` 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
2021-12-03 21:22:27 +01:00
James Webb 4f82ed8fbd wiGraphics refactors (#359)
* Mark concrete graphics device classes as final - they should not be inherited from further.

* Apply consistent snake_cast naming (which has been used in more recent additions) across wiGraphics structs

* Make 'CommandList' type safe so that calling graphics device functions is less error-prone.

* Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice().

* Bump minor version for graphics refactors.

* Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter.

* Convert wiGraphics.h enums to use enum class (except a couple of raytracing flag enums which seem best left)

* hdr fix

* Documentation updates for enum class.

* Revert "Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter."

This reverts commit fd70249554.

* Revert "Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice()."

This reverts commit 69b5326cfc.

* Fix debug build

* Fix gcc build (hopefully). Move bitmask operator defs to end of file outside of wiGraphics namespace.

* Remove 'to_underlying' and replace with casts

* graphics device access decoupled from wiRenderer, now should be accessed from wiGraphics::GetDevice()

* minor refactors, comments

* dx12 assert fix

* fixes

* commandlist refactor

* commandlist initial value

* commandlist refactor

* graphicsdevice comments, GetActivePipelineCount() function

* has changed to has_flag

* just rename a thing

Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
2021-11-17 20:27:10 +01:00
Turánszki János f3687dbf4e DX11 removal, Surfel GI
version 0.57.0:
- DX11 removed, DX12 is default now on Windows
- 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)
2021-09-05 18:59:03 +02:00
Turánszki János 3d55225452 FidelityFX-FSR (#288)
* FidelityFX-FSR

* fsr update

* editor fsr sharpness slider
2021-07-18 17:18:01 +02:00
Turanszki Janos 3d9db2cbcf raytracing: more precise feature query 2021-06-17 19:38:18 +02:00
Turanszki Janos 1b7432a57f volumetric cloud updates:
- added light shaft occlusion support
- moved into weather
- parameter access, serialization
2021-06-16 21:57:20 +02:00
Turánszki János 662470520e Raytraced shadow updates (#263)
* rtshadow and rtao refactors

* vulkan update

* blue noise for rtshadow, rtao

* path trace fix

* rt shadow multi spp

* path trace fix

* fidelity-fx raytraced shadows denoiser

* fixes

* raytracing light sampling improvement

* blue noise packed into texture

* vulkan fix

* blue noise refactor

* rtao svgf denoiser

* denoiser fixes

* fix

* blue noise update

* precompute blue noise phase

* rtao forces 1spp

* denoise 4 lights

* fixes

* unshadowed light fix
2021-05-18 13:11:55 +02:00
Turánszki János f1ced24f05 Multi swapchain support (#257)
* multi swapchain draft

* uwp fix

* swapchain resize handling

* swapchain buffercount

* vsync toggle

* tests fix

* update

* everything removed from graphicsdevice regarding global screen params, engine refactor

* added GetSwapChainTexture() function to graphics device; screenshot() now requires swapChain

* linux fix: vulkan device needs window handle for instance creation

* refactor

* removed unused includes

* shader refactor and lensflare fix

* swapchain clearcolor and other refactors

* vulkan: no vector allocation in submit

* tests fix

* refactors

* lens flare canvas size fix

* gui refactor for canvas support

* refactors

* removed global canvas state

* msaa fix

* fixes

* refactor to minimize interface changes

* gui changes

* checkbox fix

* gui fixes

* fixes

* input system will accept window handle

* editor fixes

* refactor and removed resolution related system events

* small editor update

* refactor: renderpath inherits from canvas

* fixed tests duh

* image refactor

* image fix

* removed every using namespace std

* pushconstant fix

* editor: object picking only when necessary

* removed include

* dx12: copy fence waiting performed on CPU

* dx12 copyallocator update

* vulkan: copy allocator with timeline semaphores

* missing include

* dx12 copy allocator update

* refactor

* editor update

* vulkan copy allocator fix

* dx12 update

* vulkan, dx12 fixes

* version bump

* vsync event helper

* documentation update

* updated vulkan, dx12, dxc
2021-04-22 11:36:22 +02:00
Turanszki Janos ea673fb3b7 depth of field params moved to CameraComponent 2021-04-04 17:07:27 +02:00
Turanszki Janos 18da0a1521 tonemap + eye adaption upgrade, and other improvements 2021-03-25 22:07:48 +01:00
Turanszki Janos b937c023f3 color grading map is now part of weather 2021-02-08 22:07:29 +01:00
Turanszki Janos 6b0bb683ca color grading improvements 2021-02-03 01:40:24 +01:00
Turánszki János 9b308941fd sheen and clearcoat (#226)
* sheen and clearcoat

* updated material wnd

* clearcoat works

* sheen updates

* sheen working

* environment reflection alwyas from probe

* restore comment sheen energy conservation

* fixes and gui for sheen and clearcoat

* sheen fix

* ocean, rt reflection fix

* material wnd update

* updated features list
2021-02-01 01:11:30 +01:00
Turanszki Janos 961414186b added screen space contact shadows 2021-01-28 01:09:25 +01:00
Turanszki Janos 0895e4b433 improved specular glossiness workflow; big shader refactor; updated tinygltf version; 2020-12-20 01:29:40 +01:00
Turánszki János 78dc045dd4 Subsurface Scattering Rewrite (#198)
* draft sss-rewrite

* original shadow culling

* fix: outline postprocess incorrectly removed

* -removed shadowbias and shadowkernel from shaderentities
-removed standard denoise
-refactors
2020-12-03 00:37:22 +01:00
Turánszki János 180ddc3586 0.49 (#160)
* renderer updates: material shadertype, customshaders

* custom shader updates

* hologram fix

* editor windows refactor

* major gui update:
- gui no longer lifetime manager
- window no longer needs gui to construct
- removed gui constructors/destructors
- rewritten every editor window

* renderer update

* gui hasfocus fix

* editor fix

* renderpath upgrades: hybrid forward-deferred

* fix

* water ripple refactor

* cmake fix

* cmake fix

* renderer fix

* volumetric light fix

* customshader stencilref

* cmake fix

* rtdeferred fix

* editor update

* raytraced shadows denoise

* anisotropic shader

* sss stencil greater

* added cartoon shader

* using precomputed tangents

* added unlit object shader

* importer update

* editor update

* editor fix

* vulkan envmap rendering fix

* terrain shader simplification (normal texture mapping instead of triplanar)

* added subsurface profiles, reduced gbuffer

* denoise disocclusion fallback

* editor fix

* more sorting priority for blend than instancing

* hairparticle culling

* particle updates; font update instancing instead of index buffer; vulkan/dx12 fixes;

* shader fixes

* hairparticle trianglestrip and no cross section

* editor fix

* cam wnd update

* terrain shader fix
2020-10-17 13:17:07 +02:00
Turanszki Janos d3b18bc504 gui updates, editor window refactors 2020-10-04 14:24:22 +02:00
Turanszki Janos d3f9a2a1b9 rtao denoiser improvements 2020-09-25 00:24:05 +02:00
Turanszki Janos b7bc35bbda added raytraced reflections 2020-09-21 22:01:07 +02:00
Turanszki Janos 6d4992a22f volumetric cloud updates 2020-07-27 20:14:45 +01:00
Turanszki Janos 2f659443ba use thread safe events for file picker 2020-07-22 21:04:27 +01:00
Turánszki János 8ed65ef031 Raytracing API - Vulkan (#130)
* vulkan acceleration structure implementation

* vulkan: optimized resource binding

* dx12 optimizations

* vulkan shadercompiler update

* dx12 raytracing resource binding update

* dx12 descriptor refactor

* dx12 and vulkan updates

* VK_KHR_raytracing

* vulkan acceleration structure fix

* vk acceleration structure fix

* dx12 acceleration structure build fix

* vulkan shader shifts refactor

* vulkan raytracing fixes

* uwp: cannot use dxcompiler.dll for shader reflection

* updated version

* refactors, shader compiler updates

* updated shader build tools

* updated shader compilers

* raytraced shadows

* revert shader model

* try fix shader validate error

* ray traced shadow refactors
2020-06-28 13:34:59 +01:00
Turánszki János ea52f660e1 Raytracing API (#128)
* start

* fix gpu hang

* rtao working

* better support for dynamic tlas

* shader updates

* project structure update

* appveyor build update

* improved acceleration build config

* updated build configuration

* updates

* updates

* acceleration structure build fixes

* minor fixes

* version bump
2020-06-20 23:19:41 +01:00
Turanszki Janos df4bd55ba1 UWP platform updates 2020-05-09 18:48:14 +01:00
Turánszki János 4a11d6a202 Dpi awareness (#109)
* dpi awareness test

* dpi scaling updates

* dpi scaling updates

* missing mouse inputs fix (I hope finally)

* finishing up the dpi branch...
2020-05-05 00:04:38 +01:00
Turanszki Janos 518bb6ad77 depth of field updates 2020-04-20 23:32:13 +01:00
turanszkij d0cab6baf6 fix crash 2020-04-15 09:22:49 +01:00
turanszkij 57d0cea6e5 updated editor 2020-04-13 22:19:29 +01:00
turanszkij 8b059485fe editor: paint tool (softbody, hairparticle) #94;
editor: undo fix with rotation, scale operations;
debug draw updates;
2020-03-26 00:45:12 +00:00
turanszkij 270184edcd added multi scale ambient occlusion 2020-03-22 20:38:16 +00:00
turanszkij 3f8b060a8d added hbao and wide gaussian blur support 2020-03-21 11:54:49 +00:00
Turanszki Janos 4f30edd3aa postprocess updates 2020-03-14 17:47:08 +00:00
turanszkij 9b0cc2524b transform hierarchy fix #76 2020-03-09 19:55:11 +00:00
Turanszki Janos c9c03b2d48 removed some macro use 2020-03-07 19:25:30 +00:00
turanszkij d95dfa7ef2 stability improvements, fixes 2020-03-07 16:18:23 +00:00
Turanszki Janos fd40ea4713 added ssao power control 2020-01-07 20:48:09 +00:00
turanszkij 74a892dd70 dof and motionblur controls, tweaks 2020-01-03 01:40:54 +01:00
turanszkij e93f0365ad updated depth of field 2019-12-29 00:33:50 +01:00
Turanszki Janos fa267b0e7d large refactor 2019-12-12 22:15:16 +00:00
Turanszki Janos 20e56802cc graphics API texture refactor 2019-11-21 22:29:25 +00:00
turanszkij 99ea7c067a refactors 2019-10-09 19:44:17 +01:00
turanszkij 3af0fca0f5 added chromatic aberration post process 2019-09-14 17:21:46 +01:00
turanszkij 45e344cbfa added feature: multiple uv sets; gltf updates; editor updates; 2019-03-16 18:19:49 +00:00
turanszkij 7c1c98a1d2 moved stereogram from common renderpath to its own 2019-03-10 11:27:41 +00:00
turanszkij 061c780ad9 refactor-part1:
removed rendertarget helpers;
non-static textures in render paths;
wiGraphicsTypes namespace renamed to wiGraphics;
2019-03-08 21:46:28 +00:00
Turanszki Janos cacf32a75c little ssao refactor / added editor sliders;
removed xatlas warnings;
2019-01-20 00:06:17 +00:00