Lorsque GameMaker Studio 2 dessine un pixel, il y a une couleur source (la couleur du pixel que nous allons dessiner) et une couleur de destination (la couleur qui est déjà dans le pixel sur lequel nous dessinons), donc lors de la détermination du nouvelle couleur du pixel, les couleurs source et destination sont calculées en fonction du mode de fusion choisi. Chaque composant des couleurs est stocké en tant que valeur flottante entre 0 et 1, et la nouvelle couleur est calculée en multipliant chaque composant de la couleur source par un facteur et en multipliant chaque composant de couleur de destination par un autre facteur, puis en ajoutant résultats ensemble composant par composant.
Cette fonction vous permet de définir les différentes parties du composant qui doivent être factorisées pour créer un mode de fusion personnalisé. La source et la destination ont toutes deux une composante rouge, verte, bleue et alpha, et dans le tableau suivant les RGBA de la source sont considérés (Rs, Gs, Bs, As) tandis que les destinations sont (Rd, Gd, Bd, Ad). Les onze constantes qui peuvent être utilisées peuvent être source ou destination (ou les deux) lorsqu'elles sont utilisées dans cette fonction.
Constant Facteur de fusion (Rouge, Vert, Bleu, Alpha) bm_zero (0, 0, 0, 0) bm_one (1, 1, 1, 1) bm_src_colour (Rs, Gs, Bs, As) bm_inv_src_colour (1-Rs, 1-Gs, 1-Bs, 1-As) bm_src_alpha (As, As, As, As) bm_inv_src_alpha (1-As, 1-As, 1-As, 1-As) bm_dest_alpha (Annonce, Annonce, Annonce, Annonce) bm_inv_dest_alpha (1-Annonce, 1-Annonce, 1-Annonce, 1-Annonce) bm_dest_colour (Rd, Gd, Bd, Ad) bm_inv_dest_colour (1-Rd, 1-Gd, 1-Bd, 1-Ad) bm_src_alpha_sat (f, f, f, 1) où f = min (As, 1-Ad) Notez que vous pouvez fournir deux arguments individuels à cette fonction ou vous pouvez fournir un tableau d'arguments (tel que renvoyé par la fonction gpu_get_blendmode_ext par exemple). Si vous fournissez un tableau, il doit avoir les deux éléments suivants:
- [0] = Mode de fusion source (la valeur par défaut est bm_src_alpha )
- [1] = Mode de fusion de destination (par défaut bm_inv_src_alpha )
Il peut être assez difficile de visualiser le fonctionnement de ces différents modes de fusion. Vous trouverez ci-dessous un graphique simple montrant l'interaction de base d'un sprite unique avec différentes combinaisons de modes de fusion sur un seul arrière-plan. Veuillez noter que les résultats réels du mode de fusion que vous utiliserez dépendront beaucoup de la couleur de l'image-objet, de la valeur alpha de l'image-objet et de la couleur et de l'alpha de l'arrière-plan.
AVERTISSEMENT!: Tous les modes de fusion ne sont pas disponibles sur toutes les plates-formes. Android, Tizen, iOS et HTML5 sans WebGL ne pourront pas afficher correctement les modes suivants:
- bm_src_colour
- bm_inv_src_colour
- bm_dest_colour
- bm_inv_dest_colour
- bm_src_alpha_sat
gpu_set_blendmode(src, dest);
Argument La description src Facteur de mode de mélange de source (voir les constantes ci-dessus). dest Facteur de mode de mélange de destination (voir les constantes ci-dessus)
N/A
gpu_set_blendmode_ext(bm_src_alpha, bm_one);
draw_circle_colour(100, 100, 50, c_white, c_black, 0);
gpu_set_blendmode(bm_normal);
Cela va transformer le noir en transparence, créant un effet de "lueur" du blanc étant fort à l'extérieur et s'affaiblissant progressivement du centre du cercle. Le mode de fusion est réinitialisé après que le cercle est dessiné pour s'assurer que le mélange additif n'est pas également appliqué à tout le reste après.