96b198b66d
Automatically switch the renderer to Dawntrail mode if installed
2024-11-02 19:51:57 -04:00
927accadf9
Renderer: Disable unused attachments extension config for now
...
To unbreak it on my machine, but I wonder if this is still needed
2024-06-28 05:54:31 -04:00
ac16e73c4d
Renderer: Add workaround for older Vulkan SDKs
2024-05-27 16:36:50 -04:00
2252feeef3
MDLPart: Add render material cache
2024-05-27 13:15:40 -04:00
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