Renderer refactor (#1287)

* Fixed vertex effects for statics

* WIP implementing SMAA antialiasing

* Fixed double drawing of additive faces

* SMAA working, need to tune it

* Cleaned SMAA code, ready for test

* Formatting

* Renderer cleaning Tier 1

* Renamed Renderer11 to Renderer;
Forced DX11 hardware support;
Removed m_ from private fields in Renderer class;
Refactored render targets: optional depth buffer creation;
Back buffer now is a RenderTarget2D;

* Converting constexpr and defines to enum classes

* Converting enum to enum classes, tier 2;

* Converting constexpr to enum classes, tier 3

* Cleaned enums and constants; Renamed some files;

* Fixed shaders; Renamed AlphaTestModes;

* Cleaned shaders directory; Reverted hardware version to DX10.1 (we'll upgrade it again in the next releases);

* Renamed private fields;
Refactored quad vertex buffer for sprites;
Refactored HUD renderer structure;
Minor fixes;

* Deleted some files

* Removed reference to RendererQuad.h

* New renderer transparency, for rooms now

* Continue work

* Implemented WOIT for alpha blending;
Started renderer refactoring;

* Removed redundant DirectX api calls

* Added G-Buffer with normals and depth

* Refactored and optimized particle enemies (rats, bats, locusts, beetles);
Extended G-Buffer to effects, rats, bats, locusts, beetles, gunshells, debris;
Extended animated textures sequence to 256;
Fixed normal mapping for items and statics;

* Removed WOIT code;
Removed write to depth map in opaque pass (it's already done in depth pre-pass);
Cleaned debris rendering code;

* Removed legacy render targets;
Added dual paraboloid mapping for ambient light (to finish the light shader):
Minor cleanups;

* Implement additive debug triangles

* Unhardcode value

* Finished room ambient code, commented for now (need to write a gaussian filter);

* Fixed wrong constant buffer slot in SMAA

* Renamed draw effects functions;
Moved prepare sprites function before the draw code;
Restored additive drawing;
Restored alpha blend faces collect;

* Enhance visual debug object API

* Partially restored sprites drawing

* Rename local variables

* Improve spheres

* Update names

* Rename function

* Remove unneeded parameter

* Formatting

* Cleaned and optimized drawing of opaque/additive sprites

* Removed legacy alpha blend code;
Added drawing of alpha blended faces for rooms;

* Completed drawing of non commutative objects;
FIxed compilation;
Removed old files;

* Refactored debug statistics for renderer

* Fixed FPS calculation

* Removed not used render targets and shaders

* Added base post-process framework;
Added monochrome and sepia effects;

* SSAO WIP

* SSAO almost working, needs tuning;
Changes to G-Buffer;

* Removed .cpp files in Graphics directory and moved constructors to headers;
Templatized VertexBuffer class;
New post-process system work in progress;
New blur stage for SSAO;

* SSAO at 1/4 resolution

* Removed FinalPass.fx and moved pixel shader to PostProcess.fx;
Added color to PostProcessVertex;
Rewritten the post-process step using new system;
Tweaked some variables for SSAO;
Fixed drawing of render targets debug thumbnails;

* Rewritten antialiasing techniques with new post-process system;
Made depth target optional when creating render targets using UNKNOWN DXGI format;

* Fix for empty vertex and index buffers

* Encode normals to RGBA8 render target;
Fixed samplers of depth texture;

* Removed legacy hairs shader

* Restored SSAO at fuill res for now;
Fixed shaders structs;

* Optimized G-Buffer shaders for speed and avoid DX log spam;
Renamed updateData to UpdateData in constant buffers;

* Bilateral gaussian filter for SSAO

* Fixed wrong enum

* Cleaning constant buffers tier 1

* Added SSAO setting

* Fixed shaders

* Fixed shaders

* Update SystemStrings.lua

* Refactored initialization code;
Added read and write of ambient occlusion in Windows registry;
Refactored shaders;
Added LUA API for setting color scheme;
Removed some old variables;

* Added effect strength to post-process framework

* Some shaders cleaning;
Don't calculate SSAO if disabled;

* Restored wireframe mode

* Revert "Merge branch 'develop' into renderer_refactor"

This reverts commit 4706f46982, reversing
changes made to bd413d00b2.

* Add negative postprocess effect

* Update PostProcess.fx

* Removed some DX log spam in SMAA shaders;
Fixed crash while drawing alpha blended faces from static objects;

* Fixed alpha blended faces drawing double sided for items and statics

* Fixed flickering of alpha blended faces of rooms

* Fixed gunflashes

* Revert "Revert "Merge branch 'develop' into renderer_refactor""

This reverts commit 536c555b2d.

* Fixed shadow mapping for point lights

* Fixed bad merge in speedometer

* Fix display pickup crash

* Fix SSAO toggle with left key

* Refactoring postprocess effect workflow

- Added exclusion mode
- Separated effect mode and strength to different functions
- Reset postprocess on level start
- Preserve postprocess on savegame reload
- Enum and function renames to maintain consistency

* Fix some comments

* Fix display pickup drawing

* Rename

* Fix for lights not affecting big static objects

* Fixed antialiasing for pickup objects and for inventory scene

* Fixed ghost polygons bug

* Fixed SSAO on surfaces with no or invalid normals

* Fix merge

* Bypass postprocessing if effect strength is set to 0

* Update SystemStrings.lua

* Update Changes.txt

* Update Changes.txt

* Turn on SSAO and target highlighter by default

* Remove duplicated changelog entries

* Implement LARA_START_POS object handling

* Update lara_initialise.cpp

* Update Changes.txt

* Update Changes.txt

* Fixed double sided alpha blend faces again

* Added things to changes.txt

* Update Changes.txt

* Don't use LARA_START_POSes with OCB 0

* Fixed 3D sprites like footprints

* Fixed glow for statics;
Fixed world position for items;

* Per-triangle sorting alpha blend

* Fixed missing last polygons in alpha blending

* Code cleaning

* Added alpha blending to rats, bats, locusts, scarabs

* Restored fast alpha blend

* Fixed AA in title level

* Improved light collector;
Added code for disable statics instancing if needed for debug;

* Fixed rare wrong caustics textures sizes

---------

Co-authored-by: MontyTRC89 <montyhammet@hotmail.it>
Co-authored-by: Sezz <sezzary@outlook.com>
Co-authored-by: Stranger1992 <84292688+Stranger1992@users.noreply.github.com>
Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com>
This commit is contained in:
Jakub 2024-01-05 22:19:52 +00:00 committed by GitHub
parent e6c92decf3
commit b63cf527bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
264 changed files with 28378 additions and 9026 deletions

View file

@ -47,6 +47,7 @@ local strings =
actions_weapon_8 = { "Weapon 8" },
actions_weapon_9 = { "Weapon 9" },
all = { "All" },
ambient_occlusion = { "Ambient Occlusion" },
ammo_used = { "Ammo Used" },
antialiasing = { "Antialiasing" },
apply = { "Apply" },
@ -115,7 +116,7 @@ local strings =
waiting_for_input = { "Waiting For Input" },
window_title = { "TombEngine" },
windowed = { "Windowed" },
unlimited = { "Unlimited %s" },
unlimited = { "Unlimited %s" }
}
TEN.Flow.SetStrings(strings)