CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Cet effet javascript magnifique est fait comment ?

Shaninjah
Shaninjah
Niveau 25
27 octobre 2020 à 18:14:40

Salut

Je suis tombé sur ce site : https://www.adultswim.com/toonami/

Et je trouve que l'effet du curseur qui ondule comme une vague + le découvrement furtif de puce informatique très jolie. Mais je n'ai absolument aucune idée de comment c'est produit.

Vous avez des pistes pour réussir à reproduire ces effets ?

fanthomas37
fanthomas37
Niveau 4
27 octobre 2020 à 22:00:12

Hello !
L'effet dans sa globalité est un peu complexe dans le sens ou il y a plusieurs couche superposée légèrement décalé sur l'axe Z pour produire un effet parallax lorsqu'on oriente la caméra.

La partie qui vous intéresse n'est pas très compliqué dans le principe mais ce n'est pas simple à réaliser.
Dans les grandes lignes, lorsque vous bougez la souris vous "gommez" l'image qui se trouve en dessus. Cette image est en fait le résultat d'un shader, et le rôle de ce shader est de remplir progressivement les espace vide par accrétion (c'est à dire par couche successive jusqu'à remplir complètement l'image).

Pour qu'on comprenne moins ce qui se passe, au lieu de simplement donner un coup de gomme brut, on gomme en utilisant un degradé radial allant d'une couleur opaque a une couleur transparente et on ne retient que les pixels translucide dans l'action de gommage. Le résultat est utilisé comme un masque sur l'image situé en dessous.

Dans les grande lignes toujours, le remplissage suit la même logique que dans cette démo
https://www.shadertoy.com/view/ts33DS

(le code est disponible mais un simple copier coller ne suffira pas a l'exploiter dans votre site web. Il y a toute une mise en place à faire (lié à la manière dont les shaders fonctionnent) et ça ne s'improvise pas. Le rendu de ce shader est fait en 4 passes, c'est à dire qu'en fait ce shader en contient 4 exécuté successivement l'un après l'autre pour produire le résultat final (et je ne parle là que de la partie remplissage progressif autonome des espaces vide)

J'ai l'impression, mais je ne suis pas certain, que dans votre effet, l'auteur fait aussi exactement le contraire. C'est a dire que la partie opaque de notre dégradé radial qui sert à gommer est dessiné dans un canvas vide qui tend à disparaitre progressivement (même logique que l'autre shader sauf qu'au lieu de remplir du vide par du plein, on remplit du plein par du vide). Cette autre couche, si elle existe (mais je pense que oui) est exécuté légérment après ou légérement avant le shader décrit au dessus qui s'occupe du remplissage. Le résultat de ce shader est également appliqué comme masque et permet de découvrir une autre image dont le contenu est très proche de l'autre image masquée mais pas tout à fait pareil, l'idée étant de produire une confusion visuel afin de complexifier le rétro-engineering que je suis en train de faire.

Très chouette effet en tout cas, mais y a du boulot !

Après, si c'est vraiment juste l'effet de vague qui vous intéresse, il y a d'autre moyen de le produire avec un arrière plan constitué de particules qui sont repoussés dans le périmètre de la souris et qul reviennent à leur place quand la souris est plus loin. Regardez ce code par exemple, c'est bien plus simple et toujours efficace ;)
https://codepen.io/rkgttr/pen/ZGZzJG

Message édité le 27 octobre 2020 à 22:02:18 par fanthomas37
Shaninjah
Shaninjah
Niveau 25
29 octobre 2020 à 12:01:34

Merci beaucoup pour ce poste explicatif, c'est la première fois que je lis une réponse aussi intéressante sur le forum. Je suis triste de lire qu'il n'y a pas de solution 'miracle' pour reproduire cet effet mais je m'en douté un peu. Je vais suivre les pistes données pour essayer de refaire un effet similaire avec la superposition.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment