Commit Graph

592 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 bb5e7a8ccb hierarchy: don't assume that transforms exist; gui update; editor model importer update; 2022-04-24 14:32:36 +02:00
Turánszki János 379a44e644 terrain gen: reduced memory usage 2022-04-24 12:28:54 +02:00
Turánszki János 00b2655329 added custom scaling factor to canvas (#416) 2022-04-23 09:50:46 +02:00
Turánszki János 97d158cca1 editor: terraingen texture tiling range remap 2022-04-19 12:14:13 +02:00
Turánszki János b7ee504351 cloud shadows 2022-04-16 16:24:27 +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 d479a62c04 fixes 2022-04-10 14:01:52 +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
Megumumpkin 26a9d5dd5e SDL Input Refactor (#406)
* SDL Input Refactor (Initial Edit)

* SDL Input Refactor - IMGUI Text Input Fix

* SDL Input Refactor - wiGUI Text Input Fix

* SDL Input Refactor - Pruning Includes

* SDL Input Refactor - Fix Includes

* SDL Input Refactor - Fix Compiler Error (Windows)

* SDL Input Refactor - Fix Compile Error (2)

* SDL Input Refactor - SDL Version Checking For LED

* Trying out Sniper SDK build system

* SDL Input Refactor - Processing Design Changes

* SDL Input Refactor - Separate Steam Deck Build

* SDL Input Refactor - Separate Steam Deck (2)

* Steam SDK CI Build - Change Package Name & Reduct

* Steam SDK CI - Straight up building, no apt update
2022-03-29 11:26:34 +02:00
Molasses 07297fce37 Linux package files (#402)
* Wrote Linux package files

* Moved the package distribution content

* Started rewriting `Install.sh` in Python

* Added the `ttkbootstrap` module

* Applied a dark theme to the installer

* More dependency installation changes

* More installer changes

* Overhauled all distribution changes

* Fixed the `Setup.py` script
The `Setup.py` script tried to build `Dependencies.py`, which was
removed. It now builds `Install.py` instead.

* Moved from `subprocess.run()` to `os.system()`
The installer now uses the **deprecated** `os.system` function. In the
feature `Install.py` will use `subprocess.run()` again, however,
`os.system()` has better infrastructure to work.

* Fixed a grammatical error in `Install.py`
A comment referred to *the* Discord server as Discord, as a whole.

* Fixed two typos in `Install.py` caused by my editor

* Fixed major bugs in the `Install.py` script

* Fixed a possible issue that might occur in `Install.py`

* (Linux) File dialog glob pattern fix (#403)

* ocean: change to use indexed draw; fixed gradient tiling;

* raytracing now uses configurable sampler + refactors

* Underwater post process (#405)

* added underwater post process

* improvements

* update

* update

* border between underwater and air is better faded

* fixes: volumetric cloud blend mode in planar reflection; ocean receive shadow;

* underwater caustics

* Fixed a major `.gitignore` issue

* Debug changes

Co-authored-by: Megumumpkin <megumumpkin@protonmail.ch>
Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
2022-03-21 18:57:20 +01:00
Turánszki János cedcbcb2f6 editor: copy-paste fixes 2022-03-13 11:17:24 +01:00
Turánszki János 1a1749b3c4 editor: added "white furnace" weather preset 2022-03-10 23:47:59 +01:00
Turánszki János 313fd0cd43 terragen and physics fixes 2022-03-10 12:30:07 +01:00
Turánszki János 3eae67c90c editor: parented duplication fix #389 2022-03-06 17:55:38 +01:00
Turánszki János f49ecdb60e Rendering Updates (#400)
* surface load updates

* ssr update

* rtao update

* raytracing updates

* ssr removed surface shader, visibilityresolve now resolves additional params

* surfel uid validation refactor

* msaa fix

* update

* update

* picking normal fix

* ray cone improvements

* rtreflection raycone improvement

* visibility resolve fast path

* comment update

* shadow mask fixes for planar reflection

* unrolled mesh and subset into shadergeometry buffer

* shadergeometry refactors

* interleaved uvset vertex buffers

* render queue sorting only for transparent and prepass rendering

* refactors

* refactors

* dx12, vulkan: draw-indirect-count implementations

* surface.load instance color fix

* surface.load instance emissive color

* profiler fix
2022-03-06 16:46:52 +01:00
Turánszki János a1833c9639 graphicsdevice: descriptor format change; indexbuffer merged into general buffer; 2022-03-01 20:18:58 +01:00
Turánszki János daa0f21681 combined mesh vertex buffers into one resource and refactors 2022-03-01 15:10:19 +01:00
Turánszki János 97b1ca555c improvements 2022-02-28 10:40:11 +01:00
Turánszki János 406d24d031 updated to visual studio 2022 (#392)
* updated to visual studio 2022

* github actions fix
2022-02-19 12:54:52 +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 a4580ea2b0 DDGI (#386)
* start ddgi implementation

* update

* updates

* update

* ray data packing

* removed comment

* update

* features.txt

* ddgi disabled by default

* added comments

* comments

* offlineshadercompiler

* updates
2022-01-19 13:19:14 +01:00
Turánszki János e55423d26a surfel gi boost fix 2022-01-15 15:25:38 +01:00
Turánszki János ddd276d0ac surfel gi improvements, added boost setting 2022-01-15 13:51:17 +01: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 e2c192063c surfel gi: better way to choose debug visualizations 2022-01-12 21:36:12 +01:00
Turánszki János 0355104b8b editor: emitter viscosity slider update; emitter_fluid asset update; 2022-01-12 10:31:08 +01:00
Turánszki János e353ac3481 gltf import: additional data types support 2022-01-10 09:51:47 +01:00
Turánszki János 5076826906 gltf import: implemented additional vertex color types 2022-01-10 09:37:48 +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 d586b43a82 added configuration for emitter restitution property;
added emitter_depthcollision_test.wiscene
2021-12-30 14:28:07 +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 67eb9dd66f raytracing: expose filtering with layer masks 2021-12-04 16:48:12 +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 3a08a2bfc6 editor: fixed subset selection when selecting from scene graph view 2021-11-26 17:15:10 +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
Matteo De Carlo 08c1046214 Added Focus events on SDL editor (#363)
* Added Focus events on SDL editor

* Shaders are symlinked instead of copied in the build folder (cmake)
2021-11-25 16:50:09 +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
Matteo De Carlo af97739b61 HiDPI support on SDL2 (#351)
linux: works only with wayland backend, can be used with SDL_VIDEODRIVER=wayland enviroment variable set.
It's possible that it works also on other platforms when using the SDL backend.
2021-11-11 15:38:05 +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