From: Perttu Ahola Date: Sun, 20 May 2012 11:12:17 +0000 (+0300) Subject: Tune smooth lighting a bit X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=afda9810f12f30c0d62da5e43956ad1db800f707;p=zefram%2Fminetest%2Fminetest_engine.git Tune smooth lighting a bit --- diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index 0e26161e..658ffe5e 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -274,8 +274,16 @@ static u8 getSmoothLight(enum LightBank bank, v3s16 p, MeshMakeData *data) if(ambient_occlusion > 4) { - ambient_occlusion -= 4; - light = (float)light / ((float)ambient_occlusion * 0.5 + 1.0); + //ambient_occlusion -= 4; + //light = (float)light / ((float)ambient_occlusion * 0.5 + 1.0); + float light_amount = (8 - ambient_occlusion) / 4.0; + float light_f = (float)light / 255.0; + light_f = pow(light_f, 2.2); // gamma -> linear space + light_f = light_f * light_amount; + light_f = pow(light_f, 1.0/2.2); // linear -> gamma space + if(light_f > 1.0) + light_f = 1.0; + light = 255.0 * light_f + 0.5; } return light;