diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-27 16:07:17 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-27 16:07:17 +1100 |
commit | f08ffe2162f9c3298f04174de7303bcbcdaf2a01 (patch) | |
tree | 2a13b67ffdeef540dcbd387b6848b561728ef466 /source/game/StarWorldClient.cpp | |
parent | b50244ade5415f9f84db9d54995faacffe6fd691 (diff) | |
parent | 888cde79ef8f6d1b008e86207b41e1fd686c7636 (diff) |
Merge branch 'light-test'
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r-- | source/game/StarWorldClient.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/game/StarWorldClient.cpp b/source/game/StarWorldClient.cpp index df69b94..535980b 100644 --- a/source/game/StarWorldClient.cpp +++ b/source/game/StarWorldClient.cpp @@ -1652,10 +1652,15 @@ void WorldClient::lightingCalc() { for (auto const& light : lights) { Vec2F position = m_geometry.nearestTo(Vec2F(m_lightingCalculator.calculationRegion().min()), light.position); - if (light.pointLight) - m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience); - else { + if (light.type == LightType::Spread) m_lightingCalculator.addSpreadLight(position, light.color); + else { + if (light.type == LightType::PointAsSpread) { + // hybrid (used for auto-converted object lights) - 75% spread, 25% point (2nd is applied elsewhere) + m_lightingCalculator.addSpreadLight(position, light.color * 0.75f); + m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience, true); + } else // fully additive point light + m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience); } } |