Commit Graph

251 Commits

Author SHA1 Message Date
Turánszki János bb8276a82c terrain gen updates 2022-04-24 19:44:24 +02:00
Turánszki János a63b3e0e50 editor: grass interaction only with left button 2022-04-14 10:13:46 +02:00
Turánszki János 0d9af9f200 Grass interaction (#413)
* hairparticle simulation clamping

* editor: hair particle interaction

* update
2022-04-11 09:32:59 +02:00
Turánszki János 604140ad85 Procedural Terrain (#408)
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
2022-04-10 11:42:10 +02:00
Turánszki János cedcbcb2f6 editor: copy-paste fixes 2022-03-13 11:17:24 +01:00
Turánszki János 3eae67c90c editor: parented duplication fix #389 2022-03-06 17:55:38 +01:00
Turánszki János 41e3f56e88 editor: undo/redo fix 2022-02-15 01:00:43 +01:00
Turánszki János e599f40664 editor: undo/redo improvements; also added cut to Ctrl+X; 2022-02-13 00:28:17 +01:00
Turánszki János ab75435c41 editor: undo-redo and recursive selection improvements; 2022-02-12 01:31:33 +01:00
Turánszki János 9ebac82454 entity_serialize robustness improvements; entity_remove recursive support; 2022-02-11 00:08:57 +01:00
Turánszki János 6408341827 editor: uwp asset copies moved out of common source file 2022-02-09 23:05:59 +01: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
Turánszki János 16d9a8de74 common improvements (#366)
- std container replacements for vector, unordered_map, unordered_set
  - unordered_map and unordered_set replaced with ska::flat_hash_map
  - vector replacement is still std::
- unordered_map performance test (std:: vs ska::)
- backlog improvements
- wiArchive improvements
- editor: added option to dump scene to C++ header file
- common improvements, refactors
2021-11-28 22:12:05 +01:00
Turánszki János 8e8dfb1bb4 editor: subset and subset material selection from mesh window 2021-11-26 17:03:11 +01:00
Turánszki János 4777246989 common refactors (#364)
* common refactors:
- DirectXMath only included in wiMath.h instead of CommonInclude.h
- cleanups in CommonInclude.h
- lua math refactor
- generic allocator refactor

* FLT_MAX to numeric_limits

* linebreak

* comment fix

* allocator fix

* more math refactors

* removed wiContainers, renamed wiAllocators to wiAllocator, moved ThreadSafeRingBuffer to wiAllocator
2021-11-26 13:45:11 +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 d3c11eddf6 HDR display support (#341)
* dx12: initial HDR support

* make dx12 more feature level compatible

* vulkan, dx12 hdr updates

* remove trash

* remove postprocess_LDR, tests

* fixes

* added custom display output mapping for hdr10

* renderpath2d srgb->linear mapping for compose blending

* hdr updates

* improvements

* documentation update

* documentation fixes

* vulkan: outdated swapchain handling

* minor fix

* vulkan: hdr workaround with color space change with same format

* improved vulkan swapchain destructor

* updated features.txt
2021-11-09 19:02:01 +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
Turanszki Janos b549e6c597 editor: jump to camera will retain screen aspect 2021-08-24 20:20:33 +02:00
Turanszki Janos 3a9351e9bd editor: camera improvements 2021-08-19 12:07:00 +02:00
Turanszki Janos ab21ffc61d editor: obj importer will create root entity, translator update 2021-07-23 00:36:38 +02:00
Turanszki Janos 5b7249e999 recursive entity serialization; editor fixes for selection, copy, instance placement, gui focus 2021-07-15 13:46:23 +02:00
Turanszki Janos dc80d0597b editor: if load model contains new camera, snap to the first one 2021-07-08 22:59:42 +02:00
Turanszki Janos 026dc11a99 added support for Open Image Denoise library for path tracing and lightmap baking 2021-05-22 11:51:51 +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 4025f24a1d emitter and editor fix 2021-04-18 10:51:56 +02:00
Turanszki Janos dbd3e6df06 refactor: ocean, water ripples 2021-04-11 01:10:24 +02:00
Turanszki Janos 0194c08e2d raytracing updates 2021-04-01 12:22:40 +02:00
Turánszki János 933080a2e4 Unified Shader Compiler (#250) 2021-03-21 18:54:04 +01:00
Turanszki Janos 783c824139 resource manager upgrade: embedded resources support 2021-03-01 00:37:55 +01:00
Turanszki Janos 9b4a8870ac file system refactor 2021-02-25 21:52:41 +01:00
Turanszki Janos 3a4a3c9b91 file system improvements 2021-02-24 21:39:24 +01:00
Turanszki Janos bf10893bc7 editor uwp: better async asset copy 2021-02-22 00:53:51 +01:00
Turánszki János a0a12ad4ec uwp: port cx to winrt #238 2021-02-22 00:15:42 +01:00
Turanszki Janos b937c023f3 color grading map is now part of weather 2021-02-08 22:07:29 +01:00
Turanszki Janos 960734e87a physics updates #206 #207
physics debug draw
editor physics updates
2020-12-28 17:21:47 +01:00
Turanszki Janos 5fd6b5ad42 editor update: escape button will clear selection 2020-12-13 19:09:52 +01:00
Turánszki János 5efe28fdf9 0.51.0 (#200)
* large renderer state refactor;
added subsurface scattering energy conservation;
added emitted particle subsurface scattering;
removed area lights;
optimizations;

* added layerMask support in shaders

* fixed incorrect shadow priority for directional light;
fix point light shadow disconnect;

* fix incorrect shadow assignment
2020-12-07 01:32:44 +01:00
Turanszki Janos 2260276f61 occlusion culling fixes, camera refactor 2020-11-23 20:06:21 +01:00
Turanszki Janos e2b164f3dc renderer: visibility update 2020-11-22 16:25:30 +01:00
Turanszki Janos 79e23b0a46 improved ecs serialization and asset loading time 2020-10-28 00:12:06 +01:00
Turanszki Janos 558d6411f4 editor fix 2020-10-20 22:22:40 +02: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
Matteo De Carlo 3cd9e77889 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 <turanszkij@users.noreply.github.com>
Co-authored-by: Turanszki Janos <turanszkij@gmail.com>
2020-10-05 00:03:22 +02:00
Turanszki Janos 256fda93fc variable rate shading tier2 #152 2020-08-30 20:20:24 +02:00
Turanszki Janos 3fc580cd0f editor: decal window update 2020-08-23 19:03:56 +01:00
Turanszki Janos 2f659443ba use thread safe events for file picker 2020-07-22 21:04:27 +01:00
Turanszki Janos 486d030f1e MSAA resolve is now part of renderpass #55 2020-07-09 00:43:53 +01:00
Turánszki János 26af9078c9 Vulkan and DX12 fixes (#134)
* renderpass updates, vulkan and dx12 warning removal #78

* lots of fixes
2020-07-08 22:07:45 +01:00
Turanszki Janos 3d1b67cc67 updated lua interface 2020-07-05 19:39:40 +01:00