Outre les fonctions de shader et les constantes définies dans les pages de référence du langage GLOB ES (OpenGL ES Shading Language), vous disposez également d'un certain nombre de constantes de shader propres à GameMaker Studio 2.
Les constantes de matrice d'affichage suivantes peuvent être utilisées comme indices de tableau lors de l'utilisation de la constante du tableau de shaders gm_Matrices:
| Constant | La description |
|---|---|
| MATRIX_VIEW | Cette constante d'index de tableau conserve l'index dans la matrice de vue actuelle. L'index retourné serait utilisé comme une valeur de tableau lors de l'appel du gm_Matrices constante dans le code du shader. |
| MATRIX_PROJECTION | Cette constante d'index de tableau maintient l'index dans la matrice de projection courante. L'index retourné serait utilisé comme une valeur de tableau lors de l'appel du gm_Matrices constante dans le code du shader. |
| MATRIX_WORLD | Cette constante d'index de tableau contient l'index de la matrice du monde en cours. Cela peut être utilisé pour des choses comme l'éclairage si vous avez des informations légères dans l'espace-monde. L'index retourné serait utilisé comme une valeur de tableau lors de l'appel du gm_Matrices constante dans le code du shader. |
| MATRIX_WORLD_VIEW | Cette constante d'index de tableau maintient l'indice au résultat du monde et les matrices de vue sont multipliées ensemble. Ceci est souvent utilisé pour des choses comme le brouillard. L'index retourné serait utilisé comme une valeur de tableau lors de l'appel du gm_Matrices constante dans le code du shader. |
| MATRIX_WORLD_VIEW_PROJECTION | Cette constante d'index de tableau maintient l'index au résultat des matrices de monde, de vue et de projection multipliées ensemble. C'est la matrice de transformation normale utilisée pour les positions de vertex. L'index retourné serait utilisé comme une valeur de tableau lors de l'appel du gm_Matrices constante dans le code du shader. |
| MATRIX_MAX | Ce n'est pas un index de tableau, mais plutôt la taille du tableau matriciel dans le vertex shader. |
| MAX_VS_LIGHTS | Ce n'est pas un index de tableau, mais plutôt le nombre de lumières dans le vertex shader. |
Les uniformes et les constantes de matrice prédéfinis suivants peuvent être utilisés dans votre shader pour accéder aux valeurs spécifiques de GameMaker Studio 2:
| Constant | La description |
|---|---|
| gm_Matrices[matrix] | Cette constante tableau renvoie une matrice de transformation et est l'un des uniformes prédéfinis disponibles que GameMaker Studio 2 crée pour vous permettre d'utiliser l'éditeur de code de shader. L'index du tableau est choisi parmi l'une des constantes listées ci-dessus. |
| gm_BaseTexture | Ceci est une constante de l'échantillonneur 2D qui renvoie la texture de l'objet actuel, tel que défini par GameMaker Studio 2. Il s'agirait donc de l'image-objet, de la surface ou de la texture courante qui serait normalement utilisée lors du dessin sans que le shader ne soit appelé. |
| gm_LightingEnabled | Ceci peut être utilisé pour obtenir ou définir l'éclairage de GameMaker Studio 2 lors de l'utilisation de la 3D. |
| gm_FogStart | Ceci peut être utilisé pour obtenir la distance où les polygones commencent à être mélangés avec la couleur du brouillard. |
| gm_RcpFogRange | Cela peut être utilisé pour obtenir la distance à laquelle le brouillard est maximal et rien ne peut plus être vu. |
| gm_PS_FogEnabled | Cela reviendra true ou false si le GPU est activé ou non. |
| gm_FogColour | Ceci peut être utilisé pour obtenir la couleur de brouillard utilisée par GameMaker Studio 2. |
| gm_VS_FogEnabled | Cela reviendra true ou false si le GPU a vertex fog activé ou non. |
| gm_AlphaTestEnabled | Cela peut être utilisé pour obtenir des tests alpha dans le shader. Voir gpu_set_alphatestenable pour plus d'informations sur les tests alpha. |
| gm_AlphaRefValue | Cela peut être utilisé pour obtenir la valeur de référence du test alpha en cours. Voir gpu_set_alphatestref pour plus d'informations sur la référence du test alpha. |