Portage des effets Shadertoy sur Qt Quick Effect Maker
Vous pouvez utiliser les effets créés dans Shadertoy sur Qt Quick Effect Maker. Lorsque vous utilisez des effets Shadertoy, tenez compte de ce qui suit :
- Qt Quick Effect Maker ne prend pas en charge les fonctionnalités suivantes de Shadertoy :
- Effets multi-passages (Buffer tabs)
- Audio
- Cartes cubiques
- Textures 3D
- Shadertoy ne prend en charge que les nuanceurs de fragment et les textures intégrées. Pour améliorer les performances de l'effet dans Qt Quick Effect Maker, déplacez certains calculs vers le vertex shader et utilisez des images personnalisées pour simplifier le code du shader.
- Le système de coordonnées diffère entre Shadertoy et Qt Quick Effect Maker. Dans Shadertoy, l'origine (0,0) est située dans le coin inférieur gauche, tandis que dans Qt Quick Effect Maker, l'origine est située dans le coin supérieur gauche.
Utilisation d'un effet Shadertoy dans Qt Quick Effect Maker
Pour utiliser un effet Shadertoy dans Qt Quick Effect Maker :
- Dans Qt Quick Effect Maker, créez un nouvel effet.
- Dans l'éditeur de nœuds, sélectionnez Add node puis, sous Common, sélectionnez Custom. Cela crée un nœud vide.

- Dans Shadertoy, copiez tout le code de l'onglet Image.
- Dans Qt Quick Effect Maker, double-cliquez sur le nœud Custom dans l'éditeur de nœuds. Cela ouvre l'éditeur de code.
- Collez le code Shadertoy dans l'onglet Frag.
- Trouvez la fonction
Maindans le code, elle ressemble à quelque chose comme :void mainImage( out vec4 fragColor, in vec2 fragCoord )
- Remplacez cette ligne par :
@main
Note : Vous ne pouvez pas avoir
@mainet le { suivant sur la même ligne. - Facultatif. Si l'effet dépend du système de coordonnées, il apparaît à l'envers. Pour résoudre ce problème, vous devez inverser la coordonnée y :
- Allez dans l'onglet Vert.

- Dans le menu déroulant, sélectionnez Main.
- Trouvez la ligne
fragCoord, elle devrait ressembler à quelque chose comme :fragCoord = qt_Vertex.xy;
- Remplacez cette ligne par :
fragCoord = vec2(qt_Vertex.x, iResolution.y - qt_Vertex.y);
- De même, vous devrez peut-être ajuster
texCoordetiMouse.
- Allez dans l'onglet Vert.
Maintenant, l'effet s'exécute et a la même apparence que l'effet Shadertoy.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.