Markt
Prijzen
InloggenBegin
PraktijkgidsCSS en web
CSS en web

SVG feTurbulence: ruis-, korrel- en texturfilters

Eén filterprimitief maakt bijna elke textuur op het web: korrel over een kleurverloop, papier achter een kaart, een trilling op een rand. Dit doet elk attribuut, met recepten die werken.

GradientlyGeverifieerd Gradiently-account·1 oktober 2026·5 min lezen
Cover: Sapphire Casino · GR·N417·BV

De korte versie

  • SVG feTurbulence is een filterprimitief dat Perlin-ruis genereert, dat je kunt gebruiken als korrel, papier, wolken of als bron voor verplaatsing.
  • Het attribuut baseFrequency bepaalt de grootte van de ruis: hoge waarden rond 0,6 tot 0,9 geven fijne korrel en lage waarden rond 0,01 tot 0,05 grote, zachte wolken.
  • type="fractalNoise" maakt zachte, gelijkmatige ruis die past bij korrel en papier, terwijl type="turbulence" scherpere, rimpelige ruis maakt die past bij marmer en water.
  • Een kleine ruistegel met stitchTiles="stitch", met lage dekking over een kleurverloop gelegd, voegt textuur toe en verbergt banding tegen heel lage kosten.
  • feTurbulence is duur om over grote vlakken te berekenen, dus render het één keer als tegel in plaats van het schermvullend te animeren.
Op deze pagina
Wat elk feTurbulence-attribuut doetRecept: korrel over een kleurverloopRecept: papiertextuurRecept: vervormde randen met feDisplacementMapPrestaties en gedrag per browser

SVG feTurbulence is een filterprimitief dat zijn gebied vult met Perlin-ruis. Op zichzelf is het resultaat een veld van gekleurde statische ruis; gecombineerd met andere primitieven wordt het filmkorrel, papiervezel, wolken, marmer of een bron om vormen te vervormen. Je stuurt het met vijf attributen: type, baseFrequency, numOctaves, seed en stitchTiles. De meeste texturen op moderne websites, waaronder de korrel van korrelige kleurverlopen, beginnen hier.

html
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300">
  <filter id="noise">
    <feTurbulence type="fractalNoise" baseFrequency="0.75" numOctaves="3" stitchTiles="stitch" />
  </filter>
  <rect width="100%" height="100%" filter="url(#noise)" />
</svg>
Het minimum: een filter dat ruis maakt, toegepast op een rechthoek. De uitvoer is veelkleurige statische ruis tot je de kleur verwijdert.

Wat elk feTurbulence-attribuut doet

typeturbulence (standaard) of fractalNoise

Effect

Rimpelig en scherp, of zacht en gelijkmatig
baseFrequency

Waarden

Eén getal, of twee voor x en y

Effect

Kleiner betekent grotere kenmerken
numOctaves

Waarden

Geheel getal, standaard 1

Effect

Lagen van fijner detail; kost snelheid
seedElk getal, standaard 0

Effect

Een ander willekeurig patroon
stitchTiles

Waarden

noStitch (standaard) of stitch

Effect

Maakt randen glad zodat tegels schoon herhalen
AttribuutWaardenEffect
typeturbulence (standaard) of fractalNoiseRimpelig en scherp, of zacht en gelijkmatig
baseFrequencyEén getal, of twee voor x en yKleiner betekent grotere kenmerken
numOctavesGeheel getal, standaard 1Lagen van fijner detail; kost snelheid
seedElk getal, standaard 0Een ander willekeurig patroon
stitchTilesnoStitch (standaard) of stitchMaakt randen glad zodat tegels schoon herhalen
De vijf attributen. Verander er tijdens het afstemmen steeds één, omdat ze op elkaar inwerken.

baseFrequency is degene die je het meest aanraakt. Hij wordt gemeten in cycli per gebruikerseenheid, dus 0.8 pakt kenmerken dicht op elkaar en 0.02 rekt ze uit tot trage wolken. Twee waarden, zoals baseFrequency="0.01 0.3", rekken de ruis uit langs één as, waarmee geborsteld metaal en houtnerf worden nagebootst.

0,8 tot 0,9

Ziet eruit als

Fijne filmkorrel

Gebruik

Overlay op kleurverlopen en foto’s
0,5 tot 0,7

Ziet eruit als

Zichtbare korrel, risograaf

Gebruik

Posters, redactionele pagina’s
0,15 tot 0,3

Ziet eruit als

Grove spikkels, beton

Gebruik

Achtergronden, steen
0,02 tot 0,05

Ziet eruit als

Wolken, rook

Gebruik

Papiervezels, zacht licht
0,005 tot 0,01

Ziet eruit als

Grote trage golven

Gebruik

Verplaatsing, marmer
baseFrequencyZiet eruit alsGebruik
0,8 tot 0,9Fijne filmkorrelOverlay op kleurverlopen en foto’s
0,5 tot 0,7Zichtbare korrel, risograafPosters, redactionele pagina’s
0,15 tot 0,3Grove spikkels, betonAchtergronden, steen
0,02 tot 0,05Wolken, rookPapiervezels, zacht licht
0,005 tot 0,01Grote trage golvenVerplaatsing, marmer
Beginpunten voor een tegel van ongeveer 300 pixels breed. Ruis schaalt mee met de SVG, dus een groter getekende tegel ziet er grover uit.

