From 487c94662a0959b572a47290b9dc8514c5d72442 Mon Sep 17 00:00:00 2001 From: Ivan 'provod' Avdeev Date: Fri, 24 Feb 2023 22:52:38 -0800 Subject: [PATCH] rt: HACK flickering lerping sprites Lerping between sprite frames means drawing two coplanar quads blended the right way. This is not something ray tracing can accommodate easily for all blending modes. Disable lerping for now --- ref/vk/vk_sprite.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ref/vk/vk_sprite.c b/ref/vk/vk_sprite.c index 8fb49b36..abfb0a71 100644 --- a/ref/vk/vk_sprite.c +++ b/ref/vk/vk_sprite.c @@ -761,6 +761,10 @@ static qboolean R_SpriteAllowLerping( const cl_entity_t *e, msprite_t *psprite ) return false; */ + // FIXME: lerping means drawing 2 coplanar quads blended on top of each other, which is not something ray tracing can do easily + if (vk_core.rtx) + return false; + if( psprite->numframes <= 1 ) return false; @@ -884,7 +888,8 @@ void R_VkSpriteDrawModel( cl_entity_t *e, float blend ) if( R_SpriteAllowLerping( e, psprite )) lerp = R_GetSpriteFrameInterpolant( e, &oldframe, &frame ); - else frame = oldframe = R_GetSpriteFrame( model, e->curstate.frame, e->angles[YAW] ); + else + frame = oldframe = R_GetSpriteFrame( model, e->curstate.frame, e->angles[YAW] ); type = psprite->type;