Closed ghost closed 7 years ago
Not a single comment. I wish you luck writing that backend for Vulkan Armada. You had wanted help re-writing DirectX11 then don't even respond to this. Unbelievable.
@Swartz27 I was on a vacation, so I haven't been reading any of my github mail.
So I know Armada wants to add a Vulkan backend based off of D3D11 backend.
First I think it might be a good idea to brainstorm what the backend should look like as it could use a re-write (not to add new features, but to help it run better).
A couple examples: 1) Fat vs. thin G-Buffer: I changed the Normal map part of the G-buffer to DXGI_FORMAT_R8G8B8A8_UNORM (from DXGI_FORMAT_R16G16B16A16_UNORM). Then I used K.D.'s solution for the Gbuffer by adding the following to common_functions.h: ` float2 gbuf_pack_normal (float3 _N) {return (_N.xy/sqrt(_N.z*8+8) + 0.5);}
float4 gbuf_unpack_normal (float4 _N) { float2 enc = _N.xy;
} ` With this I notice a decent frame-rate increase with minimal quality loss in Normal maps. All that's being done here is changing Normal maps from using 64-bit's to 32-bit (shaders were only set up to use 32-bit anyway).
Seems like s_position could also benefit from some thinning if we can figure out how it should be set up. Currently if you were just to change it to 32-bit you'll have graphical errors.
2) Triple-buffering? DX10HW.cpp: sd.BufferCount = 3; (instead of 1) Am I missing something or is this all there is to it?
Originally I was proposing Forward Plus or Tiled Defferred Lighting as an alternative to the Deferred Shading that Stalker uses. However, this seems like it would only be needed if COP used a lot of lights, which it doesn't at all. Instead, my remaining pet-peeve is that certain things are using Forward rendering like opaques. It doesn't have to be done like this, and in fact, from my perspective, leads to visual inconsistency.
Now if Stalker made use of Effects/Techniques, this would be easy to solve based on a rendering book I have which shows how to use such a thing to change the Technique to render Opaques/Transparents correctly in Deffered Shading. I can post this if anyone is interested. However, this would be a step in the wrong direction if we want a Vulkan renderer, as it cannot make use of that same system.