type="fractalNoise"

  • Zacht, wolkachtig, gelijkmatig verspreid
  • Goed voor korrel, papier en mist
  • De gebruikelijke keuze voor overlays

type="turbulence"

  • Scherper met donkere plooien
  • Goed voor marmer, vuur en water
  • Ziet er druk uit als volledige overlay

Recept: korrel over een kleurverloop

Het nuttigste wat feTurbulence doet is korrel toevoegen. Een schoon digitaal kleurverloop vertoont banding in zichtbare strepen, vooral donkere; lichte ruis breekt die strepen op en laat het vlak gedrukt aanvoelen. De stappen: maak de ruis, strip de kleur en leg hem met lage sterkte over het kleurverloop.

html
<svg xmlns="http://www.w3.org/2000/svg" width="240" height="240">
  <filter id="grain" x="0" y="0" width="100%" height="100%">
    <feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch" result="noise" />
    <feColorMatrix in="noise" type="saturate" values="0" />
  </filter>
  <rect width="100%" height="100%" filter="url(#grain)" />
</svg>
feColorMatrix met saturate 0 maakt de ruis grijs. Het filtergebied op de volledige rechthoek zetten voorkomt een zachte rand.

Sla dat op als grain.svg of voeg het inline in als data-URI en tegel het dan in een pseudo-element boven het kleurverloop.

