Difference between revisions of "love.graphics.newMesh (Français)"
(Created page with "{{newin (Français)|0.9.0|090|type=function}} Crée un nouveau maillage. Utiliser Mesh:setTexture si le maillage doit...") |
(→Notes) |
||
Line 44: | Line 44: | ||
{{param|Mesh|mesh|Le nouveau maillage.}} | {{param|Mesh|mesh|Le nouveau maillage.}} | ||
=== Notes === | === Notes === | ||
− | [[Mesh:setVertices (Français)]] or [[Mesh:setVertex (Français)|Mesh:setVertex]] et [[Mesh:setDrawRange (Français)|Mesh:setDrawRange]] peuvent être utilisés pour spécifier les informations des vecteurs après que le maillage ai été créé. | + | [[Mesh:setVertices (Français)|Mesh:setVertices]] or [[Mesh:setVertex (Français)|Mesh:setVertex]] et [[Mesh:setDrawRange (Français)|Mesh:setDrawRange]] peuvent être utilisés pour spécifier les informations des vecteurs après que le maillage ai été créé. |
== Fonction == | == Fonction == |
Revision as of 10:16, 22 August 2021
Disponible depuis LÖVE 0.9.0 |
Ce-tte function n'est pas supporté-e par des versions plus anciennes. |
Crée un nouveau maillage.
Utiliser Mesh:setTexture si le maillage doit être texturé à l'aide d'une Image ou Canvas lorsqu'elle est tracée.
Dans les versions antérieures à LÖVE 11.0, les valeurs de composantes couleurs et octets étaient dans l'étendue 0 à 255 au lieu de 0 à 1.
Cette fonction peut être lente si elle est appelée de façon répétée, comme depuis love.update ou love.draw. Si vous devez utiliser souvent une ressource spécifique, créez la une seule fois, et conservez la quelque part, elle peut être réutilisée ! |
Contents
Fonction
Disponible depuis LÖVE 0.10.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Crée un maillage standard utilisant les vecteurs spécifiés.
Synopsis
mesh = love.graphics.newMesh( vertices, mode, usage )
Arguments
table (Français) vertices
- Table remplie avec les tables d'information de vecteurpour chaque vecteur comme suit :
number (Français) [1]
- Position du vecteur sur l'axe des x.
number (Français) [2]
- Position du vecteur sur l'axe des y.
number (Français) [3] (0)
- Coordonnée u de texture du vecteur. Les coordonnées de texture sont normalement dans une étendue [0, 1], mais peuvent être plus grandes ou moins grandes (voir WrapMode.)
number (Français) [4] (0)
- Coordonnée v de texture du vecteur. Les coordonnées de texture sont normalement dans une étendue [0, 1], mais peuvent être plus grandes ou moins grandes (voir WrapMode.)
number (Français) [5] (1)
- Composante rouge de la couleur du vecteur.
number (Français) [6] (1)
- Composante vert de la couleur du vecteur.
number (Français) [7] (1)
- Composante bleu de la couleur du vecteur.
number (Français) [8] (1)
- Composante alpha de la couleur du vecteur.
MeshDrawMode (Français) mode ("fan")
- Façon dont les vecteurs sont utilisés lors de leur tracé. Le mode par défaut, "fan" (éventail) est suffisant pour les polygones convexes simples.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du maillage. Le mode d'utilisations pécifiée affecte l'utilisation mémoire et les performances du maillage.
Retourne
Mesh (Français) mesh
- Le nouveau maillage.
Fonction
Disponible depuis LÖVE 0.10.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Crée un maillage standard en utilisant le nombre spécifié de vecteurs.
Synopsis
mesh = love.graphics.newMesh( vertexcount, mode, usage )
Arguments
number (Français) vertexcount
- Nombre total de vecteur que le maillage utilisera. Chaque vecteur est initialisé à
{0,0, 0,0, 1,1,1,1}
. MeshDrawMode (Français) mode ("fan")
- Façon dont les vecteurs sont utilisés lors de leur tracé. Le mode par défaut, "fan" (éventail) est suffisant pour les polygones convexes simples.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du maillage. Le mode d'utilisations pécifiée affecte l'utilisation mémoire et les performances du maillage.
Retourne
Mesh mesh
- Le nouveau maillage.
Notes
Mesh:setVertices or Mesh:setVertex et Mesh:setDrawRange peuvent être utilisés pour spécifier les informations des vecteurs après que le maillage ai été créé.
Fonction
Disponible depuis LÖVE 0.10.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Crée un maillage en utilisant des attributs de vecteurs personnalisés et les données de vecteurs spécifiées.
Synopsis
mesh = love.graphics.newMesh( vertexformat, vertices, mode, usage )
Arguments
table (Français) vertexformat
- Table de la forme
{attribut, …}
. Chaque attribut est une table qui spécifie un attribut de vecteur personnalisé utilisé pour chaque vecteur.table (Français) attribute
- Table contenant le nom de l'attribute, son type de donnée, et le nombre de composantes ddans l'attribut, sous la forme
{nom, type de donnée, composantes}
. table (Français) ...
- Tables de format d'attribut des vecteurs additionnelle.
table (Français) vertices
- Table remplie par des tables d'information de vecteur pour chaque vecteur, sous la forme
{vecteur, …}
où chaque vecteur est une table sous la forme{composant d'attribut, …}
.number (Français) attributecomponent
- Première composante du premier attribut de vecteur dans le vecteur.
number (Français) ...
- Composantes supplémentairess de tous les attributs de vecteur dans le vecteur.
MeshDrawMode (Français) mode ("fan")
- Façon dont les vecteurs sont utilisés lors de leur tracé. Le mode par défaut, "fan" (éventail) est suffisant pour les polygones convexes simples.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du maillage. Le mode d'utilisations pécifiée affecte l'utilisation mémoire et les performances du maillage.
Retourne
Mesh (Français) mesh
- Le nouveau maillage.
Notes
Les valeurs de chaque table de vecteurs sont dans le même ordre que les attributs de vecteur dans le format de vecteurs spécifié. Si aucune valeur n'est fournie pour une composante d'attribut de vecteur spécifique, elle sera définie à la valeur 0 par défaut si son type de donnée est « float » (nombre flottant), ou 1 si son type de données est « byte » (octet).
Si le type de donnée d'un attribut est « float » (nombre à virgule flottante), les composants peuvent être dans l'étendue 1 à 4, si le type de donnée est « byte » (octet) il doit être 4.
Si un attribut de vecteur personnalisé utilise le nom "VertexPosition", "VertexTexCoord", ou "VertexColor", alors tha donnée du vecteur pour cet attribut de vecteur sera utilisé pour les positions de vecteur, coordonnées de tectures ou couleurs de vecteur standard respectivement, lorsque le maillage est tracé. Dans le cas contraire, un ombrage de vecteur est requit afin d'utiliser les attributs de vecteur lorsque le maillage est tracé.
Un maillage doit comporter un attribut "VertexPosition" pour pouvoir être tracé, mais il peut être attaché depuis un maillage différent via Mesh:attachAttribute.
Pour utiliser un attribut de vecteur nommé personnalisé dans un ombrage de vecteurs, il doit être déclaré comme une variable d'attribut (attribute
) du même nom. Les variables peuvent être envoyées depuis le code des ombrages de vecteur vers le code des ombrages de pixel en créant des variables varying
. Par exemple :
Code d'ombrage de vecteur
attribute vec2 CoolVertexAttribute;
varying vec2 CoolVariable;
vec4 position(mat4 transform_projection, vec4 vertex_position)
{
CoolVariable = CoolVertexAttribute;
return transform_projection * vertex_position;
}
Code d'ombrage de pixels
varying vec2 CoolVariable;
vec4 effect(vec4 color, Image tex, vec2 texcoord, vec2 pixcoord)
{
vec4 texcolor = Texel(tex, texcoord + CoolVariable);
return texcolor * color;
}
Fonction
Disponible depuis LÖVE 0.10.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Crér un maillage comportant des attributs de vecteurs personnalisés et le nombre de vecteurs spécifié.
Synopsis
mesh = love.graphics.newMesh( vertexformat, vertexcount, mode, usage )
Arguments
table (Français) vertexformat
- Table sous la forme de
{attribut, ...}
. Chaque attribut est une table qui spécifie un attribut de vecteur personnalisé utilisé pour chaque vecteur.table (Français) attribute
- Table contenant le nom de l'attribut, son type de donnée, et le nombre de composantes dans l'attribut, sous la forme de
{nom, type de donnée, composante}
. table (Français) ...
- Tables de format d'attribut de vecteur additionnel.
number (Français) vertexcount
- Nombre totale de vecteurs que le maillage utilisera.
MeshDrawMode (Français) mode ("fan")
- Façon dont les vecteurs sont utilisés lors de leur tracé. Le mode par défaut, "fan" (éventail) est suffisant pour les polygones convexes simples.
SpriteBatchUsage (Français) usage ("dynamic")
- Utilisation attendue du maillage. Le mode d'utilisations pécifiée affecte l'utilisation mémoire et les performances du maillage.
Retourne
Mesh (Français) mesh
- Le nouveau maillage.
Notes
Les valeurs de chaque table de vecteurs sont dans le même ordre que les attributs de vecteur dans le format de vecteurs spécifié. Si aucune valeur n'est fournie pour une composante d'attribut de vecteur spécifique, elle sera définie à la valeur 0 par défaut si son type de donnée est « float » (nombre flottant), ou 1 si son type de données est « byte » (octet).
Si le type de donnée d'un attribut est « float » (nombre à virgule flottante), les composants peuvent être dans l'étendue 1 à 4, si le type de donnée est « byte » (octet) il doit être 4.
Si un attribut de vecteur personnalisé utilise le nom "VertexPosition", "VertexTexCoord", ou "VertexColor", alors tha donnée du vecteur pour cet attribut de vecteur sera utilisé pour les positions de vecteur, coordonnées de tectures ou couleurs de vecteur standard respectivement, lorsque le maillage est tracé. Dans le cas contraire, un ombrage de vecteur est requit afin d'utiliser les attributs de vecteur lorsque le maillage est tracé.
Un maillage doit comporter un attribut "VertexPosition" pour pouvoir être tracé, mais il peut être attaché depuis un maillage différent via Mesh:attachAttribute.
Fonction
Supprimé depuis LÖVE 0.10.0 |
ce-tte variant n'est plus supporté dans cette version et les versions ultérieures. |
Synopsis
mesh = love.graphics.newMesh( vertices, texture, mode )
Arguments
table vertices
- The table filled with vertex information tables for each vertex as follows:
number [1]
- The position of the vertex on the x-axis.
number [2]
- The position of the vertex on the y-axis.
number [3]
- The u texture coordinate. Texture coordinates are normally in the range of [0, 1], but can be greater or less (see WrapMode.)
number [4]
- The v texture coordinate. Texture coordinates are normally in the range of [0, 1], but can be greater or less (see WrapMode.)
number [5] (255)
- The red color component.
number [6] (255)
- The green color component.
number [7] (255)
- The blue color component.
number [8] (255)
- The alpha color component.
Texture texture (nil)
- The Image or Canvas to use when drawing the Mesh. May be nil to use no texture.
MeshDrawMode mode ("fan")
- How the vertices are used when drawing. The default mode "fan" is sufficient for simple convex polygons.
Retourne
Mesh (Français) mesh
- The new mesh.
Fonction
Disponible depuis LÖVE 0.9.1 et supprimé avec LÖVE 0.10.0 |
ce-tte variant n'est pas supporté dans des versions antérieures ou postérieures. |
Synopsis
mesh = love.graphics.newMesh( vertexcount, texture, mode )
Arguments
number vertexcount
- The total number of vertices the Mesh will use. Each vertex is initialized to
{0,0, 0,0, 255,255,255,255}
. Texture texture (nil)
- The Image or Canvas to use when drawing the Mesh. May be nil to use no texture.
MeshDrawMode mode ("fan")
- How the vertices are used when drawing. The default mode "fan" is sufficient for simple convex polygons.
Returns
Mesh (Français) mesh
- The new mesh.
Notes
Mesh:setVertices or Mesh:setVertex and Mesh:setDrawRange can be used to specify vertex information once the Mesh is created.
Exemples
Crée et trace un maillage identique à une image tracé normalement mais avec différentes couleurs à chaque angle
function love.load()
image = love.graphics.newImage("pig.png")
local vertices = {
{
-- Coin haut-gauche (tinté en rouge)
0, 0, -- position du vecteur
0, 0, -- Coordonnées de texture à la position du vecteur
1, 0, 0, -- couleurs du vecteur
},
{
-- Coin haut-droit (tinté en vert)
image:getWidth(), 0,
1, 0, -- Coordonnés de texture dans l'étendue [0, 1]
0, 1, 0
},
{
-- Coin bas-droit (tinté en bleu)
image:getWidth(), image:getHeight(),
1, 1,
0, 0, 1
},
{
-- Coin bas-gauche (tinté en jaune)
0, image:getHeight(),
0, 1,
1, 1, 0
},
}
-- KLe DrawMode (mode de tracé) de maillage "fan" (éventail) fonctionne bien pour les maillages de 4 vecteurs.
mesh = love.graphics.newMesh(vertices, "fan")
mesh:setTexture(image)
end
function love.draw()
love.graphics.draw(mesh, 0, 0)
end
Crée et trace un cercle texturé comportant une teinte rouge en son centre.
function CreateTexturedCircle(image, segments)
segments = segments or 40
local vertices = {}
-- Le premier vecteur est au centre et est teinté en rouge. Nous centrons le cercle autour de l'origine (0, 0).
table.insert(vertices, {0, 0, 0.5, 0.5, 255, 0, 0})
-- Crée les vecteurs du bord du cercle.
for i=0, segments do
local angle = (i / segments) * math.pi * 2
-- Cercle unité (d'un rayon de 1).
local x = math.cos(angle)
local y = math.sin(angle)
-- Notre position est dans l'étendue [-1, 1] mais nous désirons que les coordonnées de texture soit dans l'étendue [0, 1].
local u = (x + 1) * 0.5
local v = (y + 1) * 0.5
-- Les couleurs par vecteur sont à blanc par défaut.
table.insert(vertices, {x, y, u, v})
end
-- Le mode de tracé "fan" (éventail) est pafait pour notre cercle.
local mesh = love.graphics.newMesh(vertices, "fan")
mesh:setTexture(image)
return mesh
end
function love.load()
image = love.graphics.newImage("pig.png")
mesh = CreateTexturedCircle(image)
end
function love.draw()
local radius = 100
local mx, my = love.mouse.getPosition()
-- Nous avons créé un cercle-unité, nous pouvons donc utiliser directement les paramètres d'échelle pour le rayon.
love.graphics.draw(mesh, mx, my, 0, radius, radius)
end
Crée un cercle et le trace plus efficacement que love.graphics.circle.
function CreateCircle(segments)
segments = segments or 40
local vertices = {}
-- Le premier vecteur à pour origine (0, 0) et sera le centre du cercle.
table.insert(vertices, {0, 0})
-- Crée les vecteurs au bord du cercle.
for i=0, segments do
local angle = (i / segments) * math.pi * 2
-- Cercle-unité.
local x = math.cos(angle)
local y = math.sin(angle)
table.insert(vertices, {x, y})
end
-- Le mode de tracé "fan" (éventail) est parfait pour notre cercle.
return love.graphics.newMesh(vertices, "fan")
end
function love.load()
mesh = CreateCircle()
end
function love.draw()
local radius = 100
local mx, my = love.mouse.getPosition()
-- Nous avons crée un cercle-unité, nous pouvons donc utiliser directement les paramètres d'échelle pour le rayon.
love.graphics.draw(mesh, mx, my, 0, radius, radius)
end
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