2つのサイズの累乗で制限されている場合に、ゲームのテクスチャを作成/使用する方法を理解する


8

ゲームのグラフィックの作成について質問があります。

例として。バイクを作りたい。(1ピクセル= 1センチメートル)したがって、私のバイクの幅は200、高さは150になります。(200x150)しかし、libgdxは2の累乗でのみサイズをロードできますか?!(2、4、8、16、...)

最初にそのように考えました。サイズ(200x150)の自転車を作成し、pngとして保存します。もう一度開く(たとえばgimpで)ので、2の累乗(128x128)の値を使用するサイズにイメージのサイズを変更します。これをテクスチャとしてプログラムにロードし、幅を200、高さを150に設定します。

しかし、それは問題ではないでしょうか?最初の会話をするとピクセル情報が失われるからです。だよね?


1
Libgdxには、画像をいくつかの大きな画像(アトラス)に結合し、必要な部分だけを描画できるテクスチャパッカーがあります。
Matsemann 2012

回答:


11

2の累乗サイズに制限されている理由は、ビデオRAMの動作方法によるものです。通常、画像を2の累乗(つまり512x256)にし、その画像の一部をグラフィックスに使用するだけです。レンダリングする三角形に画像のサブセクションのみを使用するようにUV座標を設定します。

メモリ使用量が心配な場合は、別のオブジェクトの残りのスペースの一部を使用して、それらのオブジェクトをテクスチャのその部分にUVマップすることもできます。このようなテクスチャを作成することは、「アトラス」とも呼ばれます。


4
テクスチャの切り替えが少ないほど、バッチが少なく、描画が高速になるため、アトラスもパフォーマンスが最適化されることを言及する価値があります。
Gustavo Maciel 2012

3

テクスチャ全体の一部のみを描画するなど、サイズ変更の代わりにテクスチャ座標を使用する必要があります。libgdxでどのように機能するかはわかりませんが、このアプローチを使用するのが一般的です。別のアプローチは、テクスチャアトラスを使用することです。たとえば、1024x1024のメモリを使用し、イメージをロードするときに、アトラスの長方形にロードします。


0

画像のサイズは、適切なサイズに応じて少し大きくまたは小さく変換できます。-私は、このリンクを使用していたhttp://www.garyshood.com/imageconvert/を 100 /;あなたが例えば2で完全に割り切れるだろうサイズを使用することができ、あなたの画像サイズはその後、200、200/2 = 100である場合2 = 50; 50/2 = 25なので、ここでは25は2で割り切れません。したがって、200は適切なサイズではありません。1024、512、256、128などを使用できます。そして、その画像の一部をグラフィックスで使用できます。他の代替案は、libgdx Texture Packer GUIを使用して簡単にすべてのテクスチャをテクスチャアトラスに結合し、そのアトラスのテクスチャを使用することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.