css
.hero {
  position: relative;
  isolation: isolate;
  background: linear-gradient(160deg, #0f0b1e 0%, #312e81 55%, #6d28d9 100%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("/grain.svg");
  background-size: 240px;
  opacity: 0.12;
  mix-blend-mode: overlay;
  pointer-events: none;
}
De overvloei- en zachtlicht-mengmodi behouden de kleur van het kleurverloop en voegen alleen textuur toe. Begin bij 0,08 tot 0,15 dekking en beoordeel het schermvullend.
De ondergrond onder de korrellinear-gradient(160deg, #0f0b1e 0%, #312e81 55%, #6d28d9 100%)
Donkere violette kleurverlopen als deze zijn waar banding het sterkst opvalt, en precies daar verdient korrel zijn plek. Meer over de oorzaak in banding in kleurverlopen.

Recept: papiertextuur

Papier is laagfrequente ruis die door een lichtbron in reliëf wordt omgezet. feDiffuseLighting behandelt de ruis als hoogtekaart en belicht hem van één kant, wat de zachte heuvels van een vel katoenpapier oplevert.

html
<filter id="paper" x="0" y="0" width="100%" height="100%">
  <feTurbulence type="fractalNoise" baseFrequency="0.04" numOctaves="5" result="noise" />
  <feDiffuseLighting in="noise" lighting-color="#f7f1ea" surfaceScale="2" result="lit">
    <feDistantLight azimuth="45" elevation="60" />
  </feDiffuseLighting>
  <feBlend in="SourceGraphic" in2="lit" mode="multiply" />
</filter>
Verhoog surfaceScale voor een ruwer vel; verlaag elevation voor een strijklicht dat elke vezel overdrijft.

Combineer het met warme gebroken witte ondergronden. Achtergronden met papiertextuur heeft paletten die erbij passen.

Recept: vervormde randen met feDisplacementMap

Ruis kan ook pixels verplaatsen. feDisplacementMap leest de ruis en verschuift elke pixel van de bron met maximaal scale eenheden, wat handgetekende lijnen, smeltende tekst en rimpelend water oplevert.

html
<filter id="wobble">
  <feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="2" seed="3" result="warp" />
  <feDisplacementMap in="SourceGraphic" in2="warp" scale="10" xChannelSelector="R" yChannelSelector="G" />
</filter>

<text x="40" y="120" font-size="96" font-weight="700" filter="url(#wobble)">Wavy</text>
Een scale van 4 tot 12 leest als handgemaakt. Voorbij 30 wordt de bron onherkenbaar. Verander seed voor een andere trilling.

Tekst blijft tekst

Gefilterde SVG-tekst blijft echte tekst, dus hij kan worden geselecteerd en door schermlezers worden voorgelezen. Houd vervormingen subtiel bij alles wat mensen moeten lezen.

Prestaties en gedrag per browser

feTurbulence werkt in elke huidige browser, maar wordt in veel ervan op de cpu berekend en de kosten groeien met oppervlak en octaven. Een tegel van 240 pixels wordt één keer berekend en herhaald, wat goedkoop is. Een schermvullend filter op een live element wordt opnieuw berekend telkens als het element opnieuw wordt getekend, wat op telefoons traag kan zijn.

  1. 1

    Tegel het

    Render ruis in een kleine SVG met stitchTiles="stitch" en herhaal hem als achtergrondafbeelding.

  2. 2

    Houd octaven laag

    numOctaves boven 4 voegt zelden zichtbaar detail toe bij korrelgroottes en kost elke keer rekenkracht.

  3. 3

    Vermijd animeren

    Het animeren van baseFrequency of seed dwingt elk frame een volledige herberekening af. Verschuif in plaats daarvan een statische tegel met een transform.

  4. 4

    Controleer beide thema’s

    Korrel die er op donker goed uitziet, kan er op licht vuil uitzien. Stem de dekking per thema af, zoals in kleurverlopen voor donkere modus.

Voor een aanpak met alleen css van hetzelfde idee zie css-ruistextuur. En als je korrel wilt zonder filters af te stemmen, heeft elke Gradiently Mark zijn eigen korrel en materiaal als onderdeel van zijn recept, live gerenderd op elk formaat waarin je ontwerpt.

Korrel, geen schittering.
Fijne ruis over een diep kleurverloop

Een Mark met korrel ingebouwd in zijn oppervlak. De ruis is onderdeel van het recept, dus hij blijft op elk formaat even groot.

Vind een kleurverloop dat alleen van jou is

Blader door duizenden Marks, ontwerp er gratis mee en claim de Mark die bij je past.

Bekijk de Markt

Vragen die mensen stellen

Wat doet feTurbulence in SVG?

Het genereert Perlin-ruis in een SVG-filter. Je kunt de ruis rechtstreeks als textuur tonen of voeden aan andere primitieven zoals feColorMatrix, feDiffuseLighting of feDisplacementMap.

Welke baseFrequency moet ik gebruiken voor korrel?

Probeer 0,7 tot 0,9 met type fractalNoise en drie octaven voor fijne filmkorrel. Lagere waarden maken grotere, zachtere kenmerken.

Wat is het verschil tussen fractalNoise en turbulence?

fractalNoise is zacht en gelijkmatig, goed voor korrel en papier. turbulence heeft scherpere plooien en past bij marmer-, vuur- of watereffecten.

Waarom heeft mijn SVG-ruis zichtbare naden als ik hem tegel?

Zet stitchTiles="stitch" op feTurbulence en zet het filtergebied op de volledige tegel met x, y, width en height, zodat randen aansluiten en er geen zachte rand verschijnt.

Is feTurbulence traag?

Het kan dat zijn op grote vlakken of bij animatie, omdat de ruis bij elke herschildering opnieuw wordt berekend. Een kleine statische tegel die als achtergrond wordt herhaald, is goedkoop.

Deel deze gids

Geschreven door GradientlyGeverifieerd Gradiently-account

Het team achter Gradiently, een ontwerptool rond Marks: levende kleurverlopen die alles wat je ontwerpt op jou laten lijken.

Bekijk ons profiel

Op deze pagina

Wat elk feTurbulence-attribuut doetRecept: korrel over een kleurverloopRecept: papiertextuurRecept: vervormde randen met feDisplacementMapPrestaties en gedrag per browser

Deel deze gids

Volgende in CSS en web

Meshverlopen in SVG: wat vandaag werkt

Lees verder

Alle gidsen over CSS en web
Kleurverlopen

Korrelig kleurverloop: waarom wat ruis kleur duur laat ogen

5 min lezen

Een schoon kleurverloop oogt als een standaardinstelling van een scherm. Hetzelfde kleurverloop met een fijne laag korrel oogt als een druk, een filmbeeld of een geschilderde muur. Dit is waarom, hoeveel je toevoegt en hoe je het doet.

CSS en web

CSS-ruistextuur: korrel aan kleurverlopen toevoegen met SVG

5 min lezen

Een vage laag ruis verbergt banding en laat vlakke schermkleur aanvoelen als drukwerk of film. Dit is het SVG-filter erachter, afgesteld en klaar om te plakken.

Kleurverlopen

Waarom je kleurverloop strepen heeft, en hoe je banding oplost

5 min lezen

Je maakte een vloeiend kleurverloop en het kwam gestreept terug. Dat is banding, en het heeft een eenvoudige oorzaak en een handvol betrouwbare oplossingen. Eerst het rekenwerk, dan de remedies.

Vind de look die alleen van jou is.

Elke Mark is een levende achtergrond met één eigenaar. Probeer een beschikbare Mark en claim de jouwe als het goed voelt.

Begin met ontwerpen

Controleer een certificaat

Typ een certificaatnummer of de code van een Mark om te zien wie hem bezit.

Werkt met ChatGPT en Claude

Vraag je AI om een ontwerp. Hij maakt het in jouw Mark, klaar om te bewerken.

ChatGPTClaude
Zo verbind je

Product

  • Markt
  • Verkennen
  • Prijzen
  • Certificaten

Leren

  • Praktijkgids
  • Helpcentrum
  • Wat is er nieuw

Ontwikkelaars

  • Overzicht
  • ChatGPT en Claude
  • API-referentie
  • API-keys

Bedrijf

  • Over ons
  • Contact
  • Inloggen

Juridisch

  • Voorwaarden
  • Privacy
  • Terugbetalingen
  • Mark-bescherming
  • Cookies
  • Alle beleidsstukken
Beweeg over de letters. Elke letter draagt een echte Mark.Raak een letter aan om zijn Mark te zien.Eén naam. Tien Marks erin.
© 2026 Gradiently