0

我正在通过脚本创建纹理图集。我使用 6 张图片来做到这一点,代码如下所示:

    atlasTextures = new Texture2D[6] {frontTexture, topTexture, backTexture, bottomTexture, leftTexture, rightTexture };

    Texture2D atlas = new Texture2D(1024, 1024);
    Rect[] UVs = atlas.PackTextures(atlasTextures, 2, 1024);

    GetComponent<Renderer>().material.mainTexture = atlas;

打包的结果是这样的:

质地

问题是,为什么这段代码会产生这么多空白?由于我将始终只使用 6 个纹理,是否可以使图集更小一些?

4

1 回答 1

0

图形硬件喜欢处理具有二维幂的纹理,例如 128x1024 (2^7 x 2^10)。他们也可以处理其他纹理大小,但效率较低。这就是为什么引擎通常会尝试导入或生成具有二次幂大小的纹理,即使它会留下一些未使用的纹理空间。由开发人员决定何时覆盖它。

于 2016-03-26T14:02:08.923 回答