Filtre feDiffuseLighting

Vous devez définir la source lumineuse avec feSpotLight, feDistantLight ou fePointLight.
Vous devez utiliser feComposite, feMerge ou feBlend pour composer l'image et son éclairage.
feComposite donne les meilleurs résultats ( plus de paramètres ).

Paramètres:

surfaceScale : hauteur de la surface.
diffuseConstant : nombre positif.
kernelUnitLength : un ou deux nombres positifs. ( espace ou virgule comme séparateur ) 
lighting-color : couleur de la lumière
result : nom du RGBA créé

Outil: vous pouvez modifier les paramètres de feDiffuseLighting, feSpotLight et feComposite et déplacer à la souris le point d'impact ( pour feSpotLight ) sur une image JPEG ou SVG.

Exemple de code:

<defs>
<filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="400" height="400">
<feImage xlink:href='#MyImage' result='image'/>
<feDiffuseLighting lighting-color='white' result='spot' surfaceScale="1" diffuseConstant="1" kernelUnitLength="1,1"> 
<feSpotLight id='fsp' x='200' y='200' z='200' pointsAtX='200' pointsAtY='100' pointsAtZ='0' specularExponent='16' limitingConeAngle='45' />
</feDiffuseLighting>
<feComposite in='image' in2='spot' operator="arithmetic" k1="0.5" k2="1" k3="1" k4="0"/>
</filter>
<image id="MyImage" width='400' height='400' xlink:href='puzzle.jpg'/>
</defs>

......
<use filter="url(#MyFilter)" x='0' y='0'/>