Difference between revisions of "Shader:send (Français)"
(Created page with "{{newin (Français)|0.9.0|090|type=function|text=It has been renamed from PixelEffect:send}} Envoie une ou plusieurs valeurs à une variable (''uniform'') spéciale, a...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{newin (Français)|[[0.9.0]]|090|type=function|text=It has been renamed from [[PixelEffect:send]]}} | {{newin (Français)|[[0.9.0]]|090|type=function|text=It has been renamed from [[PixelEffect:send]]}} | ||
− | Envoie une ou plusieurs valeurs à une variable (''uniform'') spéciale, au sein d'un ombrage. Les variables uniformes doivent être marquées comme utilisant les mots clés ''uniform'' ou ''extern'', par exempla : | + | Envoie une ou plusieurs valeurs à une variable (''uniform'') spéciale, au sein d'un ombrage. Les variables uniformes doivent être marquées comme utilisant les mots clés ''uniform'' (ou, déprécié ''extern''), par exempla : |
<source lang="glsl"> | <source lang="glsl"> | ||
− | uniform float time; // "float" est le type numéraire typique utilisé dans les ombrages GLSL. | + | uniform float time; // "float" (nombre à virgule flottante) est le type numéraire typique utilisé dans les ombrages GLSL. |
uniform float vars[2]; | uniform float vars[2]; | ||
uniform vec2 light_pos; | uniform vec2 light_pos; | ||
Line 19: | Line 19: | ||
− | Les variables | + | Les variables ''uniform'' / ''extern'' sont en lecture seul dans le code de l'ombrage et reste constantes jusqu'à ce qu'elles soient modifiées par un appel à Shader:send. Les variables Uniform sont accessibles à la fois dans les composantes Vertex (vecteur) et Pixel d'un ombrage, tant que les variables sont déclarées dans chacune d'elles. |
{{notice (Français)|Il y a un bug dans la version [[0.10.2]] qui fait que Shader:send ignore le dernier argument, lorsque des tables sont envoyées. Un contournement simple consiste à ajouter un un argument supplémentaire null lors de l'envoie de valeurs multiples à une table uniforme.}} | {{notice (Français)|Il y a un bug dans la version [[0.10.2]] qui fait que Shader:send ignore le dernier argument, lorsque des tables sont envoyées. Un contournement simple consiste à ajouter un un argument supplémentaire null lors de l'envoie de valeurs multiples à une table uniforme.}} | ||
Line 45: | Line 45: | ||
{{param|string (Français)|name|Nom du vecteur à envoyer à l'ombrage.}} | {{param|string (Français)|name|Nom du vecteur à envoyer à l'ombrage.}} | ||
{{param|table (Français)|vector|Nombres à envoyer à la variable uniforme en tant que vecteur. Le nombre d'éléments dans la table détermine le type du vecteur (par exemple, deux nombres -> vec2). Au moins deux et au plus quatre nombres peuvent être utilisés.}} | {{param|table (Français)|vector|Nombres à envoyer à la variable uniforme en tant que vecteur. Le nombre d'éléments dans la table détermine le type du vecteur (par exemple, deux nombres -> vec2). Au moins deux et au plus quatre nombres peuvent être utilisés.}} | ||
− | {{param|table (Français)|...|Vecteurs supplémentaires à envoyer si la variable uniforme est une table. | + | {{param|table (Français)|...|Vecteurs supplémentaires à envoyer si la variable uniforme est une table. Tous les vecteurs doivent être de la même taille (par exemple, seulement de type vec3).}} |
=== Retourne === | === Retourne === | ||
Line 56: | Line 56: | ||
</source> | </source> | ||
=== Arguments === | === Arguments === | ||
− | {{param|string (Français)|name|Nom de la | + | {{param|string (Français)|name|Nom de la matrice à envoyer à l'ombrage.}} |
{{param|table (Français)|matrix|matrice 2x2, 3x3, ou 4x4 à envoyer à la variable uniforme. En utilisant une table sous la forme : <code><nowiki>{{a,b,c,d}, {e,f,g,h}, ... }</nowiki></code> ou (depuis la version [[0.10.2]]) <code>{a,b,c,d, e,f,g,h, ...}</code>. L'ordre dans 0.10.2 est column-major; À partir de [[11.0]] c'est row-major.}} | {{param|table (Français)|matrix|matrice 2x2, 3x3, ou 4x4 à envoyer à la variable uniforme. En utilisant une table sous la forme : <code><nowiki>{{a,b,c,d}, {e,f,g,h}, ... }</nowiki></code> ou (depuis la version [[0.10.2]]) <code>{a,b,c,d, e,f,g,h, ...}</code>. L'ordre dans 0.10.2 est column-major; À partir de [[11.0]] c'est row-major.}} | ||
{{param|table (Français)|...|Matrices supplémentaires du même type que ''matrix'' à enregistrer dans une table uniforme.}} | {{param|table (Français)|...|Matrices supplémentaires du même type que ''matrix'' à enregistrer dans une table uniforme.}} | ||
Line 100: | Line 100: | ||
== Fonction == | == Fonction == | ||
{{newin (Français)|[[11.0]]|110|type=variant}} | {{newin (Français)|[[11.0]]|110|type=variant}} | ||
− | Envoie des valeurs uniformes à l'ombrage, sourcées par le contenu d'un objet [[Data (Français)|Data]] (données). Cela copie directement les | + | Envoie des valeurs uniformes à l'ombrage, sourcées par le contenu d'un objet [[Data (Français)|Data]] (données). Cela copie directement les octets des données. |
=== Synopsis === | === Synopsis === | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 115: | Line 115: | ||
== Fonction == | == Fonction == | ||
{{newin (Français)|[[11.0]]|110|type=variant}} | {{newin (Français)|[[11.0]]|110|type=variant}} | ||
− | Envoie des matrices uniformes à l'ombrages, sourcé depuis le contenu d'un objet [[Data (Français)|Data]] (données). Cela copie directement les octets des | + | Envoie des matrices uniformes à l'ombrages, sourcé depuis le contenu d'un objet [[Data (Français)|Data]] (données). Cela copie directement les octets des données. |
=== Synopsis === | === Synopsis === | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 132: | Line 132: | ||
* [[parent::Shader (Français)]] | * [[parent::Shader (Français)]] | ||
[[Category:Functions (Français)]] | [[Category:Functions (Français)]] | ||
− | {{#set:Description= | + | {{#set:Description=Envoie une ou plusieurs valeurs au shader.}} |
{{#set:Since=090}} | {{#set:Since=090}} | ||
== Autres langues == | == Autres langues == | ||
{{i18n|Shader:send}} | {{i18n|Shader:send}} |
Latest revision as of 00:28, 23 December 2023
Disponible depuis LÖVE 0.9.0 |
It has been renamed from PixelEffect:send. |
Envoie une ou plusieurs valeurs à une variable (uniform) spéciale, au sein d'un ombrage. Les variables uniformes doivent être marquées comme utilisant les mots clés uniform (ou, déprécié extern), par exempla :
uniform float time; // "float" (nombre à virgule flottante) est le type numéraire typique utilisé dans les ombrages GLSL.
uniform float vars[2];
uniform vec2 light_pos;
uniform vec4 colors[4];
L'appel send (envoi) correspondant sera :
shader:send("time", t)
shader:send("vars",a,b)
shader:send("light_pos", {light_x, light_y})
shader:send("colors", {r1, g1, b1, a1}, {r2, g2, b2, a2}, {r3, g3, b3, a3}, {r4, g4, b4, a4})
Les variables uniform / extern sont en lecture seul dans le code de l'ombrage et reste constantes jusqu'à ce qu'elles soient modifiées par un appel à Shader:send. Les variables Uniform sont accessibles à la fois dans les composantes Vertex (vecteur) et Pixel d'un ombrage, tant que les variables sont déclarées dans chacune d'elles.
Il y a un bug dans la version 0.10.2 qui fait que Shader:send ignore le dernier argument, lorsque des tables sont envoyées. Un contournement simple consiste à ajouter un un argument supplémentaire null lors de l'envoie de valeurs multiples à une table uniforme. |
Contents
Fonction
Synopsis
Shader:send( name, number, ... )
Arguments
string (Français) name
- Nom du nombre à envoyer à l'ombrage.
number (Français) number
- Nombre à envoyer et à conserver dans la variable uniforme.
number (Français) ...
- Nombres supplémentaires à envoyer, si la variable uniforme est une array (table).
Retourne
Rien.
Notes
Comme tous les nombres sont à virgule flottante en Lua, dans les versions antérieures à 0.10.2, vous devez utiliser la fonction Shader:sendInt pour envoyer des valeurs aux variables uniform int
dans le code de l'ombrage..
Fonction
Synopsis
Shader:send( name, vector, ... )
Arguments
string (Français) name
- Nom du vecteur à envoyer à l'ombrage.
table (Français) vector
- Nombres à envoyer à la variable uniforme en tant que vecteur. Le nombre d'éléments dans la table détermine le type du vecteur (par exemple, deux nombres -> vec2). Au moins deux et au plus quatre nombres peuvent être utilisés.
table (Français) ...
- Vecteurs supplémentaires à envoyer si la variable uniforme est une table. Tous les vecteurs doivent être de la même taille (par exemple, seulement de type vec3).
Retourne
Rien.
Fonction
Synopsis
Shader:send( name, matrix, ... )
Arguments
string (Français) name
- Nom de la matrice à envoyer à l'ombrage.
table (Français) matrix
- matrice 2x2, 3x3, ou 4x4 à envoyer à la variable uniforme. En utilisant une table sous la forme :
{{a,b,c,d}, {e,f,g,h}, ... }
ou (depuis la version 0.10.2){a,b,c,d, e,f,g,h, ...}
. L'ordre dans 0.10.2 est column-major; À partir de 11.0 c'est row-major. table (Français) ...
- Matrices supplémentaires du même type que matrix à enregistrer dans une table uniforme.
Retourne
Rien.
Fonction
Synopsis
Shader:send( name, texture )
Arguments
string (Français) name
- nom d'une Texture à envoyer à l'ombrage.
Texture (Français) texture
- Texture (Image ou Canvas) à envoyer à la variable uniforme.
Retourne
Rien.
Fonction
Synopsis
Shader:send( name, boolean, ... )
Arguments
string (Français) name
- Nom du booléen à envoyer à l'ombrage.
boolean (Français) boolean
- Booléen à envoyer et stocker dans la variable uniforme.
boolean (Français) ...
- Booléens supplémentaires à envoyer si la variable uniforme est une table.
Retourne
Rien.
Fonction
Disponible depuis LÖVE 11.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Synopsis
Shader:send( name, matrixlayout, matrix, ... )
Arguments
string (Français) name
- Nom de la matrice à envoyer à l'ombrage.
MatrixLayout (Français) matrixlayout
- La structure (ligne- ou colonne-majeure) de la matrice.
table (Français) matrix
- Matrices 2x2, 3x3, ou 4x4 à envoyer à la variable uniforme. en utilisant la structure de définition de table :
{{a,b,c,d}, {e,f,g,h}, ... }
ou{a,b,c,d, e,f,g,h, ...}
. table (Français) ...
- Matrices supplémentaires du même type, en tant que matrix à stocker dans la table uniforme.
Fonction
Disponible depuis LÖVE 11.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Envoie des valeurs uniformes à l'ombrage, sourcées par le contenu d'un objet Data (données). Cela copie directement les octets des données.
Synopsis
Shader:send( name, data, offset, size )
Arguments
string (Français) name
- Nom de l'uniforme à envoyer à l'ombrage.
Data (Français) data
- Objet Data (données) contenant les valeurs à envoyer.
number (Français) offset (0)
- Décalage, en octets, depuis le début de l'objet Data.
number (Français) size (all)
- Taille en octets des données à envoyer. Si nil (nul), la totalité des octets que l'uniforme spécifié utilise seront copiés.
Retourne
Rien.
Fonction
Disponible depuis LÖVE 11.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Envoie des matrices uniformes à l'ombrages, sourcé depuis le contenu d'un objet Data (données). Cela copie directement les octets des données.
Synopsis
Shader:send( name, data, matrixlayout, offset, size )
Arguments
string (Français) name
- Nom de la matrice à envoyer à l'ombrage.
Data (Français) data
- objet Data (données) contenant les valeurs à envoyer.
MatrixLayout (Français) matrixlayout
- L'agencement (ligne- ou colonne-majeur) de la matrice en mémoire.
number (Français) offset (0)
- Décalage en octets depuis le début de l'objet Data (données).
number (Français) size (all)
- Taille en octets des données à envoyer. Si nil (nul), la totalité des octets que l'uniforme spécifié utilise seront copiés.
Retourne
Rien.
Voir également
Autres langues
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info