The <feSpecularLighting>
SVG filter primitive lights a source graphic using the alpha channel as a bump map. The resulting image is an RGBA image based on the light color. The lighting calculation follows the standard specular component of the Phong lighting model. The resulting image depends on the light color, light position and surface geometry of the input bump map. The result of the lighting calculation is added. The filter primitive assumes that the viewer is at infinity in the z direction.
This filter primitive produces an image which contains the specular reflection part of the lighting calculation. Such a map is intended to be combined with a texture using the add
term of the arithmetic <feComposite>
method. Multiple light sources can be simulated by adding several of these light maps before applying it to the texture image.
Usage context
Categories | Filter primitive element |
---|---|
Permitted content | Exactly one light source element first and any number of descriptive elements in any order. |
Attributes
Global attributes
Specific attributes
DOM Interface
This element implements the SVGFESpecularLightingElement
interface.
Example
<svg height="200" width="200" viewBox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id = "filter"> <feSpecularLighting result="specOut" specularExponent="20" lighting-color="#bbbbbb"> <fePointLight x="50" y="75" z="200"/> </feSpecularLighting> <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" k1="0" k2="1" k3="1" k4="0"/> </filter> <circle cx="110" cy="110" r="100" style="filter:url(#filter)"/> </svg>
Result
Specifications
Specification | Status | Comment |
---|---|---|
Filter Effects Module Level 1 The definition of '<feSpecularLighting>' in that specification. |
Working Draft | Removed limitation of specularExponent attribute. |
Scalable Vector Graphics (SVG) 1.1 (Second Edition) The definition of '<feSpecularLighting>' in that specification. |
Recommendation | Initial definition |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
feSpecularLighting | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 4 | IE Full support Yes | Opera Full support 9 | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
in | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 4 | IE Full support Yes | Opera Full support 9 | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
kernelUnitLength | Chrome ? | Edge ? | Firefox ? | IE ? | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
specularConstant | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 4 | IE Full support Yes | Opera Full support 9 | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
specularExponent | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 4 | IE Full support Yes | Opera Full support 9 | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
surfaceScale | Chrome ? | Edge ? | Firefox ? | IE ? | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
See also
<filter>
<feBlend>
<feColorMatrix>
<feComponentTransfer>
<feComposite>
<feConvolveMatrix>
<feDiffuseLighting>
<feDisplacementMap>
<feDistantLight>
<feFlood>
<feGaussianBlur>
<feImage>
<feMerge>
<feMorphology>
<feOffset>
<fePointLight>
<feSpotLight>
<feTile>
<feTurbulence>
- SVG tutorial: Filter effects