返回介绍

Texture2D.PackTextures 打包纹理

发布于 2019-12-18 15:38:39 字数 4085 浏览 1185 评论 0 收藏 0

JavaScript => public function PackTextures(textures: Texture2D[], padding: int, maximumAtlasSize: int = 2048, makeNoLongerReadable: bool = false): Rect[];
C# => public Rect[] PackTextures(Texture2D[] textures, int padding, int maximumAtlasSize = 2048, bool makeNoLongerReadable = false);

Parameters 参数

参数描述,换行请使用\\空格
texturesArray of textures to pack into the atlas.
要打包到图集的纹理的数组。
paddingPadding in pixels between the packed textures.
打包的纹理之间的像素间距。
maximumAtlasSizeMaximum size of the resulting texture.
图集的最大大小。
makeNoLongerReadableShould the texture be marked as no longer readable?
纹理标记为不可读?

Returns 返回值

Rect[] An array of rectangles containing the UV coordinates in the atlas for each input texture, or null if packing fails.

Rect[]类型,返回图集中包含UV坐标的每个纹理矩形的数组,如果打包失败则值为null。

Description 描述

Packs multiple Textures into a texture atlas.

打包多个纹理到一个纹理图集。

This function will replace the current texture with the atlas made from the supplied textures. The size, format and mipmaps of any of the textures can change after packing.

此函数将使用纹理图集替换当前的纹理。纹理大小、格式和纹理是否有 mipmap 在打包后可以更改。

The resulting texture atlas will be as large as needed to fit all input textures but only up to maximumAtlasSize in each dimension. If the input textures can't all fit into a texture atlas of the desired size then they will be scaled down to fit.

生成纹理图集将根据需要尽可能的大以便适合所有纹理,但是不能超过 maximumAtlasSize 中的最大值。如纹理图集不能容纳所输入的纹理,这些纹理将按比例缩小以适合纹理图集。

The atlas will have DXT1 format if all input textures are DXT1 compressed. If all input textures are compressed in DXT1 or DXT5 formats then the atlas will be in DXT5 format. If any input texture is not compressed then the atlas will be in ARGB32 uncompressed format.

如果导入的贴图是DXT1格式的,那么这个纹理图集也是DXT1格式的,如果导入的纹理含有DXT1和DXT5格式的,那么这个纹理图集就是DXT5格式的。如果这些纹理在打包前没有被压缩,这个纹理图集将会是ARGB32位格式。

If none of the input textures have mipmaps then the atlas will also have no mipmaps.

如果输入的纹理没有Mipmap,那么图集也没有mipmap。

If you use non-zero padding and the atlas is compressed and has mipmaps then the lower-level mipmaps might not be exactly the same as in the original texture due to compression restrictions.

如果你使用非0的间距,图集是压缩的并且带有Mipmap,那么较低级的mipmap可能不同,因为压缩的原始纹理的限制。

If makeNoLongerReadable is true then the texture will be marked as no longer readable and memory will be freed after uploading to the GPU. By default makeNoLongerReadable is set to false.

如果makeNoLongerReadable为true,那么纹理将标记为不可读,并在上传到GPU之后释放内存。默认,makeNoLongerReadable为false。

JavaScript:

	// Source textures.
	var atlasTextures: Texture2D[];
 
	// Rectangles for individual atlas textures.
	var rects: Rect[];
 
	function Start () {
		// Pack the individual textures into the smallest possible space,
		// while leaving a two pixel gap between their edges.
		var atlas = new Texture2D(8192, 8192);
		rects = atlas.PackTextures(atlasTextures, 2, 8192);
	}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Texture2D[] atlasTextures;
    public Rect[] rects;
    void Start() {
        Texture2D atlas = new Texture2D(8192, 8192);
        rects = atlas.PackTextures(atlasTextures, 2, 8192);
    }
}

Texture2D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文