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) のような 2 のべき乗のテクスチャを処理するのが好きです。他のテクスチャ サイズも処理できますが、効率は低くなります。そのため、エンジンは通常、未使用のテクスチャ スペースが残っていても、2 のべき乗サイズのテクスチャをインポートまたは生成しようとします。これをいつオーバーライドするかは開発者次第です。

于 2016-03-26T14:02:08.923 に答える