Lights with radius overlapping with mesh result in sharp specular cutoff #13318
Labels
A-Rendering
Drawing game state to the screen
C-Bug
An unexpected or incorrect behavior
D-Modest
A "normal" level of difficulty; suitable for simple features or challenging fixes
S-Needs-Investigation
This issue requires detective work to figure out what's going wrong
X-Uncontroversial
This work is generally agreed upon
Milestone
Bevy version Main dcb8a13, 0.13
This isn't a new issue. I checked and the same issue occurs in bevy 0.6.
When the radius of a point or spot light intersects with a mesh, it creates a sharp cutoff in the specular reflection. This sharp cutoff is also not aligned with the intersection between the mesh and the light radius.
Point light with radius of 3 at Y=2: (Example code below)
![bevy](https://private-user-images.githubusercontent.com/33357138/329697886-ece4f083-84aa-46f8-87f0-bef8f7aeb8e9.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1NTY0NjcsIm5iZiI6MTcyMTU1NjE2NywicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTc4ODYtZWNlNGYwODMtODRhYS00NmY4LTg3ZjAtYmVmOGY3YWViOGU5LlBORz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIxVDEwMDI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIzODViMWI5Y2U0NzUzNDUxY2JiOWFhM2QwMDMyNzA5MTM0NGE0ZGE2MmVkMTdkODI4OWQ1MTZlNTRlYjAxOGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.zduZEFq_wTvuEuBRh17CLD1d6aye3iQvHts6tFx5jFs)
Sphere with same radius and location as point light
![bevy_with_sphere](https://private-user-images.githubusercontent.com/33357138/329697904-538d105d-c8be-423d-99c4-c2a409319392.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1NTY0NjcsIm5iZiI6MTcyMTU1NjE2NywicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTc5MDQtNTM4ZDEwNWQtYzhiZS00MjNkLTk5YzQtYzJhNDA5MzE5MzkyLlBORz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIxVDEwMDI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBlMjY3M2E1MzFlYjM4ZDRiZWUwM2UyNDZkYWFmOTViZjEyMGE2OTc4ZDRiMTg0OTc3MjJmYzdlNDIxODYyZGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8VS7zYMZPJJAdY2ypAIgK9Jou5QypUMrg4Ie_Tz0HoU)
The same scene in Blender (4.1 eevee):
![blender](https://private-user-images.githubusercontent.com/33357138/329697008-ff28a5f3-27f3-4e98-9cee-d836a6c76aee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1NTY0NjcsIm5iZiI6MTcyMTU1NjE2NywicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwMDgtZmYyOGE1ZjMtMjdmMy00ZTk4LTljZWUtZDgzNmE2Yzc2YWVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIxVDEwMDI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgyYWVjNzEzNzJjNjMxZDMyNzI1NTdjMDc2YjhhYTAwZjZkMTU3YzdiMWU4ZWE0NmUzZTI5MmQ0YjkzNzU2YzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cz0cvNTP-lCCJymAtV1vxdZ6CMaEuoDTqi0mYDI0PfY)
With sphere:
![blender_with_sphere](https://private-user-images.githubusercontent.com/33357138/329697040-f2330dbf-3325-481c-9c24-7e8b0ed236e7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1NTY0NjcsIm5iZiI6MTcyMTU1NjE2NywicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwNDAtZjIzMzBkYmYtMzMyNS00ODFjLTljMjQtN2U4YjBlZDIzNmU3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIxVDEwMDI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJmOGYxM2YyNGRjZDdkOWU3MjBkNTE4M2NkZDZkYzAyMDAzZmZjYTJmYzZlYTU4Njk2Yjg2Y2E4NTA4YjA3MzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.EzuKtXIHucN8u7ddNpoebiWJcjnf59vpxw5m6BOuahM)
Blender also has a "Soft Falloff" setting that is enabled by default for point/spot lights:
![blender_soft_falloff](https://private-user-images.githubusercontent.com/33357138/329697065-a033ee3b-7dd7-48d8-9efd-50d455b5c540.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1NTY0NjcsIm5iZiI6MTcyMTU1NjE2NywicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwNjUtYTAzM2VlM2ItN2RkNy00OGQ4LTllZmQtNTBkNDU1YjVjNTQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIxVDEwMDI0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlM2YwODg3MTgxMDhkY2M0NzZiYTU3NGI2MjE4ZDA4YTRkY2Y1OTliMGFhZDI3ZWVjMTNiZjZjMzYzYjlhOWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.xSrl1Zcw5Aivv7N-Quia8yVR7CUgy2AUa1pDaYUC1sk)
The text was updated successfully, but these errors were encountered: