Added anisotropic filtering to Vulkan backend

This commit is contained in:
Robert Beckebans 2019-11-19 20:16:58 +01:00
parent e0a397e544
commit 3632d200f9
3 changed files with 19 additions and 3 deletions

View file

@ -40,7 +40,7 @@ I started this project in 2012 and focused on making this code being future proo
* Win64 support and Visual Studio support up to VS 2019
* OS X support
* OpenAL Soft sound backend primarily developed for Linux but works on Windows as well
* Bink video support through libbinkdec or FFmpeg (thanks to Daniel Gibson)
* Bink video support through libbinkdec (thanks to Daniel Gibson) or FFmpeg (thanks to Carl Kenner)
* PNG image support
* Soft shadows using PCF hardware shadow mapping
The implementation uses sampler2DArrayShadow and PCF which usually
@ -163,7 +163,7 @@ Steam. This includes roaming profiles, achievements, leaderboards, matchmaking,
any other Steam features.
### Bink Video playback
The RBDOOM-3-BFG Edition GPL Source Code release includes functionality for rendering Bink Videos through FFmpeg.
The RBDOOM-3-BFG Edition GPL Source Code release includes functionality for rendering Bink Videos through FFmpeg or libbinkdec.
### Back End Rendering of Stencil Shadows
The Doom 3 BFG Edition GPL Source Code release does not include functionality enabling rendering

View file

@ -236,6 +236,18 @@ void idImage::CreateSampler()
switch( filter )
{
case TF_DEFAULT:
createInfo.minFilter = VK_FILTER_LINEAR;
createInfo.magFilter = VK_FILTER_LINEAR;
createInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
// RB: enable anisotropic filtering
if( r_maxAnisotropicFiltering.GetInteger() > 0 )
{
createInfo.anisotropyEnable = VK_TRUE;
createInfo.maxAnisotropy = r_maxAnisotropicFiltering.GetInteger();
}
break;
case TF_LINEAR:
createInfo.minFilter = VK_FILTER_LINEAR;
createInfo.magFilter = VK_FILTER_LINEAR;

View file

@ -600,7 +600,7 @@ static void CreateLogicalDeviceAndQueues()
deviceFeatures.depthBiasClamp = VK_TRUE;
deviceFeatures.depthBounds = VK_TRUE;
deviceFeatures.fillModeNonSolid = VK_TRUE;
//deviceFeatures.samplerAnisotropy = vkcontext.physicalDeviceFeatures.samplerAnisotropy; // RB
deviceFeatures.samplerAnisotropy = vkcontext.physicalDeviceFeatures.samplerAnisotropy; // RB
VkDeviceCreateInfo info = {};
info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
@ -2081,6 +2081,10 @@ See if some cvars that we watch have changed
void idRenderBackend::CheckCVars()
{
// TODO
if( r_useShadowMapping.GetBool() )
{
r_useShadowMapping.SetBool( false );
}
/*
// gamma stuff