From c0246bf02153cd5158afd910da8d4de1d5c7093b Mon Sep 17 00:00:00 2001 From: XProger Date: Tue, 8 Jan 2019 05:10:31 +0300 Subject: [PATCH] fix items overview lighting --- src/inventory.h | 2 +- src/ui.h | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/inventory.h b/src/inventory.h index eaad8ec..a5f1450 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -1857,7 +1857,7 @@ struct Inventory { setupCamera(aspect); - UI::setupInventoryShading(); + UI::setupInventoryShading(vec3(0.0f)); renderPage(page); if (page != targetPage) diff --git a/src/ui.h b/src/ui.h index ae68aa6..2d24cfe 100644 --- a/src/ui.h +++ b/src/ui.h @@ -634,7 +634,7 @@ namespace UI { pickups.push(item); } - void setupInventoryShading() { + void setupInventoryShading(vec3 offset) { Core::mView.identity(); Core::mProj = GAPI::perspective(1.0f, 1.0f, 1.0f, 2.0f); Core::mLightProj = Core::mProj * Core::mView; @@ -642,17 +642,19 @@ namespace UI { game->setShader(Core::passCompose, Shader::ENTITY, false, false); Core::setMaterial(1.0f, 0.0f, 0.0f, 1.0f); + vec4 o = vec4(offset, 0.0f); + // center - Core::lightPos[0] = vec4(0.0f, 0.0f, 0.0f, 0.0f); + Core::lightPos[0] = vec4(0.0f, 0.0f, 0.0f, 0.0f) + o; Core::lightColor[0] = vec4(0.4f, 0.4f, 0.4f, 1.0f / 2048.0f); // camera view - Core::lightPos[1] = vec4(0.0f, 0.0f, -2048.0f, 0.0f); + Core::lightPos[1] = vec4(0.0f, 0.0f, -2048.0f, 0.0f) + o; Core::lightColor[1] = vec4(0.9f, 0.9f, 0.9f, 1.0f / 2048.0f); // left - Core::lightPos[2] = vec4(-1536.0f, 256.0f, 0.0f, 0.0f); + Core::lightPos[2] = vec4(-1536.0f, 256.0f, 0.0f, 0.0f) + o; Core::lightColor[2] = vec4(0.8f, 0.8f, 0.5f, 1.0f / 4096.0f); // right - Core::lightPos[3] = vec4( 1536.0f, -256.0f, 0.0f, 0.0f); + Core::lightPos[3] = vec4( 1536.0f, -256.0f, 0.0f, 0.0f) + o; Core::lightColor[3] = vec4(0.8f, 0.6f, 0.8f, 1.0f / 4096.0f); Core::updateLights(); @@ -670,7 +672,9 @@ namespace UI { mat4 mView = Core::mView; Core::mView.scale(vec3(0.5f)); Core::setViewProj(Core::mView, Core::mProj); - setupInventoryShading(); + + vec3 lightOffset = vec3(UI::width - 64.0f, UI::height - 64.0f, 2048.0f); + setupInventoryShading(lightOffset); Basis joints[MAX_SPHERES];