trace from actor center

This commit is contained in:
Ricardo Luís Vaz Silva 2025-01-18 15:44:21 -03:00 committed by Magnus Norddahl
commit 91fb87e95e
10 changed files with 52 additions and 10 deletions

View file

@ -423,6 +423,7 @@ void VkShaderManager::BuildDefinesBlock(FString &definesBlock, const char *defin
if (key.ShadeVertex) definesBlock << "#define SHADE_VERTEX\n";
if (key.LightNoNormals) definesBlock << "#define LIGHT_NONORMALS\n";
if (key.UseSpriteCenter) definesBlock << "#define USE_SPRITE_CENTER\n";
definesBlock << ((key.Simple2D) ? "#define uFogEnabled -3\n" : "#define uFogEnabled 0\n");
}

View file

@ -110,7 +110,8 @@ public:
uint64_t ShadowmapFilter : 4; // SHADOWMAP_FILTER
uint64_t ShadeVertex : 1; // SHADE_VERTEX
uint64_t LightNoNormals : 1; // LIGHT_NONORMALS
uint64_t Unused : 28;
uint64_t UseSpriteCenter : 1; // USE_SPRITE_CENTER
uint64_t Unused : 27;
};
uint64_t AsQWORD = 0;
};

View file

@ -331,6 +331,7 @@ void VkRenderState::ApplyRenderPass(int dt)
pipelineKey.ShaderKey.ShadeVertex = mShadeVertex;
pipelineKey.ShaderKey.LightNoNormals = mLightNoNormals;
pipelineKey.ShaderKey.UseSpriteCenter = mUseSpriteCenter;
pipelineKey.ShaderKey.UseShadowmap = gl_light_shadows == 1;
pipelineKey.ShaderKey.UseRaytrace = gl_light_shadows >= 2;
@ -1082,6 +1083,8 @@ void VkRenderState::ApplyLevelMeshPipeline(VulkanCommandBuffer* cmdbuffer, VkPip
}
pipelineKey.ShaderKey.ShadeVertex = mShadeVertex;
pipelineKey.ShaderKey.LightNoNormals = mLightNoNormals;
pipelineKey.ShaderKey.UseSpriteCenter = mUseSpriteCenter;
// Global state that don't require rebuilding the mesh
pipelineKey.ShaderKey.NoFragmentShader = noFragmentShader;