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.
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.
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.
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.
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.
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.
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.
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.
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.