shader_set_uniform_f


Syntaxe:

shader_set_uniform_f(handle, value1 [, value2, value3, value4]);


Argument La description
handle La poignée de la constante de shader à définir.
value1... value4 La ou les valeurs à virgule flottante pour définir la constante du shader.


Résultats:

N/A


La description

Avec cette fonction, vous pouvez définir la (ou les) valeur (s) d'une constante de shader. Vous devez auparavant avoir obtenu le "handle" de la constante en utilisant la fonction shader_get_uniform, et vous aurez besoin de savoir quel type de constante est de passer le nombre correct de valeurs à virgule flottante, c'est à dire: si vous avez un vec2 vous devrez passer deux valeurs à la fonction.

Une exception à la règle ci-dessus concerne les valeurs de couleurs 32 bits. Vous pouvez passer dans le shader jusqu'à huit valeurs de couleurs 32 bits et elles seront automatiquement converties pour vous en valeurs vec4 de 0 à 1. Cependant, pour cela, vous devez utiliser le nom de la constante de shader. in_Colour, pour une seule couleur, ou in_Colour0, in_Colour1, etc... jusqu'à in_Colour7 pour plusieurs valeurs d'entrée. Les exemples suivants montrent à quoi cela ressemblerait dans le shader lui-même:

   //Single colour
   attribute vec2 in_Position;
   attribute vec4 in_Colour;
   attribute vec2 in_TextureCoord;

   //Multiple colours
   attribute vec2 in_Position;
   attribute vec4 in_Colour0;
   attribute vec4 in_Colour1;
   attribute vec2 in_TextureCoord;

Notez aussi que si vous voulez faire des normales compressées etc... en utilisant un format de couleur de 4 octets, alors vous devrez aussi utiliser le même format "in_Colour" comme montré ci-dessus.

NOTE: Tous les uniformes doivent être réglés après l' appel de la fonction shader_set() et avant d'appeler shader_reset.
IMPORTANT! Cette fonction n'est pas disponible avec la licence d'évaluation du produit.


Exemple:

shader_set(shader_Glass);
shader_params = shader_get_uniform(shader_glass, "u_vParams");
shader_set_uniform_f(shader_params, 0.1, 0.8, 0.25);
draw_self();
shader_reset();

Le code ci-dessus obtiendra le handle de la constante shader "u_vParams" (un vec3 ), puis définissez cette constante sur les valeurs données.