Vertex Formats

En général, lorsque vous commencez à travailler avec des effets spéciaux, des processus de dessin complexes ou des shaders, vous n'avez pas à vous soucier du format de vertex utilisé, puisque GameMaker Studio 2 va automatiquement configurer et passer les données de vertex pour vous. Cependant, il est parfois nécessaire de créer vos propres données de vertex et de les mettre en forme, en particulier lorsque vous devez accélérer la vitesse ou que vous souhaitez transmettre des informations supplémentaires. Par exemple, le format de vertex standard inclut une position 3D x, y, z 3D, couleur (avec alpha) et des coordonnées de texture UV, qui, si vous le créiez vous-même, ressemblerait à ceci:

vertex_format_begin();
vertex_format_add_position_3d();
vertex_format_add_colour();
vertex_format_add_textcoord();
my_format = vertex_format_end();

Cependant, si vous utilisez seulement (par exemple) le shader pour manipuler la position du vertex, il n'y aurait pas besoin de passer par les données de couleur ou de texture. Dans ce cas, vous créez votre propre format comme suit:

vertex_format_begin();
vertex_format_add_position_3d();
my_format = vertex_format_end();

Vous devriez noter qu'une fois que vous avez créé votre format de vertex, l'ordre dans lequel vous avez défini les propriétés de vertex doit être respecté lors de la construction de vos primitives. Donc, si vous avez défini un format de sommet comme position, couleur, coordonnée de texture, alors vous devez ajouter ces propriétés à la primitive dans le même ordre sinon vous obtiendrez une erreur. Notez également que, comme toute autre ressource dynamique, un format de vertex nécessite de la mémoire et doit donc être supprimé lorsqu'il n'est pas nécessaire d'utiliser la fonction. vertex_format_delete().

Les fonctions suivantes sont disponibles pour dessiner des shaders:

Un dernier point important à noter lors de l'utilisation de vos propres tampons de vertex de cette manière est de savoir comment cela affecte les lots de vertex qui sont envoyés au GPU. Lorsque vous créez un tampon de vertex, vous créez le niveau le plus bas de données graphiques, donc lorsque vous dessinez tout ce qui se passe, nous envoyons votre tampon directement sur la carte graphique. Pour cette raison, si vous voulez un meilleur traitement par lots, vous devez le faire vous-même et stocker les choses que vous voulez traiter dans le même tampon. Vous ne pouvez donc pas mettre 3 sprites puis en dessiner beaucoup et attendre que les tampons de vertex soient fusionnés - vous êtes en charge des données de tampon de vertex à ce stade. Si vous voulez un auto-batching, vous devez donner au moteur des primitives de niveau supérieur - comme un sprite - à quel point GameMaker Studio 2 peut déterminer ce que vous faites, et remplir les tampons correctement.

Construction de primitives

Une fois que vous avez défini votre nouveau format de vertex, vous pouvez alors aller de l'avant et créer vos primitives qui l'utiliseront. Les fonctions disponibles pour cela peuvent être trouvées dans la section suivante:

  1. Construction de primitives


Retour: Dessin et création de primitives
Suivant: Construire des primitives
© Copyright YoYo Games Ltd. 2017 Tous droits réservés