Răsfoiți Sursa

SwRasterizer/Lighting: Fixed a bug where the distance attenuation bias was being set to the dist atten scale.

Subv 9 ani în urmă
părinte
comite
37ac2b6657
1 a modificat fișierele cu 2 adăugiri și 3 ștergeri
  1. 2 3
      src/video_core/swrasterizer/rasterizer.cpp

+ 2 - 3
src/video_core/swrasterizer/rasterizer.cpp

@@ -175,12 +175,11 @@ std::tuple<Math::Vec4<u8>, Math::Vec4<u8>> ComputeFragmentsColors(
         if (!lighting.IsDistAttenDisabled(num)) {
         if (!lighting.IsDistAttenDisabled(num)) {
             auto distance = (-view - position).Length();
             auto distance = (-view - position).Length();
             float scale = Pica::float20::FromRaw(light_config.dist_atten_scale).ToFloat32();
             float scale = Pica::float20::FromRaw(light_config.dist_atten_scale).ToFloat32();
-            float dist_aten_bias =
-                Pica::float20::FromRaw(light_config.dist_atten_scale).ToFloat32();
+            float bias = Pica::float20::FromRaw(light_config.dist_atten_bias).ToFloat32();
             size_t lut =
             size_t lut =
                 static_cast<size_t>(LightingRegs::LightingSampler::DistanceAttenuation) + num;
                 static_cast<size_t>(LightingRegs::LightingSampler::DistanceAttenuation) + num;
 
 
-            float sample_loc = scale * distance + dist_aten_bias;
+            float sample_loc = scale * distance + bias;
 
 
             u8 lutindex =
             u8 lutindex =
                 static_cast<u8>(MathUtil::Clamp(std::floor(sample_loc * 256.f), 0.0f, 255.0f));
                 static_cast<u8>(MathUtil::Clamp(std::floor(sample_loc * 256.f), 0.0f, 255.0f));