Skip to main content
📝 AI-tools

AI Shader-effecten: Hoe ik 3JS-magie Bouwde in 4 Minuten

AI Shader-effecten: Hoe ik 3JS-magie Bouwde in 4 Minuten Zes uur. Zo lang staarde ik naar GLSL-code de eerste keer dat ik probeerde een vervormingshov...

7 min

Leestijd

1,215

Woorden

Feb 25, 2026

Gepubliceerd

Engr Mejba Ahmed

Geschreven door

Engr Mejba Ahmed

Artikel delen

AI Shader-effecten: Hoe ik 3JS-magie Bouwde in 4 Minuten

AI Shader-effecten: Hoe ik 3JS-magie Bouwde in 4 Minuten

Zes uur. Zo lang staarde ik naar GLSL-code de eerste keer dat ik probeerde een vervormingshovereffect toe te voegen aan de galeriepagina van een klant.

Niet zes uur voor het bouwen van de hele pagina. Zes uur voor één hoveranimatie die precies 0,4 seconden duurde wanneer de muis van de gebruiker over een afbeelding bewoog.

De vertex shader was prima. De fragment shader werkte op zichzelf. Maar de uniform-variabelen correct doorgeven? De muiscoördinaten normaliseren? Omgaan met het canvas-formaat op verschillende viewport-maten? Ik bleef tegen muren oplopen die ik niet wist dat ze bestonden.

Ik leverde de pagina op zonder het shader-effect. Gewoon een saaie CSS-opaciteitsovergang. De klant merkte het niet. Maar ik wel.

Vorige week paste ik vijf verschillende shader-hovereffecten toe — wobble, wave, chromatische aberratie, vervorming en een RGB-splitsing — op een volledige galeriepagina en leverde alles op in minder dan 45 minuten. Eén effect van niets naar een werkende preview? Vier minuten.

Het verschil was niet dat ik eindelijk GLSL had gemeesterd. Ik kan nog steeds geen displacement shader schrijven zonder documentatie open te hebben. Het verschil is dat ik een Claude Code-skill heb gebouwd die het voor mij doet.


Waarom Shaders Buiten Bereik Blijven (En Waarom Dat Niet Jouw Schuld Is)

Hier is het probleem met shaders in front-end development: de kenniskloof is geen leercurve. Het is een steile rots.

CSS-animatie? Je leert door te doen — dingen kapotmaken, dingen repareren, dingen opleveren. GLSL (OpenGL Shading Language) is anders. Het is een C-achtige taal die rechtstreeks op de GPU draait, vertices en fragmenten parallel verwerkt met bijna nul tolerantie voor het vage "goed genoeg" begrip waar je mee weg kunt komen in JavaScript.

Het echte pijn is niet dat shaders moeilijk zijn. Het is dat shaders moeilijk zijn ten opzichte van hoe vaak je ze nodig hebt.

Maar — en dit is het deel dat ertoe doet — ze zien er ongelooflijk uit. Een goed uitgevoerd chromatisch aberratiehovereffect op een galerij kan het verschil zijn tussen een site die aanvoelt als een premium product en één die aanvoelt als een template.


Wat een Claude Code-skill Eigenlijk Is

Wanneer developers zich AI-code-generatie voorstellen, zien ze een chatbot die iets genereert dat je in je project kopieert en plakt en daarna een uur handmatig aanpast.

Een Claude Code-skill is anders. Denk er aan als een geversioned, herbruikbare instructieset die:

  • Persistente context heeft — het weet welke projectstructuren het verwacht, welke opties beschikbaar zijn
  • Je codebase eerst leest — voordat het één regel schrijft, scant een goed gebouwde skill je project
  • Wijzigingen chirurgisch aanbrengt — het wijzigt alleen wat gewijzigd moet worden
  • Configureerbare parameters accepteert — shader-type, intensiteit, animatiestijl worden doorgegeven als gestructureerde opties

De shader-skill die ik heb gebouwd — noem het apply-shader-hover — werkt precies zo.


De Vier Shader-effecten: Wat Er Echt Onder de Motorkap Gebeurt

Vervorming — De Vloeibare Warp

De vervormings-shader buigt de afbeeldingsgeometrie rond de muispositie, waarbij een beleffect wordt gecreëerd.

Sleutel-uniforms die het effect aansturen:

  • u_mouse — genormaliseerde 0.0–1.0 muispositie in schermruimte
  • u_time — verstreken tijd voor vloeiende animatie in/uit bij hover
  • u_intensity — scalaire vermenigvuldiger

Wave — De Elegante Rimpeling

Wave is subtieler dan vervorming. In plaats van te buigen rond de cursor, creëert het een rimpelpatroon dat uitstraalt vanuit het interactiepunt.

Het interessante technische detail hier is de animatiestijlparameter. "Snappy" gebruikt een exponentiële vervalkurve. "Languid" gebruikt een langzamere curve met een lichte overshoot. "Smooth" gebruikt eenvoudige cosinusinterpolatie.

Chromatische Aberratie — De Gene Die Reacties Krijgt

Dit is consistent het effect dat mensen midden in het scrollen doet stoppen. Chromatische aberratie simuleert de kleurrand van een lens die niet alle golflengten op hetzelfde brandpunt focust.

