Commit Graph

77 Commits

Author SHA1 Message Date
Dennis Brakhane f0bd5a8086 Don't use by reference capture by default (#1207)
replace [&] with [this] or [] where possible to avoid people
accidentally capturing something by reference that needs to be
copied, like strings.
2025-08-13 08:46:42 +02:00
Turánszki János 7ecd39dd6e Warning fixes and changes for Linux
- Disabled warnings as errors
- Using -Wall for specifying commonly used warnings
- Fixes for many warnings in the engine code
2025-07-29 19:59:53 +02:00
Turánszki János c31aa35c53 gui layout refactor (#1114) 2025-06-01 17:07:12 +02:00
Turánszki János 1be929aa8a gui changes: slider size now includes the textbox, combobox size now includes the droparrow, editor gui rearrangement 2025-05-30 08:50:26 +02:00
Turánszki János 0c514a1937 paint tool fixes: terrain mode caused stuck gui; mouse scroll shoudln't modify camera speed in paint tool mode because it is used for brush size; stabilizer is 1 in default config; 2025-05-29 17:07:03 +02:00
Turánszki János fe3b922fb9 Terrain spline material and some gui updates (#1092)
- spline material can modify terrain material
- gui: labels can now auto fit text
- gui: window close button is replaced to the right side to help avoid clicking it by mistake when trying to collapse
2025-04-25 08:36:26 +02:00
Turánszki János 36ea992c99 terrain painter: fixed when sometimes the material brushes didn't show up 2024-11-03 15:56:49 +01:00
Turánszki János 77a1354973 paint tool softbody pinning visualizer fix, updated readme gifs 2024-09-22 08:49:58 +02:00
Turánszki János 8162abb6eb editor: editing terrain grass will save chunk data in case it needs to be recreated later 2024-08-21 07:13:31 +02:00
Turánszki János fb41bf83bd Softbody simplification with bones (#876) 2024-07-04 09:24:47 +02:00
Turánszki János d7518cdd8e Soft body updates (#869)
- vertex radius
- detail
- multi-selection edit
2024-06-27 09:37:40 +02:00
Turánszki János a988218755 resource manager filedata retention changes (#857) 2024-06-06 09:18:42 +02:00
Turánszki János 85fabb7fc9 editor: paint brush radius adjustable with mouse wheel, terrain fixes 2024-05-22 06:44:51 +02:00
Turánszki János 1c38d93304 Editor gui v2 (#843) 2024-05-17 08:04:05 +02:00
Turánszki János 87e9870b50 Virtual texture painting, object-terrain blending (#824) 2024-04-19 08:00:19 +02:00
Turánszki János 2664b1cf26 paint tool: redirect alpha 2024-04-12 07:50:21 +02:00
Turánszki János bffe908047 paint into texture improvements; msao parameter change; 2024-03-23 12:48:25 +01:00
Turánszki János 29c784d63c PaintIntoTexture lua binding and some other things 2024-03-20 06:36:18 +01:00
Turánszki János fa70f6d465 material transparency map, paint tool improvements 2024-02-14 09:55:44 +01:00
Turánszki János 1479fe9084 vertex buffer quantization (#777) 2023-11-16 18:23:23 +01:00
Turánszki János d22e7b50ac added sphere mesh creation helper, editor updates 2023-10-06 09:40:43 +02:00
Turánszki János f4fc45bb16 terrain gltf export chunk texture baking; impostor fixes; copytexture2d src offset, srgb convert; 2023-06-23 20:35:33 +02:00
Turánszki János c037df33a7 texture import block compression (#685) 2023-05-27 13:51:40 +02:00
Turánszki János 21d5f37fee build updates (#655) 2023-03-28 19:30:29 +02:00
Turánszki János 497263e376 tessellation displacement map fix for texMulAdd; paint tool srgb fix; 2022-11-13 09:56:12 +01:00
Turánszki János 5f92cac86a paint tool fix for texmuladd 2022-10-04 20:28:06 +02:00
Turánszki János 4c579db2fb memory usage reductions 2022-10-03 11:35:53 +02:00
Turánszki János 6eb01f585a Hierarchy window (#531) 2022-08-25 12:13:14 +02:00
Turánszki János 12e410d893 Paint tool stabilizer, continuous stroke, multiselect (#519)
- continuous stroke
- stabilizer
- multiselect
- smoothness improvement
2022-08-21 17:13:43 +02:00
Turánszki János 64babc8fcd Config file support (#517) 2022-08-20 18:32:16 +02:00
Turánszki János 0ee0098924 paint tool: axis locking, brush shape, brush rotation 2022-08-10 10:46:18 +02:00
Turánszki János ce7ec070fb editor: paint tool brush visualizer improvement 2022-08-08 20:55:32 +02:00
Turánszki János a0ad653d7d GUI ResizeLayout (#495)
* gui resizelayout #51

* checkbox icons

* updates

* weather reset

* embedded logo asset
2022-07-31 19:28:41 +02:00
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 196eb3ec38 gui: scrollbar improvements 2022-07-06 10:50:24 +02:00
Turánszki János 91c385ab9d Pain Tool Brush textures (#448)
* added brush textures to paint tool

* logo

* fix
2022-05-22 13:20:19 +02:00
Turánszki János f7d28b1127 GUI scrollbar updates (#447) 2022-05-19 22:42:49 +02:00
Turánszki János d2985abd41 paint tool fixes; translator jitter removed when temporal AA enabled; 2022-04-28 11:33:32 +02:00
Turánszki János 7c8526bd3e editor: paint tool sculpt mode uses pick normal instead of average 2022-01-14 18:03:46 +01:00
Turánszki János eba0baca3a editor: paint tool sculpting mode improvements 2022-01-14 00:19:11 +01:00
Turánszki János d259baf9e7 Commandlist refactor (#385)
* removed hard coded command list count

* commandlist has internal_state pointer now instead of an index

* BeginCommandList thread safety

* refactor

* acceleration structure builds will not allocate after warmup

* refactors, fixes

* vulkan fix

* fix
2022-01-09 16:57:42 +01:00
Turánszki János 0fdc67dcd0 DX12 custom root signatures (#372)
* dx12: abandoned shader reflection, added support for custom root signatures, removed dxcompiler dependency

* removed dll copies from build scripts

* update

* updates

* updates

* fix

* update

* update

* updates

* added custom root signatures to some passes

* fix

* updates

* comment fix

* allow shaders to not have root signatures, if they are part of a pipeline which has root signature for an other shader

* root signature optimizer

* batched descriptor null initializer

* shader updates

* update

* put the atmospheric sky update to async compute

* improved debug of root constant - push constant data size mismatch

* bitwise root param iteration

* added superluminal perf api

* performance api will be optional

* async updaterenderdata fixes

* fixes

* fixes

* occludee update

* raytraced reflection implementation with ray query instead of rt pipeline

* alwaysactive

* shadercompiler enable old d3dcompiler because why not, it's only loaded on demand now

* removed common sampler api

* root signature simplification

* fixes

* linear allocator fix

* push constants are now immediately set

* fixes

* version

* fix?

* improved descriptor allocator

* default sampler table reduction

* gpu sort lib push constants

* small update

* descriptor allocator safety

* shader compiler refactor

* some optimizations
2021-12-19 15:53:18 +01:00
Turánszki János c4c582d739 general improvements (#368)
* custom implementation for wi::vector

* fix

* sdl vulkan fix

* linux fix

* fix

* vector fix

* shader compiler and job system will be initialized automatically on first use

* vector improvements

* updates

* update

* network and audio will be auto initializing on first use only

* fix

* for now, use std::vector

* vector refactor minor

* backlog: access safety

* shader clearcoat fix

* gui initialization on demand

* initializer updates

* job system will be explicitly initialized
2021-12-09 18:58:27 +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 dfcdbdd40c shader refactor: removed resource and sampler binding macros 2021-11-21 20:10:19 +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 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