feSpecularLighting: Light an image using the alpha channel as a bump map.

View source: R/filters.R

feSpecularLightingR Documentation

Light an image using the alpha channel as a bump map.


This 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 colour. The lighting calculation follows the standard specular component of the Phong lighting model. The resulting image depends on the light colour, 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 (i.e., the unit vector in the eye direction is (0,0,1) everywhere).

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 method in feComposite. Multiple light sources can be simulated by adding several of these light maps before applying it to the texture image.


feSpecularLighting(input = NA,
                   surfaceScale = 1, specularConstant = 1,
                   specularExponent = 1, kernelUnitLength = NA,
                   col = "white", lightSource = NULL, ...)



Identifies an input for this filter primtive. See filterInputs.


Scale applied to the input alpha surface.


kd in the Phong lighting model. Must be non-negative.


Numeric exponent for specular term, larger is more "shiny". Range [1,128].


The first number is the dx value. The second number is the dy value. If the dy value is not specified, it defaults to the same value as dx. Indicates the intended distance in current filter units (i.e., units as determined by the value of parent filter container's primitiveUnits) for dx and dy, respectively, in the surface normal calculation formulas. By specifying value(s) for kernelUnitLength, the kernel becomes defined in a scalable, abstract coordinate system. If kernelUnitLength is not specified, the dx and dy values should represent very small deltas relative to a given (x,y) position, which might be implemented in some cases as one pixel in the intermediate image offscreen bitmap, which is a pixel-based coordinate system, and thus potentially not scalable.


The colour to apply to the light from lightSource.


A light source object, produced by one of feDistantLight, fePointLight, or feSpotLight.


Further arguments to be passed onto fe.


For more information about this primitive, consult the reference to the SVG specification.


An fe.specular.lighting object.


Simon Potter



See Also

filterEffect fe, feDistantLight, fePointLight, feSpotLight.

gridSVG documentation built on March 31, 2023, 11:17 p.m.