In de fragment shader besampl je de textuur drie keer:

  • Roodkanaal: texture2D(u_texture, uv + offset)
  • Groenkanaal: texture2D(u_texture, uv) — geen offset, dit is het anker
  • Blauwkanaal: texture2D(u_texture, uv - offset)

Wobble — Die in de Vertex Shader Leeft

Wobble is het meest speelse van de vier, en technisch gezien het meest onderscheidende — het werkt in de vertex shader in plaats van de fragment shader. In plaats van te manipuleren hoe pixels gekleurd worden, manipuleert het de geometrie zelf.


De Skill Bouwen: Het Echte Proces, Niet de Demo-versie

Ik wil eerlijk zijn over iets: deze skill verscheen niet kant-en-klaar uit een enkele promptsessie. Het kostte 8-10 iteratieve rondes om het te krijgen tot de kwaliteit waarbij ik het zou inzetten op een klantproject.

De eerste versie was pijnlijk naïef. Ik promptte Claude Code om "een skill te maken die Three.js shader-hovereffecten toepast op galerij-afbeeldingen." Wat terugkwam was syntactisch correcte code die niet draaide — omdat het aannam dat een module-bundler beschikbaar was.

Ronde 2 corrigeerde de omgevingsdetectie maar brak wanneer afbeeldingselementen genest waren in complexe galerijtrapstructuren.

Elke mislukking werd onderdeel van de kennisbasis van de skill. Ik voegde gedocumenteerde voorbeelden toe van elk patroon.

Het inflectiepunt was toen ik begon "mislukking-modus-documentatie" toe te voegen — niet alleen beschrijven wat de skill zou moeten doen als alles werkt, maar expliciet documenteren wat het zou moeten doen als dingen fout gaan.


De Werkelijke Workflow: Van Aanroep tot Preview

Stap 1: Aanroepen vanuit het project

/apply-shader-hover

De skill stelt onmiddellijk twee vragen:

  1. Welk bestand bevat de galerij?
  2. Welk shader-effect? (vervorming / wave / chromatisch / wobble)

Stap 2: Parameters configureren

Voor chromatische aberratie:

Intensiteit: subtiel | middel | sterk
Animatiestijl: vloeiend | snappy | languid
Toepassen op: alle galerij-afbeeldingen | specifieke selector

Stap 3: Codebase-context lezen

Voordat er code wordt gegenereerd, leest de skill het doelHTML-bestand, de CSS van het project, en eventueel bestaand Three.js-gebruik.

Stap 4: Generatie en injectie

De skill genereert:

  • Three.js-initialisatie (renderer, scene, camera, canvas-element)
  • GLSL shader-bronstrings voor zowel vertex als fragment shaders
  • Uniform-beheer en update-lus
  • Muiseventlisteners
  • ResizeObserver-integratie
  • Opruimen/verwijderen bij het verlaten van de pagina

De Eerlijke Beoordeling: Wat Dit Werkelijk Verandert

Wat echt beter werd:

De grootste verschuiving is niet tijdsbesparing — het is toegang. Het chromatisch aberratie-effect dat ik beschreef? Ik zou dat nooit aan een klant hebben aangeboden vóór deze skill. De implementatiekosten maakten het onpraktisch voor de meeste projecten.

Wat nog menselijk oordeel vereist:

De skill weet hoe je een sterk chromatisch aberratie-shader op elke afbeelding in een galerij toepast. Het weet niet of een sterk chromatisch aberratie-shader zou moeten staan op die galerij. Die beslissing is nog steeds van jou.


Bouw Je Eigen Versie: De Aanpak Die Ik Zou Aanbevelen

Begin niet met prompting vanaf nul. Vind de beste bestaande Three.js shader-effect-implementatie die je kunt — iets dat werkelijk werkt in productie. Gebruik dat als het fundamentele voorbeeld in de kennisbasis van je skill.

Bouw incrementeel:

  • Begin met één shader-type toegepast op één projectstructuur
  • Test het op 3-4 echte projecten (geen demo's met schone HTML)
  • Documenteer elk geval waarbij de uitvoer handmatige correctie nodig heeft

Voeg vroeg foutmodus-afhandeling toe. Vertel de skill expliciet wat te doen wanneer Three.js niet beschikbaar is, wanneer de selector niets vindt, wanneer WebGL niet wordt ondersteund.


De galeriepagina die vorige week werd opgeleverd — chromatische aberratie die bij hover draait, RGB-kanalen die splijten en terugsnappen naarmate de muis elke afbeelding kruist — zag eruit als het soort werk dat ik vroeger afschreef als "voor iemand anders om te bouwen."


Laten We Samenwerken

Wil je AI-systemen bouwen, workflows automatiseren of je tech-infrastructuur opschalen? Ik help je graag.

Coffee cup

Vond u dit artikel leuk?

Uw steun helpt mij meer diepgaande technische content, open-source tools en gratis bronnen voor de ontwikkelaarsgemeenschap te maken.

Gerelateerde onderwerpen

Engr Mejba Ahmed

Over de auteur

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

13  -  12  =  ?

Blijf leren

Gerelateerde artikelen

Alles bekijken

Comments

Leave a Comment

Comments are moderated before appearing.