Working on shadow bug

This commit is contained in:
Vladislav Khorev 2026-07-19 13:29:35 +03:00
parent 6a79e8e41e
commit 02ba86331b
2 changed files with 17 additions and 7 deletions

View File

@ -109,7 +109,7 @@ namespace FRG
renderer.shaderManager.AddShaderFromFiles("defaultColor", "resources/shaders/defaultColor.vertex", "resources/shaders/defaultColor_desktop.fragment", CONST_ZIP_FILE);
renderer.shaderManager.AddShaderFromFiles("default", "resources/shaders/default.vertex", "resources/shaders/default_desktop.fragment", CONST_ZIP_FILE);
#endif
loadingTexture = renderer.textureManager.LoadFromPng("resources/loading003.png", "");
loadingTexture = renderer.textureManager.LoadFromPng("resources/loading.png", "");
loadingProgressBarFrameTexture = renderer.textureManager.LoadFromPng(
"resources/loadingProgressBarFrame.png", "", true);
@ -395,13 +395,14 @@ namespace FRG
audioPlayer->crossFadeMusicAsync("audio/main menu final.ogg");
});
/*loadSteps.push([this]() {
if (menshadowsEnabled)
{
#ifdef __ANDROID__
loadSteps.push([this]() {
if (menuManager.shadowsEnabled) {
createShadowMapAndProparateToLocations();
}
});*/
});
#endif
loadSteps.push([this]() {
loadingCompleted = true;
@ -920,8 +921,11 @@ namespace FRG
logger() << "Shadow map already exists, skipping creation" << std::endl;
return;
}
CheckGlError(__FILE__, __LINE__);
shadowMap = std::make_shared<ShadowMap>(2048, 40.0f, 0.1f, 100.0f);
CheckGlError(__FILE__, __LINE__);
shadowMap->setLightDirection(Eigen::Vector3f(-0.5f, -1.0f, -0.3f));
CheckGlError(__FILE__, __LINE__);
logger() << "Shadow map initialized" << std::endl;
for (auto& [name, loc] : gameState.locations) {
@ -931,10 +935,16 @@ namespace FRG
}
void Game::destroyShadowMapAndProparateToLocations()
{
CheckGlError(__FILE__, __LINE__);
shadowMap.reset();
CheckGlError(__FILE__, __LINE__);
for (auto& [name, loc] : gameState.locations) {
loc->shadowMap.reset();
}
CheckGlError(__FILE__, __LINE__);
}

View File

@ -56,7 +56,7 @@ namespace FRG {
{
glGenFramebuffers(1, &fbo);
#ifdef EMSCRIPTEN
#if defined(EMSCRIPTEN) || defined(__ANDROID__)
glGenTextures(1, &depthTexture);
glBindTexture(GL_TEXTURE_2D, depthTexture);