Skip to content

Move PointLight to LTC#23400

Open
dylansechet wants to merge 6 commits intobevyengine:mainfrom
dylansechet:ltc_pointlight
Open

Move PointLight to LTC#23400
dylansechet wants to merge 6 commits intobevyengine:mainfrom
dylansechet:ltc_pointlight

Conversation

@dylansechet
Copy link
Contributor

@dylansechet dylansechet commented Mar 17, 2026

Objective

Move spherical area lights (PointLight with radius>0) to LTC.

This is a follow-up to #23288 and I'm working from that branch, only 34a95e2 is new.

Solution

I used the method described in this SIGGRAPH course ("Real-Time Line- and Disk-Light Shading" by Heitz and Hill). This PR is pretty much a direct translation of the reference GLSL implementation shared in the course.

This has the downside of breaking anisotropy for area lights, as we don't have the LTC lookup tables for it.

Testing

  • Ran many_lights
  • Compared to eevee/cycles, see showcase below

This PR seems to improve many_lights performance on my system (igpu), which makes no sense to me given the extra work it is doing. Could someone try to reproduce this ?

tracy

Showcase

Main
bevy_main_roughness=0 3

LTC
bevy_ltc_roughness=0 3

Cycles
cycles_roughness=0 3


grid

@dylansechet dylansechet changed the title LTC for PointLight Move PointLight to LTC Mar 17, 2026
@github-actions
Copy link
Contributor

Your PR caused a change in the graphical output of an example or rendering test. This might be intentional, but it could also mean that something broke!
You can review it at https://pixel-eagle.com/project/B04F67C0-C054-4A6F-92EC-F599FEC2FD1D?filter=PR-23400

If it's expected, please add the M-Deliberate-Rendering-Change label.

If this change seems unrelated to your PR, you can consider updating your PR to target the latest main branch, either by rebasing or merging main into it.

@kfc35 kfc35 added A-Rendering Drawing game state to the screen S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Mar 17, 2026
@github-project-automation github-project-automation bot moved this to Needs SME Triage in Rendering Mar 17, 2026
@alice-i-cecile
Copy link
Member

This has the downside of breaking anisotropy for area lights, as we don't have the LTC lookup tables for it.

We should fix this before merging IMO.

@alice-i-cecile alice-i-cecile added C-Refinement Improves output quality, without fixing a clear bug or adding new functionality. D-Modest A "normal" level of difficulty; suitable for simple features or challenging fixes labels Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Rendering Drawing game state to the screen C-Refinement Improves output quality, without fixing a clear bug or adding new functionality. D-Modest A "normal" level of difficulty; suitable for simple features or challenging fixes S-Needs-Review Needs reviewer attention (from anyone!) to move forward

Projects

Status: Needs SME Triage

Development

Successfully merging this pull request may close these issues.

3 participants