Start · Sprachen · JavaScript · Referenz · SVGFEDiffuseLightingElement

SVGFEDiffuseLightingElement

Schnittstelle

DOM-Schnittstelle des SVG-Filterprimitivs <code>&lt;feDiffuseLighting&gt;</code>. Sie beleuchtet eine Grafik matt (diffus) und nutzt dabei deren Alphakanal als Höhenkarte.

seit JavaScript Baseline: alle modernen Browser (SVG 1.1) Kategorie: webapi

Signatur

interface SVGFEDiffuseLightingElement extends SVGElement

Beschreibung

SVGFEDiffuseLightingElement ist die DOM-Schnittstelle für das Element <feDiffuseLighting> innerhalb eines <filter>. Das Filterprimitiv berechnet eine diffuse Beleuchtung nach dem Lambert-Modell. Der Alphakanal des Eingangsbildes dient dabei als Höhenkarte (Bump-Map). Genau ein untergeordnetes Lichtquellen-Element legt fest, woher das Licht kommt: <feDistantLight>, <fePointLight> oder <feSpotLight>. Heraus kommt ein vollständig undurchsichtiges Lichtbild. Dieses verrechnet man meist per <feComposite operator="arithmetic"> oder <feBlend> mit der Originalgrafik.

So entstehen Relief-, Präge- und Papiertexturen oder plastisch wirkende Buttons, ganz ohne Rastergrafiken. Oft kombiniert man das Primitiv mit <feTurbulence>: Das Rauschen liefert dann die Höhenkarte für eine Oberflächenstruktur.

Die Schnittstelle erbt von SVGElement. Aus SVGFilterPrimitiveStandardAttributes kommen x, y, width, height und result hinzu. Speziell für die Beleuchtung gibt es in1, surfaceScale, diffuseConstant, kernelUnitLengthX und kernelUnitLengthY. Alle Eigenschaften sind animierbare Objekte vom Typ SVGAnimatedNumber, SVGAnimatedString oder SVGAnimatedLength. Über baseVal liest und schreibt man den Grundwert, er entspricht dem Attribut im Markup. animVal liefert nur lesend den aktuell wirksamen Wert, der per SMIL animiert sein kann.

Die Lichtfarbe ist keine Eigenschaft der Schnittstelle. Sie kommt aus der CSS-Eigenschaft bzw. dem Präsentationsattribut lighting-color. Setzen kann man sie per setAttribute('lighting-color', …) oder element.style.lightingColor.

Parameter

Name Typ Default Beschreibung
$in1 SVGAnimatedString vorheriges Ergebnis bzw. SourceGraphic Spiegelt das Attribut in wider: die Eingabe, deren Alphakanal als Höhenkarte dient, z. B. SourceAlpha oder ein result-Name.
$surfaceScale SVGAnimatedNumber 1 Höhenfaktor der Oberfläche: Mit ihm wird der Alphawert multipliziert. Größere Werte ergeben ein stärkeres Relief.
$diffuseConstant SVGAnimatedNumber 1 Diffuse Reflexionskonstante kd im Lambert-Modell, also die Helligkeit des Lichtbildes. Muss ≥ 0 sein.
$kernelUnitLengthX SVGAnimatedNumber Erster Wert des Attributs kernelUnitLength: Abstand der Stützstellen in X-Richtung bei der Berechnung der Oberflächennormalen.
$kernelUnitLengthY SVGAnimatedNumber Zweiter Wert von kernelUnitLength (Y-Richtung). Fehlt er, gilt der X-Wert.
$x, y, width, height SVGAnimatedLength 0%, 0%, 100%, 100% Teilbereich des Filterprimitivs, geerbt aus SVGFilterPrimitiveStandardAttributes.
$result SVGAnimatedString Name des Zwischenergebnisses. Spätere Primitive können es über in/in2 referenzieren.

Rückgabewert

Typ
SVGFEDiffuseLightingElement
Beschreibung
Das Element-Objekt. Man erhält es z. B. über document.createElementNS('http://www.w3.org/2000/svg', 'feDiffuseLighting') oder querySelector('feDiffuseLighting').