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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NjM4NjksIm5iZiI6MTcxODg2MzU2OSwicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTc4ODYtZWNlNGYwODMtODRhYS00NmY4LTg3ZjAtYmVmOGY3YWViOGU5LlBORz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA2MDYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcxOGQxNDIyNDE4ZmQ4NTY5NmE5MDIxYzYwNmNmYjRlODhlZGMzMzBiMWExZjAxZjk4Y2NlZjhkMWJjZmI3YjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.sC8eEDSkQ8w8WcbBB7qiddCW5KQvWEd82aYr74wi-4w)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NjM4NjksIm5iZiI6MTcxODg2MzU2OSwicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTc5MDQtNTM4ZDEwNWQtYzhiZS00MjNkLTk5YzQtYzJhNDA5MzE5MzkyLlBORz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA2MDYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMyYWZjMzQwMDRlYjEwMjFmNmE0ZGI1ZWZjMjUyZDRkM2Q3Yjg4YzNjNjc0NDJjYjg5NWZjZGMyNmUzMGM3YTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3_SYoGzdLvRwaF0-aud2XDCS0CSOetrXOm-l_lTnDZU)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NjM4NjksIm5iZiI6MTcxODg2MzU2OSwicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwMDgtZmYyOGE1ZjMtMjdmMy00ZTk4LTljZWUtZDgzNmE2Yzc2YWVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA2MDYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZiOTNmZDM0ZWJhMzg2NDA1NThkNDZmOGU4NGIwZTFkMTRkN2U5NTVlZTJkYjBhMmNjMTg0NjUyNzljOWViYzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Z13884J4pRv2PWkZEakfc-XOttBjcwzDbsev-1BAOKE)
With sphere:
![blender_with_sphere](https://private-user-images.githubusercontent.com/33357138/329697040-f2330dbf-3325-481c-9c24-7e8b0ed236e7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NjM4NjksIm5iZiI6MTcxODg2MzU2OSwicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwNDAtZjIzMzBkYmYtMzMyNS00ODFjLTljMjQtN2U4YjBlZDIzNmU3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA2MDYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0YjU4NDYwMGE0OTI5YzRmOTJmMDAxYmEyMGYzYTI0NWI0ZTNkNjc0MzAyMTQzMjE4YWIwMmNkNTc0OTQ4MzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.npKBumJf3xBycGND0bbC3umCU-yfpOHYEtDaZ08h7Pw)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NjM4NjksIm5iZiI6MTcxODg2MzU2OSwicGF0aCI6Ii8zMzM1NzEzOC8zMjk2OTcwNjUtYTAzM2VlM2ItN2RkNy00OGQ4LTllZmQtNTBkNDU1YjVjNTQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDA2MDYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRjY2M3YmExMTI1NjhlMzhiNWMxNjEzNzg3YTAxZmUyYTRlMDg2MzkxMDUwNjM5NGNjYjFjYjUzODc3ZGYyYzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qMb-4c_iAou2X9G5-2v1ANPIlJtCZYfXuxhLaVwVg7s)
The text was updated successfully, but these errors were encountered: