fix a_distance

This commit is contained in:
MihailRis 2025-05-12 07:04:08 +03:00
parent 9e05f6dbb6
commit 44f7051a94
3 changed files with 7 additions and 5 deletions

View File

@ -48,8 +48,9 @@ void main() {
a_color.rgb = max(a_color.rgb, skyLightColor.rgb*v_light.a) * v_color;
a_color.a = u_opacity;
a_distance = length(u_view * u_model * vec4(pos3d * FOG_POS_SCALE, 0.0));
a_fog = calc_fog(a_distance / 256.0);
mat4 viewmodel = u_view * u_model;
a_distance = length(viewmodel * vec4(pos3d, 0.0));
a_fog = calc_fog(length(viewmodel * vec4(pos3d * FOG_POS_SCALE, 0.0)) / 256.0);
vec4 viewmodelpos = u_view * a_modelpos;
a_position = viewmodelpos.xyz;

View File

@ -47,8 +47,9 @@ void main() {
vec3 skyLightColor = pick_sky_color(u_skybox);
a_skyLight = skyLightColor.rgb*v_light.a;
a_distance = length(u_view * u_model * vec4(pos3d * FOG_POS_SCALE, 0.0));
a_fog = calc_fog(a_distance / 256.0);
mat4 viewmodel = u_view * u_model;
a_distance = length(viewmodel * vec4(pos3d, 0.0));
a_fog = calc_fog(length(viewmodel * vec4(pos3d * FOG_POS_SCALE, 0.0)) / 256.0);
vec4 viewmodelpos = u_view * a_modelpos;
a_position = viewmodelpos.xyz;

View File

@ -358,7 +358,7 @@ void WorldRenderer::generateShadowsMap(
const auto& settings = engine.getSettings();
int resolution = shadowMap.getResolution();
float shadowMapScale = 0.1f / (1 << glm::max(0L, settings.graphics.shadowsQuality.get())) * scale;
float shadowMapScale = 0.2f / (1 << glm::max(0L, settings.graphics.shadowsQuality.get())) * scale;
float shadowMapSize = resolution * shadowMapScale;
glm::vec3 basePos = glm::floor(camera.position / 500.0f) * 500.0f;