Skip to content

Commit 675eec8

Browse files
committed
Better attenuation
1 parent 2a12231 commit 675eec8

2 files changed

Lines changed: 4 additions & 6 deletions

File tree

src/renderer/webgl/shaders/PointLight-frag.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,16 @@ module.exports = [
1111
'',
1212
'void main()',
1313
'{',
14-
' vec2 center = vec2((lightPosition.x + 0.0) * uResolution.x, (lightPosition.y + 0.0) * uResolution.y);',
14+
' vec2 center = vec2((lightPosition.x + 1.0) * uResolution.x, (lightPosition.y + 1.0) * uResolution.y);',
1515
'',
1616
' float distance = length(center - gl_FragCoord.xy);',
1717
'',
1818
' // float attenuation = 1.0 / distance;',
19-
' float attenuation = 1.0 / (1.0 + 0.1 * distance + 0.01 * distance * distance);',
19+
' // float attenuation = 1.0 / (0.01 * distance + 0.01 * distance * distance);',
20+
' float attenuation = 1.0 / (0.01 * distance * distance);',
2021
' float radius = 1.0 - min(distance, lightRadius) / lightRadius;',
2122
' float intensity = smoothstep(0.0, 1.0, min(attenuation, radius));',
2223
'',
23-
' // vec4 color = vec4(intensity, intensity, intensity, 0.0) * vec4(lightColor.rgb, 1.0);',
24-
'',
2524
' vec4 color = vec4(intensity, intensity, intensity, 0.0) * lightColor;',
2625
'',
2726
' gl_FragColor = vec4(color.rgb * lightColor.a, color.a);',

src/renderer/webgl/shaders/src/PointLight.frag

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ void main()
1414

1515
float distance = length(center - gl_FragCoord.xy);
1616

17-
// float attenuation = 1.0 / distance;
18-
float attenuation = 1.0 / (1.0 + 0.1 * distance + 0.01 * distance * distance);
17+
float attenuation = 1.0 / (0.01 * distance * distance);
1918
float radius = 1.0 - min(distance, lightRadius) / lightRadius;
2019
float intensity = smoothstep(0.0, 1.0, min(attenuation, radius));
2120

0 commit comments

Comments
 (0)