Difference between revisions of "Mesh:attachAttribute"

m (Notes)
(See Also)
 
(7 intermediate revisions by one other user not shown)
Line 9: Line 9:
 
{{param|string|name|The name of the vertex attribute to attach.}}
 
{{param|string|name|The name of the vertex attribute to attach.}}
 
{{param|Mesh|mesh|The Mesh to get the vertex attribute from.}}
 
{{param|Mesh|mesh|The Mesh to get the vertex attribute from.}}
 +
=== Returns ===
 +
Nothing.
 +
 +
== Function ==
 +
{{newin|[[11.0]]|110|type=variant}}
 +
=== Synopsis ===
 +
<source lang="lua">
 +
Mesh:attachAttribute( name, mesh, step, attachname )
 +
</source>
 +
=== Arguments ===
 +
{{param|string|name|The name of the vertex attribute to attach.}}
 +
{{param|Mesh|mesh|The Mesh to get the vertex attribute from.}}
 +
{{param|VertexAttributeStep|step ("pervertex")|Whether the attribute will be per-vertex or [[love.graphics.drawInstanced|per-instance]] when the mesh is drawn.}}
 +
{{param|string|attachname (name)|The name of the attribute to use in shader code. Defaults to the name of the attribute in the given mesh. Can be used to use a different name for this attribute when rendering.}}
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
Line 15: Line 29:
 
If a Mesh wasn't [[love.graphics.newMesh|created]] with a custom vertex format, it will have 3 vertex attributes named <code>VertexPosition</code>, <code>VertexTexCoord</code>, and <code>VertexColor</code>.
 
If a Mesh wasn't [[love.graphics.newMesh|created]] with a custom vertex format, it will have 3 vertex attributes named <code>VertexPosition</code>, <code>VertexTexCoord</code>, and <code>VertexColor</code>.
  
Custom named attributes can be accessed in a [[Shader|vertex shader]] by declaring them as <code>attribute vec4 MyCustomAttribute</code> at the top-level of the vertex shader code. The name must match what was specified in the vertex format and in the <code>name</code> argument to ''Mesh:attachAttribute''.
+
Custom named attributes can be accessed in a [[Shader|vertex shader]] by declaring them as <code>attribute vec4 MyCustomAttributeName;</code> at the top-level of the vertex shader code. The name must match what was specified in the Mesh's vertex format and in the <code>name</code> argument of [[Mesh:attachAttribute]].
  
 
== See Also ==
 
== See Also ==
 
* [[parent::Mesh]]
 
* [[parent::Mesh]]
 +
* [[Mesh:getVertexFormat]]
 +
* [[Mesh:detachAttribute]]
 
* [[love.graphics.draw]]
 
* [[love.graphics.draw]]
 
[[Category:Functions]]
 
[[Category:Functions]]
{{#set:Description=Attaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing.}}
+
{{#set:Description=Attaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. Optionally allows per-[[love.graphics.drawInstanced|instance]] attributes.}}
 +
 
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|Mesh:attachAttribute}}
 
{{i18n|Mesh:attachAttribute}}

Latest revision as of 14:20, 22 August 2021

Available since LÖVE 0.10.0
This function is not supported in earlier versions.

Attaches a vertex attribute from a different Mesh onto this Mesh, for use when drawing. This can be used to share vertex attribute data between several different Meshes.

Function

Synopsis

Mesh:attachAttribute( name, mesh )

Arguments

string name
The name of the vertex attribute to attach.
Mesh mesh
The Mesh to get the vertex attribute from.

Returns

Nothing.

Function

Available since LÖVE 11.0
This variant is not supported in earlier versions.

Synopsis

Mesh:attachAttribute( name, mesh, step, attachname )

Arguments

string name
The name of the vertex attribute to attach.
Mesh mesh
The Mesh to get the vertex attribute from.
VertexAttributeStep step ("pervertex")
Whether the attribute will be per-vertex or per-instance when the mesh is drawn.
string attachname (name)
The name of the attribute to use in shader code. Defaults to the name of the attribute in the given mesh. Can be used to use a different name for this attribute when rendering.

Returns

Nothing.

Notes

If a Mesh wasn't created with a custom vertex format, it will have 3 vertex attributes named VertexPosition, VertexTexCoord, and VertexColor.

Custom named attributes can be accessed in a vertex shader by declaring them as attribute vec4 MyCustomAttributeName; at the top-level of the vertex shader code. The name must match what was specified in the Mesh's vertex format and in the name argument of Mesh:attachAttribute.

See Also


Other Languages