1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-17 14:11:06 +00:00
Files
godot/doc/classes/TextureArray.xml
Rémi Verschelde 32ddd4f4e0 Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).

(cherry picked from commit 81064cc239)
2024-09-11 12:41:48 +02:00

51 lines
2.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="TextureArray" inherits="TextureLayered" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Array of textures stored in a single primitive.
</brief_description>
<description>
[TextureArray]s store an array of [Image]s in a single [Texture] primitive. Each layer of the texture array has its own mipmap chain. This makes it is a good alternative to texture atlases. See also [Texture3D].
[TextureArray]s must be displayed using shaders. After importing your file as a [TextureArray] and setting the appropriate Horizontal and Vertical Slices, display it by setting it as a uniform to a shader, for example (2D):
[codeblock]
shader_type canvas_item;
uniform sampler2DArray tex;
uniform int index;
void fragment() {
COLOR = texture(tex, vec3(UV.x, UV.y, float(index)));
}
[/codeblock]
Set the integer uniform "index" to show a particular part of the texture as defined by the Horizontal and Vertical Slices in the importer.
[b]Note:[/b] When sampling an albedo texture from a texture array in 3D, the sRGB -&gt; linear conversion hint ([code]hint_albedo[/code]) should be used to prevent colors from looking washed out:
[codeblock]
shader_type spatial;
uniform sampler2DArray tex : hint_albedo;
uniform int index;
void fragment() {
ALBEDO = texture(tex, vec3(UV.x, UV.y, float(index)));
}
[/codeblock]
[b]Note:[/b] [TextureArray]s can only be sampled in shaders in the GLES3 backend. In GLES2, their data can be accessed via scripting, but there is no way to render them in a hardware-accelerated manner.
</description>
<tutorials>
</tutorials>
<methods>
<method name="create">
<return type="void" />
<argument index="0" name="width" type="int" />
<argument index="1" name="height" type="int" />
<argument index="2" name="depth" type="int" />
<argument index="3" name="format" type="int" enum="Image.Format" />
<argument index="4" name="flags" type="int" default="7" />
<description>
Creates the TextureArray with specified [code]width[/code], [code]height[/code], and [code]depth[/code]. See [enum Image.Format] for [code]format[/code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/code] options.
</description>
</method>
</methods>
<constants>
</constants>
</class>