2017-07-29 2 views
-2

Eh bien, je veux définir une profondeur background-image, au lieu de cet arrière-plan dégradé. J'ai essayé beaucoup de choses, j'ai essayé beaucoup de réponses de cette communauté, et pas moyen ... le résultat est jamais avec le background-image non visible ou au-dessus des particules. Je veux juste que le background-image remplace le background-color actuel.Comment définir l'image d'arrière-plan à la toile

Je souhaite que n'importe qui puisse m'aider avec le code correct, merci et désolé pour mon anglais.

https://codepen.io/at80/pen/tqdmv

<canvas> 
+0

Bienvenue dans Stack Overflow. Si vous voulez de l'aide pour le débogage, vous devez créer aa [exemple complet minimum vérifiable] (https://meta.stackoverflow.com/questions/349789/how-do-i-create-a-minimal-complete-verifiable-example) et mettre il ** dans la question elle-même **. Le simple fait de poster un lien vers votre code est inacceptable. – gman

Répondre

0

Je ne serai pas en mesure de répondre entièrement à votre question, car il y a beaucoup de code de shader à regarder. Ce que vous devez faire est de vous assurer que lorsqu'un fragment dessine quelque chose qui n'est pas une feuille (par exemple l'arrière-plan), il a une valeur alpha de 0.0. Le plus simple serait d'avoir gl_FragColor.a = 0.0; quelque part. Je suis nouveau sur OpenGL/WebGL donc je ne peux pas vous aider en trouvant les emplacements exacts ou les méthodes pour le faire.

Vous avez pas mal de fragment shaders et ils font chacun des choses différentes. Le shader <script id="bg_fsh" type="x-shader/x_fragment"> ne contrôle que l'arrière-plan, mais il ne suffit pas à lui seul. Une fois que vous avez réussi à rendre l'arrière-plan transparent dans les fragment shaders, vous pouvez définir une image d'arrière-plan d'une façon ou d'une autre, comme sur un <div> contenant le canevas et il doit apparaître.

+0

ouais je l'ai fait, mais j'ai seulement atteint noir sur le fond, dans mon code je l'ai. – Menzezzz

+0

@Menzezzz vous pouvez probablement utiliser un mode de fusion CSS (mix-blend-mode/background-blend-mode) avec l'élément DOM lui-même tel que "screen" pour mixer votre image finale avec la couleur noire. Mais le mélange Webgl + peut être quelque peu coûteux en termes de performances. – K3N

+1

je le fais !!! juste j'ai essayé avant de changer la valeur de gl_FragColor.a, mais tous les écrans deviennent noirs ... sans fleurs mais je pense que parce que quand je l'ai changé n'a pas eu d'image de fond. Rigth maintenant après avoir essayé beaucoup de choses j'ai encore essayé et je me souviens de cet attribut grâce à vous. Et juste quand je pensais maintenant ou je l'ai quitté, je chaneg cette valeur et fonctionne !! ty – Menzezzz