1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-22 20:17:46 +00:00
Commit graph

104 commits

Author SHA1 Message Date
3b8b867a02 Make glslang dependency optional
This is only needed for additional GLSL debug information, and is
definitely not required.
2024-05-18 17:31:14 +00:00
23e93811de Fix running out of descriptors too easily in the simple renderer 2024-05-13 22:57:33 -04:00
f713f5c150 Resolve more warnings 2024-05-10 16:37:40 -04:00
a812b37413 Move getShaderModuleResources to ShaderManager 2024-05-10 16:16:21 -04:00
1aa7c8c6ee Start moving shader stuff into it's own dedicated class
This is generally abstract from the game renderer, and can be useful
elsewhere. It's also really big!
2024-05-10 16:14:33 -04:00
13ef518ed3 Remove accidental typing from me 2024-05-10 15:56:58 -04:00
1815d60f21 Add debug markers for peeking via RenderDoc 2024-05-10 15:53:32 -04:00
1fef1e2acd Prepare for dyeable gear 2024-04-30 19:05:55 -04:00
5a227971c2 Support 3D textures, add real tile diffuse/normal and fix lighting
I broke the lighting accidentally while messing around with Dawntrail,
it's now restored. Real textures are used for tile diffuse/normal
textures which shoud fix the appearances of some gear.
2024-04-30 18:12:02 -04:00
20b2f0e7b8 Add support for more shader structures as seen in Dawntrail Benchmark
Not sure what these are yet, but stops the renderer from complaining.
2024-04-28 07:09:58 -04:00
7d2b81affd Add experimental support for the Dawntrail rendering system
I hastily found the new scene keys used, it mostly "works" but there's
new parameters and resources we don't provide. Enable via
NOVUS_IS_DAWNTRAIL=1.
2024-04-27 22:59:26 -04:00
729dce011a Fix specular not showing correctly, and more
The specular for lights now show up correctly. The offscreen buffers
use more accurate formats. And a new Scene struct is added for future
usage.
2024-04-27 21:11:53 -04:00
7cd519fac2 Use the parameters defined in the material instead of hardcoding
This was only useful for testing, the new renderer loads the parameters
the material stores now.
2024-04-27 18:44:53 -04:00
a8d64a52df Properly transition image layouts and create barriers
This along with other misc fixes by listening to the validation layers
"fixes" specular, but just for the skin. I need to do some more work to
figure out why it doesn't work for character shaders yet.

Also introduces new helper functions to Device to easily transition
textures and name them.
2024-04-27 17:49:03 -04:00
1b73a3a540 Reuse the depth buffer in composite pass 2024-04-27 16:05:20 -04:00
b7a594e9d3 Trying to fix the alpha composite issues 2024-04-27 15:57:22 -04:00
b64c59ab76 Add temporary workarounds for tiled normals
We don't have any way of getting tiled materials yet, so enable simple
mode.
2024-04-27 15:25:02 -04:00
35dab8e925 Start working on semi-transparency composite
The composite renders and "works" but there's some sort of alpha issue.
2024-04-27 15:05:36 -04:00
ebae9caece Fix the material editor not working with the new renderer 2024-04-27 14:01:08 -04:00
51ea3c3920 Create reusable material part
This takes the existing properties widget in the new material editor and
makes it reusable across multiple applications. It's now added to the
Armoury which shows the gear's used materials. It's also added to the
Data Explorer which now supports viewing material files.

I fixed the render viewport crashing when hiding it again, and made it
even more resilient.
2024-04-27 13:45:15 -04:00
e9c857a649 Use the correct TransformView value if the model is skinned or not 2024-04-27 12:42:31 -04:00
88e64b859d Use material's own shader keys if available
Instead of using the shader package default values
2024-04-27 12:29:19 -04:00
a0e3e41303 Fix rendering on Windows
At least on my machine, the AMD Windows Vulkan driver is way more strict
compared to Linux.

* The correct device features are now enabled.
* Image usage flags for offscreen textures are corrected.
2024-04-25 18:48:21 -04:00
1e898130b9
Add GitHub actions
It now builds Novus (and it's dependencies) for Windows and Linux. Artifacts and macOS support will come later.
2024-04-24 21:39:43 +00:00
04717aea62 Add missing header in swapchain.h 2024-04-22 15:47:45 -04:00
84887a5470 Start working on normals support 2024-04-21 19:56:52 -04:00
74f754b382 Implement some stuff required for skin shaders
Punching some holes to allow shaders to access textures
2024-04-21 19:45:21 -04:00
af806bff63 Remove hardcoded character.shpk path
Now the new renderer should load the material's requested shader package
2024-04-21 19:07:09 -04:00
dcb54cf4e3 Begin working on bone support for the new renderer
Doesn't work completely yet (not sure why) but for basic items it works.
2024-04-21 18:49:48 -04:00
e34daadbcd Split up Renderer's source files and a lot of refactoring
This now splits up the rendering system into sensible parts, and makes
it easier to switch between the simple renderer and the new experimental
one. Lots of refactors I needed to do for a while are now done, too.
2024-04-21 17:35:51 -04:00
5317300aaf Remove GLM_FORCE_LEFT_HANDED
This wasn't needed after all, and fixes both the new and old renderers.
2024-04-21 14:15:17 -04:00
8ea47a5502 Make a note why there's no UV coordinates for the plane vertices 2024-04-21 14:12:56 -04:00
0e739187ab Make the render size not hardcoded to 640x480 in the new renderer 2024-04-21 14:11:40 -04:00
7bba79f62f Make lighting work (finally)
Now it can display a directional light source, albeit in a tiny
hardcoded size. Time to clean up my mess!
2024-04-21 14:05:41 -04:00
eb9e5dc094 Implement more of g_CameraParameter 2024-04-21 13:29:30 -04:00
ec47e52f80 Implement view position extraction, and provide g_SamplerDepth 2024-04-21 13:17:40 -04:00
ed9d6e62b8 More stuff that's needed for directional lighting
It's not working yet as we're missing view positions and the normal
clear color is wrong, but it's getting there. It can display a nice
blobby plane with the light color right now.
2024-04-21 13:04:25 -04:00
7f1c167251 Create GBuffer (normals only for now) and render into it 2024-04-21 12:00:13 -04:00
fd61cfca26 "Implement" the directional lighting pass, fix GBuffer normal
Implement is in quotes because it doesn't work yet, the code is just
written. We still need actual framebuffers to do work in and not the
swapchain image we're reusing.

In other news, the GBuffer shader now works and outputs normals! I
forced it to simple texture mode for now so it makes development easier.
2024-04-21 11:52:30 -04:00
2d17af5675 Fix the dummy texture not actually being white 2024-04-21 11:50:56 -04:00
0d303f0e6e Add dummy shader for testing purposes
This is used to make sure the vertex stage successfully completed, thats
it.
2024-04-21 11:50:39 -04:00
81bdef14ca Remove and simplify code in the render system 2024-04-21 10:30:51 -04:00
2f8f155a6c Begin implementation of directional lighting
This takes the correct node from directionallighting.shpk, but doesn't
draw anything yet as we're missing GBuffers.
2024-04-21 10:25:52 -04:00
d651f56e2b No longer hardcode the SHPK node selector 2024-04-21 10:08:55 -04:00
699141d04b Pass real data to the new render system
Based off of structures reversed engineered by Ouroboros, now it can
render objects without shading! Note that it breaks the basic renderer
at the moment, will be fixed later.
2024-04-21 09:01:02 -04:00
640099f9db Fix compilation on Fedora 2024-04-21 07:02:34 -04:00
b9b162b377 Add experimental new rendering system
I started writing this late last year, and finally uploading parts of
it. Currently, doesn't work, but doesn't crash either. Enable it via
the NOVUS_USE_NEW_RENDERER environment variable.

The goal is to use the game's own shaders instead of creating our own,
it's lacking support for buffers with actual data in them and constants
so while it "works" nothing is displayed on screen yet.
2024-04-20 17:29:29 -04:00
02ce1c2f51 Renderer: Add a slight ambient to not make shadows pitch black 2024-04-20 15:38:49 -04:00
5c907b63da Add a wireframe checkbox to MDLViewer 2024-04-18 18:08:50 -04:00
4f99fc363d renderer: Remove unnecessary imgui font size message 2024-02-04 14:56:04 -05:00